Available:*
Library | Item Barcode | Call Number | Material Type | Item Category 1 | Status |
---|---|---|---|---|---|
Searching... | 30000010202639 | QA76.58 I82 2009 | Open Access Book | Book | Searching... |
On Order
Summary
Summary
Build Breakthrough Performance into Any SOA or Advanced Computing Application
To meet unprecedented demand, IT organizations must improve application performance by an order of magnitude. Improving performance is even more crucial in SOA environments, which demand far more computing power than older architectures. Today's multi-core servers can deliver the performance businesses require, but few applications take full advantage of them. Now, software innovator Cory Isaacson introduces an easier, more flexible approach to parallel processing-one that any IT organization can use to attain unprecedented levels of performance. Isaacson shows how Software Pipeline models can help you scale applications to any level required, maximize resources, deliver on challenging objectives, and achieve unprecedented ROI. He illuminates these techniques with real-life business scenarios and proven design patterns-everything architects, analysts, and developers need to start using them immediately.
This book's in-depth coverage includes
Author Notes
Cory Isaacson is CEO of Prelude Innovations, Inc., a fi rm specializing in the incubation and introduction of leading software technology products. Actively involved in leading information technologies for over 20 years, Cory served as technical editor and columnist for WebSphere Advisor Magazine, has spoken at hundreds of public events and seminars, and authored numerous articles on architecture and practicalities of employing technology. Cory has provided guidance to hundreds of top architects and professional developers in the fi nancial services, entertainment, telco, and software industries on the development and implementation of powerful business applications.
Most recently Cory was president of Rogue Wave Software, managing the organization for over three years, building new product strategies, and culminating in a successful acquisition in mid-2007 by a leading private equity fi rm. Cory has focused on effi ciently addressing development and deployment challenges of emerging technologies such as SOA, virtualization, and commoditization of resources to support real-world business applications. Cory's expertise with highperformance transactional applications has helped leading IT organizations respond to the challenges of dramatic growth in business and data volumes, while still managing cost pressures. Most recently, Cory has been an active evangelist on the need for using concurrent processing and scalable database techniques in order to improve application performance on multi-core architectures.
Cory received his B.A. degree from the University of California at Santa Barbara.
Excerpts
Excerpts
We're now in the multicore era. As consumers of computing power, we've all come to expect a never-ending increase in power, and CPU manufacturers are now using multicore processors to continue that long-standing trend. If we want to take full advantage of this enormous capacity, our business applications must "do more than one thing at a time." However, traditional parallel computing methods (such as multithreading, SMP, and clustering) are either limiting or extremely difficult to implement, especially when used on top of application components that weren't originally designed for a parallel world. Software Pipelines architecture is a new architecture that specifically addresses the problem of using parallel processing in the multicore era. It is a new approach to the problem. Pipeline technology abstracts the complexities of parallel computing and makes it possible to use the power of the new CPUs for business applications. We wrote this book primarily for software architects, application developers, and application development managers who need high-performance, scalable business applications. Project managers, software quality assurance specialists, and IT operations managers will also find it useful; however, the main focus is software development. Our intention was to make the book as applicable as possible, and to provide tools that you can quickly learn and apply to your own development challenges. The book is divided into four sections, which we'll describe in this preface. Pipelines Theory The Pipelines Theory section, Chapters 1 through 5, covers the following topics: How pipelines work, including the fundamental concepts and underlying theory of Software Pipelines What pipelines can accomplish Methods for applying Software Pipelines Pipelines Patterns, including various ways to apply Software Pipelines in business application scenarios, setting the stage for the examples in later chapters As the foundation for the remainder of the book, this section is appropriate for all readers. If you're a software architect or an application developer, you should definitely study this section first. If you're reading the book from a managerial perspective, or if your interest is more general and less technical, you can focus on just this section. Pipelines Methodology The Pipelines Methodology section, Chapters 6 through 13, shows how to implement Software Pipelines by using the step-by-step Software Pipelines Optimization Cycle (SPOC). To illustrate how the methodology works, we use it to solve a business problem for a fictitious example company, the Pipelines Bank Corporation (PBCOR). In each chapter we present a new step, then show you how we used the step in our PBCOR example. This section will be of interest to all primary audiences of the book, including project managers. The PBCOR examples get into a fair amount of technical detail; therefore, application development managers might want to skip over the more complex examples. Pipelines Examples The Pipelines Examples section, Chapters 14 through 22, contains code examples based on the reference Pipelines Framework we developed for the book. We've included examples for each main Pipelines Pattern from the Pipelines Theory section. You can use these as guides for applying Software Pipelines directly to your own real-world applications. This section is for software architects and application developers, the roles directly involved in pipelines implementation. In addition, IT operations managers will find it helpful to read the configuration sections, which show how to modify the scalability of an application without modifying the actual application components. We recommend that you read the first three chapters of this section in detail. These basic chapters include Chapter 14, "Hello Software Pipelines"; Chapter 15, "Scaling Hello Software Pipelines"; and Chapter 16, "Additional Pipelines Router Configurations." After that, you might prefer to scan the more advanced examples in Chapters 17 through 22, then concentrate on the ones that most apply to your specific application scenarios. The Future of Software Pipelines In the final section we tell you about the future we envision for Software Pipelines architecture. There are plenty of greenfield areas that can be developed, and it is our hope that this section will inspire readers to help move the technology forward into the mainstream. Conventions In our examples, when we present a section of code or XML, refer to a command, or refer to a code element, we'll use a monospaced font, for example,Table of Contents
Foreword | p. xv |
Preface | p. xvii |
Acknowledgments | p. xxi |
About the Author | p. xxiii |
Introduction | p. xxv |
Section I Pipelines Theory | p. 1 |
Chapter 1 Parallel Computing and Business Applications | p. 3 |
Mechanical Solutions: Parallel Computing at the Operating System Level | p. 5 |
Automated Network Routing: Parallel Computing by Predetermined Logic | p. 6 |
Grid Computing: Parallel Computing by Distribution | p. 6 |
Parallel Computing for Business Applications | p. 7 |
The Solution: Software Pipelines | p. 8 |
Fluid Dynamics | p. 10 |
Software Pipelines Example | p. 11 |
Summary | p. 16 |
Chapter 2 Pipelines Law | p. 17 |
The Problem of Wasted CPU Power | p. 17 |
Fluid Dynamics | p. 18 |
Pipelines Law: The Basic Rule | p. 19 |
Corollary 1: Limitations on the Flow | p. 20 |
Corollary 2: Restrictions on the Output Flow | p. 21 |
Software Pipelines Rules | p. 22 |
Rule 1 | p. 22 |
Rule 2 | p. 23 |
Rule 3 | p. 26 |
Summary | p. 30 |
Chapter 3 Pipelines Examples | p. 31 |
Bank ATM System (Single-Tier Distribution) | p. 31 |
Bank ATM System (Multi-Tier Distribution) | p. 35 |
Summary 43 | |
Chapter 4 Pipelines Patterns | p. 45 |
Service Invocation Patterns | p. 47 |
Message Exchange Patterns | p. 49 |
Pipeline Routing Patterns | p. 51 |
Distributor Patterns | p. 55 |
Distributor Connector Patterns | p. 60 |
Summary | p. 62 |
Chapter 5 Pipelines: The Organizational Impact | p. 65 |
Strategic Evaluation | p. 66 |
Budget Impact | p. 68 |
Organizational Roles and Responsibilities | p. 70 |
Summary | p. 78 |
Section II Pipelines Methodology | p. 79 |
Chapter 6 Software Pipelines Optimization Cycle: Overview | p. 81 |
Yet Another Software Methodology? | p. 81 |
SPOC Overview | p. 82 |
Chapter 7 The Five Steps of SPOC | p. 85 |
Summary | p. 88 |
Chapter 8 Pipelines by Example: Introducing the Pipelines Bank Corporation | p. 89 |
SPOC Report Template | p. 93 |
Summary | p. 94 |
Chapter 9 SPOC Step 1: Pipelines Objectives | p. 95 |
Step 1.1 Identify Business Objectives/Requirements | p. 96 |
Step 1.2 Determine Input Processing Rate | p. 102 |
Step 1.3 Determine Future Potential Input Processing Rate | p. 104 |
Step 1.4 Measure Current Capacity | p. 107 |
Step 1.5 Calculate Performance Gap | p. 109 |
Step 1.6 Define Pipelines Targets | p. 111 |
Summary | p. 113 |
Chapter 10 SPOC Step 2: Pipelines Analysis | p. 115 |
Step 2.1 Map Current Process Flow | p. 116 |
Step 2.2 Identify Existing Components | p. 119 |
Step 2.3 Measure Processing Rate of Existing Components | p. 121 |
Step 2.4 Calculate Processing Rate of Entire Flow | p. 124 |
Step 2.5 Identify Restriction Points | p. 127 |
Summary | p. 129 |
Chapter 11 SPOC Step 3: Pipelines Design | p. 131 |
Step 3.1 Define Service Flow Design | p. 133 |
Step 3.2 Identify New Components | p. 138 |
Step 3.3 Identify Pipeline Opportunities | p. 141 |
Step 3.4 Define Pipelines Scheme | p. 145 |
Step 3.5 Determine Distributor Rate | p. 151 |
Step 3.6 Design Physical Deployment Environment | p. 154 |
Step 3.7 Define/Optimize Pipelines Design | p. 155 |
Summary | p. 168 |
Chapter 12 SPOC Step 4: Pipelines Implementation | p. 169 |
Step 4.1 Establish Software Pipelines Framework | p. 171 |
Step 4.2 Modify Existing Components | p. 173 |
Step 4.3 Develop New Components | p. 178 |
Step 4.4 Orchestrate Service Flows | p. 179 |
Step 4.5 Instrument Service Flow | p. 181 |
Step 4.6 Develop/Modify Pipeline Sets | p. 182 |
Step 4.7 Test and Optimize Pipelines Implementation | p. 190 |
Summary | p. 193 |
Chapter 13 SPOC Step 5: Pipelines Deployment | p. 195 |