BN.com Gift Guide

Software Pipelines and SOA: Releasing the Power of Multi-Core Processing [NOOK Book]

Overview

This is the eBook version of the print title. Access to tools, sample templates, and source code is available through the product catalog page informit.com/title/0137137974. Navigate to the Downloads tab and click on the link to download zip file.

Build Breakthrough Performance into Any SOA or Advanced Computing Application

To meet unprecedented demand, IT organizations must improve application performance by...

See more details below
Software Pipelines and SOA: Releasing the Power of Multi-Core Processing

Available on NOOK devices and apps  
  • NOOK Devices
  • Samsung Galaxy Tab 4 NOOK 7.0
  • Samsung Galaxy Tab 4 NOOK 10.1
  • NOOK HD Tablet
  • NOOK HD+ Tablet
  • NOOK eReaders
  • NOOK Color
  • NOOK Tablet
  • Tablet/Phone
  • NOOK for Windows 8 Tablet
  • NOOK for iOS
  • NOOK for Android
  • NOOK Kids for iPad
  • PC/Mac
  • NOOK for Windows 8
  • NOOK for PC
  • NOOK for Mac

Want a NOOK? Explore Now

NOOK Book (eBook)
$19.99
BN.com price
(Save 44%)$35.99 List Price

Overview

This is the eBook version of the print title. Access to tools, sample templates, and source code is available through the product catalog page informit.com/title/0137137974. Navigate to the Downloads tab and click on the link to download zip file.

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

  • How Software Pipelines work, what they can accomplish, and how you can apply them using the Software Pipelines Optimization Cycle (SPOC)
  • Scaling applications via parallel processing while guaranteeing order of processing in mission-critical applications
  • Solving performance problems in existing applications, and resolving bottlenecks in existing processes
  • A complete, easy-to-adapt Pipelines Reference Framework
  • Detailed code examples reflecting proven Pipelines Patterns
  • Techniques that can be applied in any industry, with any programming language
  • Specific architectural and design solutions for common business and technical challenges
  • The future of Software Pipelines: emerging opportunities for “greenfield” development
  • Tools, sample templates, and source code at informit.com/title/0137137974, Download
Read More Show Less

Editorial Reviews

From the Publisher
“There are some books that tout vision but provide no pragmatic, hands-on details. Software Pipelines and SOA offers a dose of both. Isaacson is an authority and practitioner, who understands that the promise of SOA is not fulfilled simply by embracing an architectural style of loosely coupled, network-based services but in how the applications and services that support this architectural style are developed and deployed. This book will help support a pragmatic approach to SOA.”
—Dan Malks, VP, Partner Engineering, JackBe

" Software Pipelines uncovers a new and unique way of software design for high-performance development. Where other methodologies and frameworks have previously been describing the problem, Software Pipelines is focusing on the solution. Simply put, Software Pipelines addresses the developer’s needs for parallel computing and uncovers the throughput offered by multi-core processors.”
—Filip Hanik, Senior Software Engineer, SpringSource, Inc.

“. . . it provides insights on how to effi ciently realize scalability on and across multi-core machines in a predictable manner using patterns derived from the best practices in distributed computing and SOA. Written in a conversational manner, one of the pioneering technology leaders of our time provides keen insights on how to build scalable software solutions.”
—Ravi Palepu, SOA Consultant and Founder of PREDICT

Software Pipelines paves the road in distributed, SOA, high-performance computing in theory and practice with strong technical background, elegant architecture, and a usable implementation. A revolution in grid computing and service-oriented architecture.”
—Nicole Nemer, Ph.D., Superior Consulting

“Multi-core computing offers a unique opportunity to deliver dramatic scalability in modern business applications; but the task is not an easy one, presenting signifi cant challenges to the software developer. Software Pipelines provides an easy-to-implement, concrete strategy that enables service-oriented applications to really deliver on the promise of this new hardware paradigm. A must read for any developer or architect stepping up to the challenge of highperformance business transaction processing.”
—Henry Truong, Chief Technology Offi cer, TeleTech, Inc.

