• Post Reply Bookmark Topic Watch Topic
  • New Topic
programming forums Java Mobile Certification Databases Caching Books Engineering Micro Controllers OS Languages Paradigms IDEs Build Tools Frameworks Application Servers Open Source This Site Careers Other Pie Elite all forums
this forum made possible by our volunteer staff, including ...
Marshals:
  • Campbell Ritchie
  • Jeanne Boyarsky
  • Ron McLeod
  • Paul Clapham
  • Liutauras Vilda
Sheriffs:
  • paul wheaton
  • Rob Spoor
  • Devaka Cooray
Saloon Keepers:
  • Stephan van Hulst
  • Tim Holloway
  • Carey Brown
  • Frits Walraven
  • Tim Moores
Bartenders:
  • Mikalai Zaikin

designing high performance distributed j2ee application

 
Ranch Hand
Posts: 63
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
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.
I would like to know the various industry standards/strategies used in real world for designing the GUI, business and database layer for high performance.
Is there a way to know about the case studies of the real world applications like airlines and stocks trading(where real time updates retrival must be real fast).
Please point me to any good articles/white papers/web sites if any.

Thanks in advance.
 
Ranch Hand
Posts: 1934
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Srinu,

Yours is a very broad question with respect to SOA & performance.

With regards to SOA(or using some best practises etc) you can refer to couple of books written by 'Thomas Erl'.

For specific industry knowledge like white papers you may have to dig very deep and some money may be needed(like forester, Gartner etc). This is because you may not want to reinvent the wheel for complex applications. For Airline operations software 'SABRE' rings a bell with respect to providing multiple applications on different scales.

If you really want to achieve high speed capabilities for complex applications; you really need to scale horizontally & vertically and do tons of tunings on your application level(does Google sound any bell???)
 
(instanceof Sidekick)
Posts: 8791
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
I try not to say "distributed" and "high performance" in the same sentence. In the last 15 years I've gone from mainframes to desktop apps to a Swing / AppServer n-tier architecture to a thin client web architecture. There were good reasons for each move, but "improving performance" was never one of them. None of the alternatives can outrun Z/OS-CICS-COBOL-DB2.

Ok, with that rant over ... App and database design will be big factors. Minimize trips across the network and trips to the database. Don't make EJBs call EJBs when they can just call POJOs. Monitor and tune like crazy. Get your app server and db vendors in to help.

Think about the very light LAMP architectures at Google, EBay and such with tens of thousands of commodity servers.

And think about Linux on s390 Z/OS talking to CICS-COBOL-DB2 ... Predictions that the mainframe would soon be dead have always made me laugh.
 
Kishore Dandu
Ranch Hand
Posts: 1934
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

Originally posted by Stan James:


And think about Linux on s390 Z/OS talking to CICS-COBOL-DB2 ... Predictions that the mainframe would soon be dead have always made me laugh.



I agree. Its just that Mailframe will never ever have people with passion working on it.
 
Ranch Hand
Posts: 239
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

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
 
Don't get me started about those stupid light bulbs.
reply
    Bookmark Topic Watch Topic
  • New Topic