15
Designing Applications for Performance Designing Applications for Performance Appropriate I/O for Specific Task Minimize all Initiation and Termination Design Everything to be “Interactive” Pre-Summarize and Format Data Thin Client/Server is Good, Fat is Bad! Developers Environment vs. End Users Be an End User for a Day!

Designing Applications for Performance

Embed Size (px)

DESCRIPTION

Many performance problems start with trouble in application design, and if you've got more hardware than you know what to do with, you might be fine...for now. In this iSeries Network Webcast recording, MB Software President and iSeries performance expert Mike Boadway shows you key techniques for designing better applications for performance. He covers Interactive, Batch, Java, SQL, Wireless, Client/Server, TCP/IP Sockets, ILE C, Data Queues, Generic (Date) Routines, and more.

Citation preview

Page 1: Designing Applications for Performance

Designing Applications for Performance

Designing Applications for Performance

• Appropriate I/O for Specific Task• Minimize all Initiation and Termination• Design Everything to be “Interactive”• Pre-Summarize and Format Data• Thin Client/Server is Good, Fat is Bad!• Developers Environment vs. End Users• Be an End User for a Day!

Page 2: Designing Applications for Performance

Appropriate I/O for Specific Task

Appropriate I/O for Specific Task

• RPG/COBOL (use logical views)

• Java/SQL (avoid table scans, re-indexing)

• Wireless (minimize data across network)

• Client/Server (keep logic near database)

Page 3: Designing Applications for Performance

I/O Example (RPG/COBOL)

Page 4: Designing Applications for Performance

I/O Example (Java/SQL)

Page 5: Designing Applications for Performance

Minimize all Initiation and Termination

Minimize all Initiation and Termination

• RPG/COBOL (use data queues, TFRCTL)• Java (minimize QJVACMDSRV, QJVAEXEC)• SQL (limit SQL requests, pull sets of data)• Wireless (TCP/IP sockets client/server)• Client/Server (keep ODBC connections open)• TCP/IP Sockets (multi-threaded connections)• ILE C (optimize calls to traditional routines)• Data Queues (use w/ triggers, keep files open)

Page 6: Designing Applications for Performance

Initiation Example (data queues)

Page 7: Designing Applications for Performance

Initiation Example (Java)

Page 8: Designing Applications for Performance

Design Everything to be “Interactive”

Design Everything to be “Interactive”• RPG/COBOL (batch is a “short-cut”)• Java (mimic “page at a time” sub-files?)• SQL (need 10 records, read 10 records)• Wireless (store offline lookup tables)• Client/Server (limit images, focus on function)• TCP/IP Sockets (keep active, good recovery)• ILE C (IBM Dynamic Screen Manager)• Data Queues (QSNDDTAQ, QRCVDTAQ)

Page 9: Designing Applications for Performance

Interactive Example (Java/SQL)

Page 10: Designing Applications for Performance

Interactive Example (ILE-C)

Page 11: Designing Applications for Performance

Pre-Summarize and Format Data

Pre-Summarize and Format Data

• RPG/COBOL (normalize, transaction processing)• Java (de-normalize for performance)• SQL (pre-summarize for instant static totals)• Wireless (subset rows/columns for small devices)• Client/Server (re-format on server, pull to client)• Data Queues (w/ triggers, real-time summaries)

Page 12: Designing Applications for Performance

Thin Client/Server is Good, Fat is Bad!

Thin Client/Server is Good, Fat is Bad!

• RPG/COBOL (limit ILE program size)• Java (thin client, reasonable server)• SQL (stored procedures, small data-sets to client)• Wireless (thinnest client or it WON’T WORK!!)• Client/Server (fat client, not a feature to promote)

Page 13: Designing Applications for Performance

Developers Environment vs. End Users

Developers Environment vs. End Users

• Developers with SUPER machines and 10 transactions in the order detail file

• End Users with older machines and 10,000,000 transactions in the order detail file

• Single biggest reason for poor performance!!

Page 14: Designing Applications for Performance

Be a User for a Day!

Be a User for a Day!• Experience what it is like to run your application on a 4 year old PC• How long does it take you to enter a transaction?• How do the features and functionality really work!• Receive first hand feedback on performance and functionality concerns• Gain a sense of appreciation for end-user complaints

Page 15: Designing Applications for Performance

Q&A

To receive MB Software’s FREE performance evaluation:

1. Register at http://www.mb-software.com 2. Download and install software on AS/400 3. Call (800) 713-5034 to schedule your free performance review session

What To Expect:

After allowing performance data to accumulate for one full business day, you will log into a secure area of MB Software’s Web site. We will then have a conference call to discuss our findings and how you can gain performance improvements with your existing applications. Analyzing existing workload and applications can do a great deal in showing what to mimic and what to improve in new applications. It’s that easy!

Questions & Answers