“Isaacson offers a fresh approach to componentize and parallelize software applications in a way that is easy to debug and easy to maintain. Using the high-level abstraction of Software Pipelines, development managers need not worry about the complexities of concurrent programming or the challenges in dealing with maintaining threads, interprocess communication or deadlocks. Any software architect dealing with performance and scalability issues with complex transactional fl ows must consider the Software Pipelines design paradigm.”
—Venkat Pula, Field Application Engineer, Telelogic, an IBM Company

“Cory has captured the power of simplicity, enabling business software applications to exponentially leverage the capacity and capabilities of today’s advanced chip architectures. Using Software Pipelines, corporate IT groups are able to manage, control and fully utilize the power of multi-core computing to improve scalability and reduce long-term costs.”
—Jim Hogan, Cognify, Vice President, Managed Services

“Having projects architected to gracefully scale from a single multi-core box all the way to a cluster of thousands of machines is the new reality. With Software Pipelines, the development organization can easily architect every project—from the summer intern’s toy prototype to your flagship technology—as though it might need to scale for worldwide consumption. Embrace this change now and the day you need that scalability will be your biggest success. Ignore it and it will likely be your greatest failure.”
—Jackson Gibbs, CTO, Strands

Read More Show Less

Product Details

Meet the Author


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.
Read More Show Less

Read an Excerpt

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

Distributor1.

The Web Site

We've established a Web site for Software Pipelines technology at softwarepipelines.org. The site is for readers of the book and for anyone else who is interested in using or advancing the Software Pipelines architecture. You can download the following items from the site:

  • Tools and sample report templates for the Software Pipelines Optimization Cycle (SPOC) methodology
  • Source code for the reference Pipelines Framework
  • Complete source code for all examples in the book
  • Articles and discussions on pipelines technology and its applications

We hope you find Software Pipelines as exciting as we've found it, and that you take this opportunity to capitalize on its capabilities and use it to help overcome your own performance and scalability challenges.

Read More Show Less

Table of Contents

Foreword xv
Preface xvii
Acknowledgments xxi
About the Author xxiii
Introduction xxv

Section I: Pipelines Theory 1
Chapter 1: Parallel Computing and Business Applications 3

Mechanical Solutions: Parallel Computing at the Operating System Level 5
Automated Network Routing: Parallel Computing by Predetermined Logic 6
Grid Computing: Parallel Computing by Distribution 6
Parallel Computing for Business Applications 7
The Solution: Software Pipelines 8
Fluid Dynamics 10
Software Pipelines Example 11
Summary 16

Chapter 2: Pipelines Law 17
The Problem of Wasted CPU Power 17
Fluid Dynamics 18
Pipelines Law: The Basic Rule 19
Corollary 1: Limitations on the Flow 20
Corollary 2: Restrictions on the Output Flow 21
Software Pipelines Rules 22
Rule 1 22
Rule 2 23
Rule 3 26
Summary 30

Chapter 3: Pipelines Examples 31
Bank ATM System (Single-Tier Distribution) 31
Bank ATM System (Multi-Tier Distribution) 35
Summary 43

Chapter 4: Pipelines Patterns 45
Service Invocation Patterns 47
Message Exchange Patterns 49
Pipeline Routing Patterns 51
Distributor Patterns 55
Distributor Connector Patterns 60
Summary 62

Chapter 5: Pipelines: The Organizational Impact 65
Strategic Evaluation 66
Budget Impact 68
Organizational Roles and Responsibilities 70
Summary 78

Section II: Pipelines Methodology 79
Chapter 6: Software Pipelines Optimization Cycle: Overview 81

Yet Another Software Methodology? 81
SPOC Overview 82

Chapter 7: The Five Steps of SPOC 85
Summary 88

Chapter 8: Pipelines by Example: Introducing the Pipelines Bank Corporation 89
SPOC Report Template 93
Summary 94

Chapter 9: SPOC Step 1: Pipelines Objectives 95
Step 1.1: Identify Business Objectives/Requirements 96
Step 1.2: Determine Input Processing Rate 102
Step 1.3: Determine Future Potential Input Processing Rate 104
Step 1.4: Measure Current Capacity 107
Step 1.5: Calculate Performance Gap 109
Step 1.6: Define Pipelines Targets 111
Summary 113

