Home > Store

Software Pipelines and SOA: Releasing the Power of Multi-Core Processing

Register your product to gain access to bonus material or receive a coupon.

Software Pipelines and SOA: Releasing the Power of Multi-Core Processing

eBook

  • Your Price: $34.39
  • List Price: $42.99
  • About Watermarked eBooks
  • This PDF will be accessible from your Account page after purchase and requires PDF reading software, such as Acrobat® Reader®.

    The eBook requires no passwords or activation to read. We customize your eBook by discreetly watermarking it with your name, making it uniquely yours.

    Watermarked eBook FAQ

Description

  • Copyright 2009
  • Edition: 1st
  • eBook
  • ISBN-10: 0-321-60629-9
  • ISBN-13: 978-0-321-60629-7

This is the eBook version of the print title. Access to tools, sample templates, and source code  is available through the product catalog page www.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 www.informit.com/title/0137137974, Download

Sample Content

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

Updates

Submit Errata

More Information

InformIT Promotional Mailings & Special Offers

I would like to receive exclusive offers and hear about products from InformIT and its family of brands. I can unsubscribe at any time.

Overview


Pearson Education, Inc., 221 River Street, Hoboken, New Jersey 07030, (Pearson) presents this site to provide information about products and services that can be purchased through this site.

This privacy notice provides an overview of our commitment to privacy and describes how we collect, protect, use and share personal information collected through this site. Please note that other Pearson websites and online products and services have their own separate privacy policies.

Collection and Use of Information


To conduct business and deliver products and services, Pearson collects and uses personal information in several ways in connection with this site, including:

Questions and Inquiries

For inquiries and questions, we collect the inquiry or question, together with name, contact details (email address, phone number and mailing address) and any other additional information voluntarily submitted to us through a Contact Us form or an email. We use this information to address the inquiry and respond to the question.

Online Store

For orders and purchases placed through our online store on this site, we collect order details, name, institution name and address (if applicable), email address, phone number, shipping and billing addresses, credit/debit card information, shipping options and any instructions. We use this information to complete transactions, fulfill orders, communicate with individuals placing orders or visiting the online store, and for related purposes.

Surveys

Pearson may offer opportunities to provide feedback or participate in surveys, including surveys evaluating Pearson products, services or sites. Participation is voluntary. Pearson collects information requested in the survey questions and uses the information to evaluate, support, maintain and improve products, services or sites, develop new products and services, conduct educational research and for other purposes specified in the survey.

Contests and Drawings

Occasionally, we may sponsor a contest or drawing. Participation is optional. Pearson collects name, contact information and other information specified on the entry form for the contest or drawing to conduct the contest or drawing. Pearson may collect additional personal information from the winners of a contest or drawing in order to award the prize and for tax reporting purposes, as required by law.

Newsletters

If you have elected to receive email newsletters or promotional mailings and special offers but want to unsubscribe, simply email information@informit.com.

Service Announcements

On rare occasions it is necessary to send out a strictly service related announcement. For instance, if our service is temporarily suspended for maintenance we might send users an email. Generally, users may not opt-out of these communications, though they can deactivate their account information. However, these communications are not promotional in nature.

Customer Service

We communicate with users on a regular basis to provide requested services and in regard to issues relating to their account we reply via email or phone in accordance with the users' wishes when a user submits their information through our Contact Us form.

Other Collection and Use of Information


Application and System Logs

Pearson automatically collects log data to help ensure the delivery, availability and security of this site. Log data may include technical information about how a user or visitor connected to this site, such as browser type, type of computer/device, operating system, internet service provider and IP address. We use this information for support purposes and to monitor the health of the site, identify problems, improve service, detect unauthorized access and fraudulent activity, prevent and respond to security incidents and appropriately scale computing resources.

Web Analytics

Pearson may use third party web trend analytical services, including Google Analytics, to collect visitor information, such as IP addresses, browser types, referring pages, pages visited and time spent on a particular site. While these analytical services collect and report information on an anonymous basis, they may use cookies to gather web trend information. The information gathered may enable Pearson (but not the third party web trend services) to link information with application and system log data. Pearson uses this information for system administration and to identify problems, improve service, detect unauthorized access and fraudulent activity, prevent and respond to security incidents, appropriately scale computing resources and otherwise support and deliver this site and its services.

