Originally posted by srinu kcr:
Hi all,
I am currently working on designing a SOA based distributed J2EE application where high performance is the main criteria(data retrival must be very fast). The database and application servers can be many in number and in different geographical locations.
....................
SOA and performance do not go hand in hand. I presume by SOA you mean to use Webservices.
Comming to your question:
If you want to gain good in performance then you have to compromise on the security, usability and sometimes maintainability.
Design smartly having lots of caching(query/application objects/master data etc), avoid encryption, decryption, network trips, transactions.
Construct and process datastructures/records in memory i.e. if you have to search a record in the DB, instead of firing a query, load the records in the memory at startup and use binary search when required, will be 1000 times faster.
Never freeze the design unless a POC is done and you have met the required SLA.
As far as learing from other big applications (by whitepapers etc) is concerned it might not help much. Every project, problem statement is unique, you have to do a POC and lot of design review to get things done. Yes definitely you can take the learning from these already done applications and avoid the same mistakes.
........just my thoughts