Chapter 10: SPOC Step 2: Pipelines Analysis 115
Step 2.1: Map Current Process Flow 116
Step 2.2: Identify Existing Components 119
Step 2.3: Measure Processing Rate of Existing Components 121
Step 2.4: Calculate Processing Rate of Entire Flow 124
Step 2.5: Identify Restriction Points 127
Summary 129

Chapter 11: SPOC Step 3: Pipelines Design 131
Step 3.1: Define Service Flow Design 133
Step 3.2: Identify New Components 138
Step 3.3: Identify Pipeline Opportunities 141
Step 3.4: Define Pipelines Scheme 145
Step 3.5: Determine Distributor Rate 151
Step 3.6: Design Physical Deployment Environment 154
Step 3.7: Define/Optimize Pipelines Design 155
Summary 168

Chapter 12: SPOC Step 4: Pipelines Implementation 169
Step 4.1: Establish Software Pipelines Framework 171
Step 4.2: Modify Existing Components 173
Step 4.3: Develop New Components 178
Step 4.4: Orchestrate Service Flows 179
Step 4.5: Instrument Service Flow 181
Step 4.6: Develop/Modify Pipeline Sets 182
Step 4.7: Test and Optimize Pipelines Implementation 190
Summary 193

Chapter 13: SPOC Step 5: Pipelines Deployment 195
Step 5.1: Plan Pipelines Deployment 196
Step 5.2: Deploy to Production Environment 197
Step 5.3: Monitor Production Environment 198
Step 5.4: Evaluate Results, Plan Next SPOC Iteration 199
Summary 201

Section II: I: Pipelines Examples 203
Chapter 14: Hello Software Pipelines 205

Define the Message 206
Build the Service 207
Configure the Distributors 209
Create the Client 212
Run the Service 215
Summary 215

Chapter 15: Scaling Hello Software Pipelines 217
Scale the Service 217
Develop a Scalable Test Client 219
Run the Service 223
Summary 228

Chapter 16: Additional Pipelines Router Configurations 229
Content-Based Router 229
Custom Pipelines Router 241
Summary 256

Chapter 17: Getting an Answer from Hello Software Pipelines 257
Request-Response Messaging 257
Use Request-Response with Hello Software Pipelines 261
Summary 273

Chapter 18: Additional Distributor Connector Patterns 275
Define and Configure a Connector 275
Socket Connector 278
Web Service Connector 280
Summary 282

Chapter 19: Using a Multi-Tier Distributor 283
Configure the Multi-Tier Distributors 284
Create the Client 289
Run the Service 292
Summary 293

Chapter 20: Database Sharding Distributor 295
Database Shards Example 297
Create the Database Shards 299
Build the Service 299
Configure the Distributor 303
Configure the Sharding Driver 304
Create the Client 305
Run the Service 307
Summary 309

Chapter 21: Pipelines Framework Overview 311
Interface Overview 311
Pipelines Instrumentor 314
Summary 322

Chapter 22: Pipelines Bank Corporation (PBCOR) Example 323
Account Transaction 323
Pipelines Configuration 328
Spring Framework 332
Database Access 333
Run the Test 348
Summary 349

Section IV: The Future of Software Pipelines 351
Chapter 23: The Future of Software Pipelines 353

Final Words of Advice 353
Ideas for the Future 354

Appendix: Pipelines Reference Framework Javadoc 357

Index 375
Read More Show Less

Preface

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, <pipelines-distributor>. For names of components, such as services, clients, and distributors, we'll use an italic monospaced font, for example, Distributor1 .

The Web Site

We've established a Web site for Software Pipelines technology at softwarepipelines.org. The site is for readers of the book and for anyone else who is interested in using or advancing the Software Pipelines architecture. You can download the following items from the site:

  • Tools and sample report templates for the Software Pipelines Optimization Cycle (SPOC) methodology
  • Source code for the reference Pipelines Framework
  • Complete source code for all examples in the book
  • Articles and discussions on pipelines technology and its applications