Cookies and Related Technologies

This site uses cookies and similar technologies to personalize content, measure traffic patterns, control security, track use and access of information on this site, and provide interest-based messages and advertising. Users can manage and block the use of cookies through their browser. Disabling or blocking certain cookies may limit the functionality of this site.

Do Not Track

This site currently does not respond to Do Not Track signals.

Security


Pearson uses appropriate physical, administrative and technical security measures to protect personal information from unauthorized access, use and disclosure.

Children


This site is not directed to children under the age of 13.

Marketing


Pearson may send or direct marketing communications to users, provided that

  • Pearson will not use personal information collected or processed as a K-12 school service provider for the purpose of directed or targeted advertising.
  • Such marketing is consistent with applicable law and Pearson's legal obligations.
  • Pearson will not knowingly direct or send marketing communications to an individual who has expressed a preference not to receive marketing.
  • Where required by applicable law, express or implied consent to marketing exists and has not been withdrawn.

Pearson may provide personal information to a third party service provider on a restricted basis to provide marketing solely on behalf of Pearson or an affiliate or customer for whom Pearson is a service provider. Marketing preferences may be changed at any time.

Correcting/Updating Personal Information


If a user's personally identifiable information changes (such as your postal address or email address), we provide a way to correct or update that user's personal data provided to us. This can be done on the Account page. If a user no longer desires our service and desires to delete his or her account, please contact us at customer-service@informit.com and we will process the deletion of a user's account.

Choice/Opt-out


Users can always make an informed choice as to whether they should proceed with certain services offered by InformIT. If you choose to remove yourself from our mailing list(s) simply visit the following page and uncheck any communication you no longer want to receive: www.informit.com/u.aspx.

Sale of Personal Information


Pearson does not rent or sell personal information in exchange for any payment of money.

While Pearson does not sell personal information, as defined in Nevada law, Nevada residents may email a request for no sale of their personal information to NevadaDesignatedRequest@pearson.com.

Supplemental Privacy Statement for California Residents


California residents should read our Supplemental privacy statement for California residents in conjunction with this Privacy Notice. The Supplemental privacy statement for California residents explains Pearson's commitment to comply with California law and applies to personal information of California residents collected in connection with this site and the Services.

Sharing and Disclosure


Pearson may disclose personal information, as follows:

  • As required by law.
  • With the consent of the individual (or their parent, if the individual is a minor)
  • In response to a subpoena, court order or legal process, to the extent permitted or required by law
  • To protect the security and safety of individuals, data, assets and systems, consistent with applicable law
  • In connection the sale, joint venture or other transfer of some or all of its company or assets, subject to the provisions of this Privacy Notice
  • To investigate or address actual or suspected fraud or other illegal activities
  • To exercise its legal rights, including enforcement of the Terms of Use for this site or another contract
  • To affiliated Pearson companies and other companies and organizations who perform work for Pearson and are obligated to protect the privacy of personal information consistent with this Privacy Notice
  • To a school, organization, company or government agency, where Pearson collects or processes the personal information in a school setting or on behalf of such organization, company or government agency.

Links


This web site contains links to other sites. Please be aware that we are not responsible for the privacy practices of such other sites. We encourage our users to be aware when they leave our site and to read the privacy statements of each and every web site that collects Personal Information. This privacy statement applies solely to information collected by this web site.

Requests and Contact


Please contact us about this Privacy Notice or if you have any requests or questions relating to the privacy of your personal information.

Changes to this Privacy Notice


We may revise this Privacy Notice through an updated posting. We will identify the effective date of the revision in the posting. Often, updates are made to provide greater clarity or to comply with changes in regulatory requirements. If the updates involve material changes to the collection, protection, use or disclosure of Personal Information, Pearson will provide notice of the change through a conspicuous notice on this site or other appropriate way. Continued use of the site after the effective date of a posted revision evidences acceptance. Please contact us if you have questions or concerns about the Privacy Notice or any objection to any revisions.

Last Update: November 17, 2020