We hope you find Software Pipelines as exciting as we've found it, and that you take this opportunity to capitalize on its capabilities and use it to help overcome your own performance and scalability challenges.

Read More Show Less

Customer Reviews

Be the first to write a review
( 0 )
Rating Distribution

5 Star

(0)

4 Star

(0)

3 Star

(0)

2 Star

(0)

1 Star

(0)

Your Rating:

Your Name: Create a Pen Name or

Barnes & Noble.com Review Rules

Our reader reviews allow you to share your comments on titles you liked, or didn't, with others. By submitting an online review, you are representing to Barnes & Noble.com that all information contained in your review is original and accurate in all respects, and that the submission of such content by you and the posting of such content by Barnes & Noble.com does not and will not violate the rights of any third party. Please follow the rules below to help ensure that your review can be posted.

Reviews by Our Customers Under the Age of 13

We highly value and respect everyone's opinion concerning the titles we offer. However, we cannot allow persons under the age of 13 to have accounts at BN.com or to post customer reviews. Please see our Terms of Use for more details.

What to exclude from your review:

Please do not write about reviews, commentary, or information posted on the product page. If you see any errors in the information on the product page, please send us an email.

Reviews should not contain any of the following:

  • - HTML tags, profanity, obscenities, vulgarities, or comments that defame anyone
  • - Time-sensitive information such as tour dates, signings, lectures, etc.
  • - Single-word reviews. Other people will read your review to discover why you liked or didn't like the title. Be descriptive.
  • - Comments focusing on the author or that may ruin the ending for others
  • - Phone numbers, addresses, URLs
  • - Pricing and availability information or alternative ordering information
  • - Advertisements or commercial solicitation

Reminder:

  • - By submitting a review, you grant to Barnes & Noble.com and its sublicensees the royalty-free, perpetual, irrevocable right and license to use the review in accordance with the Barnes & Noble.com Terms of Use.
  • - Barnes & Noble.com reserves the right not to post any review -- particularly those that do not follow the terms and conditions of these Rules. Barnes & Noble.com also reserves the right to remove any review at any time without notice.
  • - See Terms of Use for other conditions and disclaimers.
Search for Products You'd Like to Recommend

Recommend other products that relate to your review. Just search for them below and share!

Create a Pen Name

Your Pen Name is your unique identity on BN.com. It will appear on the reviews you write and other website activities. Your Pen Name cannot be edited, changed or deleted once submitted.

 
Your Pen Name can be any combination of alphanumeric characters (plus - and _), and must be at least two characters long.

Continue Anonymously
Sort by: Showing 1 Customer Reviews
  • Posted December 18, 2008

    Clever - a must read

    This is an essential read for any company and software team serious about developing software that will survive scalability and longevity. The book is well written; it is clear and concise with an easy to understand style and elucidating examples. And, Cory provides everything in one package - the need, the theory, the methodology, examples, and even code ¿ that one needs to understand and apply his theory of Software Pipelines. He also provides a compelling case to present to management to gain support for including Software Pipelines in your software lifecycle approach.<BR/><BR/>Software Pipelines is about including transaction throughput analysis in the software development process and creating a pipeline and pipeline distributor architecture to dynamically control transaction routing and execution over a network to avoid bottlenecks and to take full advantage of controlled parallel processing. We control where and when transactions are routed and executed and can make modifications to the pipeline architecture at any time, or program the pipelines to dynamically delegate to other pipelines, to offset bottlenecks and increased activity thereby taking full advantage of our computing resources. Couple this with database sharding and it is easy to see how we can create a massively robust, scalable, and flexible architecture. It makes incredible sense¿<BR/><BR/>Karol Blanchard<BR/>VP Engineering<BR/>Consumer Health Advisers

    Was this review helpful? Yes  No   Report this review
Sort by: Showing 1 Customer Reviews

If you find inappropriate content, please report it to Barnes & Noble
Why is this product inappropriate?
Comments (optional)