WebSphere Application Server V6 Planning and Design ... · WebSphere Application Server V6 Planning...

598
ibm.com/redbooks WebSphere Application Server V6 Planning and Design WebSphere Handbook Series Hernan Cunico Leandro Petit Michael Asbridge Derek Botti Venkata Gadepalli William Patrey Noelle Jakusz Discusses end-to-end planning for WebSphere implementations Provides best practices Includes a complex topology walk-through

Transcript of WebSphere Application Server V6 Planning and Design ... · WebSphere Application Server V6 Planning...

  • ibm.com/redbooks

    WebSphere Application Server V6Planning and DesignWebSphere Handbook Series

    Hernan CunicoLeandro Petit

    Michael AsbridgeDerek Botti

    Venkata GadepalliWilliam PatreyNoelle Jakusz

    Discusses end-to-end planning for WebSphere implementations

    Provides best practices

    Includes a complex topology walk-through

    Front cover

    http://www.redbooks.ibm.com/http://www.redbooks.ibm.com/

  • WebSphere Application Server V6 Planning and Design, WebSphere Handbook Series

    March 2005

    International Technical Support Organization

    SG24-6446-00

  • © Copyright International Business Machines Corporation 2005. All rights reserved.Note to U.S. Government Users Restricted Rights -- Use, duplication or disclosure restricted by GSA ADPSchedule Contract with IBM Corp.

    First Edition (March 2005)

    This edition applies WebSphere Application Server V6.0.

    Note: Before using this information and the product it supports, read the information in “Notices” on page xix.

  • Contents

    Notices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xixTrademarks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xx

    Preface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxiThe team that wrote this redbook. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxiBecome a published author . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxiiiComments welcome. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxiv

    Part 1. Getting started . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1

    Chapter 1. Introduction to WebSphere Application Server V6 . . . . . . . . . . 31.1 Product overview. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41.2 WebSphere product family . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51.3 WebSphere for distributed platforms. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

    1.3.1 Highlights and benefits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81.4 Packaging . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

    1.4.1 Packaging for distributed platforms. . . . . . . . . . . . . . . . . . . . . . . . . . 101.5 Supported platforms and software . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

    1.5.1 Operating systems . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131.5.2 Web servers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141.5.3 Database servers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151.5.4 Directory servers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

    Chapter 2. Technology options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172.1 Web services. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

    2.1.1 Static and dynamic Web services . . . . . . . . . . . . . . . . . . . . . . . . . . . 182.1.2 JAX-RPC. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192.1.3 Service-oriented architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212.1.4 Security . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

    2.2 Flow languages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242.2.1 Flow Definition Language . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242.2.2 Flow Definition Markup Language. . . . . . . . . . . . . . . . . . . . . . . . . . . 252.2.3 Business Process Execution Language . . . . . . . . . . . . . . . . . . . . . . 252.2.4 More information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

    2.3 J2EE Connector Architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 282.4 Java Message Service . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

    2.4.1 Overview of JMS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 292.4.2 JMS and WebSphere MQ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 302.4.3 Advantages of using JMS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37

    © Copyright IBM Corp. 2005. All rights reserved. iii

  • 2.4.4 Disadvantages of using JMS. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 382.4.5 Summary. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39

    2.5 Business Rule Bean Framework . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 392.5.1 Planning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 392.5.2 Business Rule Beans . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 402.5.3 Why use Business Rule Beans . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40

    2.6 Information integration. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 422.6.1 Data consolidation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 432.6.2 Distributed access. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 432.6.3 Choosing and combining data integration approaches . . . . . . . . . . . 442.6.4 Data integration tools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 452.6.5 Summary on data integration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47

    Chapter 3. What’s new? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 493.1 Features comparison between versions . . . . . . . . . . . . . . . . . . . . . . . . . . 503.2 Installation improvements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51

    3.2.1 Redesigned launchpad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 513.2.2 Granular installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 513.2.3 WebSphere profiles. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 523.2.4 Installing WebSphere Application Server products . . . . . . . . . . . . . . 533.2.5 Installing IBM HTTP Server. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 533.2.6 Installing application server clients . . . . . . . . . . . . . . . . . . . . . . . . . . 533.2.7 Improved directory structures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 543.2.8 Reduced footprint . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 543.2.9 Removal and reinstallation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54

    3.3 Administration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 543.3.1 Application deployment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 553.3.2 Incremental cell version upgrade . . . . . . . . . . . . . . . . . . . . . . . . . . . 563.3.3 WebSphere configuration archive . . . . . . . . . . . . . . . . . . . . . . . . . . . 573.3.4 Enhanced administrative infrastructure. . . . . . . . . . . . . . . . . . . . . . . 573.3.5 New administrative commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 593.3.6 Improved monitoring and performance tuning . . . . . . . . . . . . . . . . . 593.3.7 System applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 603.3.8 Replication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 603.3.9 High availability manager . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 613.3.10 Common networking services . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 613.3.11 Centralized Web server plug-in configuration . . . . . . . . . . . . . . . . . 623.3.12 Node groups . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 623.3.13 Server templates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 623.3.14 Resource providers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 623.3.15 SOAP connector . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 633.3.16 WebSphere profiles. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 633.3.17 New administrative console look and feel . . . . . . . . . . . . . . . . . . . . 64

    iv WebSphere Application Server V6 Planning and Design

  • 3.4 Default messaging provider. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 643.5 Clustering enhancements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65

    3.5.1 Unified cluster framework . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 653.5.2 Data replication service enhancements . . . . . . . . . . . . . . . . . . . . . . 66

    3.6 Security enhancements. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 673.6.1 JACC provider support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 673.6.2 Java 2 security manager . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 673.6.3 J2EE Connector Architecture 1.5 support. . . . . . . . . . . . . . . . . . . . . 673.6.4 Secure sockets layer channel framework . . . . . . . . . . . . . . . . . . . . . 683.6.5 Web authentication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 683.6.6 Web services security . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68

    3.7 Deprecated features in this version. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 693.7.1 Programming model and container support features . . . . . . . . . . . . 693.7.2 Application services features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 693.7.3 Security features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 723.7.4 System administration features. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 733.7.5 Performance features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73

    3.8 Application programming model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 743.8.1 Programming Model Extensions . . . . . . . . . . . . . . . . . . . . . . . . . . . . 743.8.2 J2EE 1.4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 763.8.3 Web Services . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 803.8.4 Service Data Object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 843.8.5 JavaServer Faces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85

    Chapter 4. WebSphere Application Server architecture . . . . . . . . . . . . . . 874.1 Application server configurations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88

    4.1.1 Stand-alone server configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . 884.1.2 Distributed server configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90

    4.2 Cells, nodes, and servers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 914.3 Servers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93

    4.3.1 Application server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 934.3.2 Clusters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 934.3.3 JMS servers (V5) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 944.3.4 External servers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94

    4.4 Containers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 954.4.1 Web container . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 954.4.2 EJB container . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 974.4.3 Client application container . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97

    4.5 Application server services . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 974.5.1 JCA services . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 984.5.2 Transaction service . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 994.5.3 Dynamic cache service . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1004.5.4 Message listener service. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101

    Contents v

  • 4.5.5 Object Request Broker service . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1014.5.6 Administrative service . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1014.5.7 Name service . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1024.5.8 PMI service . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1044.5.9 Security service. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105

    4.6 Data Replication Service . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1054.7 Virtual hosts. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1064.8 Session management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106

    4.8.1 HTTP Session persistence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1084.8.2 Stateful session EJB persistence . . . . . . . . . . . . . . . . . . . . . . . . . . 109

    4.9 Web services. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1094.9.1 Enterprise services (JCA Web services). . . . . . . . . . . . . . . . . . . . . 1114.9.2 Web service client . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1124.9.3 Web service provider . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1124.9.4 Enterprise Web Services. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1124.9.5 IBM WebSphere UDDI Registry . . . . . . . . . . . . . . . . . . . . . . . . . . . 1134.9.6 Web Services Gateway. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113

    4.10 Service integration bus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1154.10.1 Application support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1174.10.2 Service integration bus and messaging . . . . . . . . . . . . . . . . . . . . 1174.10.3 Web services and the integration bus . . . . . . . . . . . . . . . . . . . . . . 119

    4.11 Security . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1204.11.1 User registry . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1234.11.2 Authentication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1234.11.3 Authorization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1244.11.4 Security components. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1254.11.5 Security flows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126

    4.12 Resource providers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1284.12.1 JDBC resources . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1284.12.2 Mail providers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1304.12.3 JCA resource adapters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1314.12.4 URL providers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1314.12.5 JMS providers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1324.12.6 Resource environment providers . . . . . . . . . . . . . . . . . . . . . . . . . 133

    4.13 Workload management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1344.14 High availability . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1364.15 Administration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137

    4.15.1 Administration tools. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1374.15.2 Configuration repository . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1394.15.3 Centralized administration. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139

    4.16 The flow of an application . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1414.17 Developing and deploying applications . . . . . . . . . . . . . . . . . . . . . . . . . 143

    4.17.1 Application design . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143

    vi WebSphere Application Server V6 Planning and Design

  • 4.17.2 Application development . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1434.17.3 Application packaging . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1444.17.4 Application deployment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1454.17.5 WebSphere Rapid Deployment. . . . . . . . . . . . . . . . . . . . . . . . . . . 145

    4.18 Java 2 Platform, Enterprise Edition . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1464.18.1 J2EE platform roles. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1474.18.2 J2EE benefits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1484.18.3 Application components and their containers . . . . . . . . . . . . . . . . 1494.18.4 Standard services . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1494.18.5 J2EE packaging . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149

    4.19 Technology support summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150

    Chapter 5. Integration with other products. . . . . . . . . . . . . . . . . . . . . . . . 1555.1 Tivoli Access Manager . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156

    5.1.1 WebSphere Application Server V6 security . . . . . . . . . . . . . . . . . . 1565.1.2 New security features in WebSphere Application Server V6 . . . . . 1575.1.3 Tivoli Access Manager and WebSphere Application Server V6 . . . 157

    5.2 IBM Directory Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1615.2.1 The Lightweight Directory Access Protocol. . . . . . . . . . . . . . . . . . . 1615.2.2 Supported LDAP servers for WebSphere Application Server V6 . . 1615.2.3 IBM Directory Server and WebSphere Application Server V6 . . . . 162

    5.3 WebSphere Business Integration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1635.3.1 Service Oriented Architectures . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1635.3.2 Enterprise Service Bus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1635.3.3 WebSphere Business Integration family of technologies . . . . . . . . 1635.3.4 WebSphere Application Server and Business Integration . . . . . . . 164

    5.4 MQ integration. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1675.4.1 Supported JMS messaging providers . . . . . . . . . . . . . . . . . . . . . . . 1685.4.2 Integration scenarios and possibilities . . . . . . . . . . . . . . . . . . . . . . 168

    Chapter 6. Development tools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1736.1 Development and deployment tools . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174

    6.1.1 Rational tools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1746.1.2 Rational Web Developer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1756.1.3 Rational Application Developer . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1776.1.4 Application Server Toolkit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1786.1.5 WebSphere Rapid Deployment. . . . . . . . . . . . . . . . . . . . . . . . . . . . 1796.1.6 Integration with ClearCase . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180

    6.2 Performance and analysis tools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1806.2.1 Memory analysis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1816.2.2 Thread analysis. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1816.2.3 Execution time analysis. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1826.2.4 Code coverage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182

    Contents vii

  • 6.2.5 Probe kit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1826.3 End-to-end application life cycle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183

    6.3.1 The place for Rational Application Developer in the life cycle . . . . 1846.3.2 The wider rational tool set and development life cycle . . . . . . . . . . 185

    Part 2. Planning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187

    Chapter 7. Planning for infrastructure. . . . . . . . . . . . . . . . . . . . . . . . . . . . 1897.1 Infrastructure deployment planning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1907.2 Design for scalability . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192

    7.2.1 Scaling your infrastructure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1927.2.2 Understanding the application environment . . . . . . . . . . . . . . . . . . 1927.2.3 Categorizing your workload. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1947.2.4 Determining the most affected components . . . . . . . . . . . . . . . . . . 2017.2.5 Selecting the scaling techniques to apply . . . . . . . . . . . . . . . . . . . . 2027.2.6 Applying the techniques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2067.2.7 Re-evaluating . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208

    7.3 Sizing. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2087.4 Benchmarking . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210

    7.4.1 IBM Test Center . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2107.5 Performance tuning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211

    7.5.1 Application design problems . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2117.5.2 Understand your requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2117.5.3 Test environment setup. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2127.5.4 Integration testing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2127.5.5 Development testing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2137.5.6 Load factors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2147.5.7 Production system tuning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2157.5.8 Conclusions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 216

    Chapter 8. Topology selection criteria . . . . . . . . . . . . . . . . . . . . . . . . . . . 2198.1 Common terminology . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220

    8.1.1 Web application server node. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2208.1.2 Web server redirector node and application server node . . . . . . . . 2218.1.3 Domain and protocol firewalls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2218.1.4 Directory and security services node . . . . . . . . . . . . . . . . . . . . . . . 2228.1.5 Web presentation server node . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2228.1.6 Database server node. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2228.1.7 Load balancer node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223

    8.2 WebSphere Application Server terminology . . . . . . . . . . . . . . . . . . . . . . 2238.2.1 Plug-in module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2238.2.2 Plug-in configuration file . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2238.2.3 Application Server Node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2238.2.4 Node Agent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224

    viii WebSphere Application Server V6 Planning and Design

  • 8.2.5 Deployment Manager . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2248.2.6 Cell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2248.2.7 Cluster. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2248.2.8 Cluster Member. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2248.2.9 Web server Managed Node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2258.2.10 Web server Unmanaged Node . . . . . . . . . . . . . . . . . . . . . . . . . . . 2258.2.11 WebSphere Profile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2258.2.12 Managed Node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2258.2.13 Node Group. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2258.2.14 High availability manager . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2268.2.15 Core group . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2288.2.16 High availability groups . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2298.2.17 Data replication service. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2308.2.18 Service integration bus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231

    8.3 Security . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2328.3.1 Concepts overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 232

    8.4 Performance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2358.4.1 Right hardware selection. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2368.4.2 Aligning to the best practices for development . . . . . . . . . . . . . . . . 2368.4.3 Proper application testing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2368.4.4 Scaling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 236

    8.5 Throughput . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2378.6 Availability . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 238

    8.6.1 Hardware and process redundancy . . . . . . . . . . . . . . . . . . . . . . . . 2388.6.2 Process isolation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2398.6.3 Load balancing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2398.6.4 Failover support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2398.6.5 Hardware-based high availability . . . . . . . . . . . . . . . . . . . . . . . . . . 239

    8.7 Maintainability . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2408.8 Session management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2408.9 Topology selection summary. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 244

    Chapter 9. Topologies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2479.1 Single machine topology (stand-alone server) . . . . . . . . . . . . . . . . . . . . 248

    9.1.1 Multiple installs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2489.1.2 Single install, multiple WebSphere profiles . . . . . . . . . . . . . . . . . . . 2489.1.3 Single machine, single node, one application server . . . . . . . . . . . 2499.1.4 Web server separated. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2519.1.5 Software requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 254

    9.2 Reverse proxy topology. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2549.2.1 Software requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 256

    9.3 Cell topologies. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2579.3.1 Deployment Manager and each node in separate machines . . . . . 260

    Contents ix

  • 9.3.2 Deployment Manager and all nodes in one single machine . . . . . . 2619.3.3 Multiple nodes on the same machine or LPAR . . . . . . . . . . . . . . . . 2629.3.4 Deployment Manager and one node on the same machine . . . . . . 2639.3.5 Parts of multiple cells share a physical machine. . . . . . . . . . . . . . . 2649.3.6 Software requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 264

    9.4 Web server topology in a Network Deployment cell . . . . . . . . . . . . . . . . 2659.4.1 Web server Managed Node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2659.4.2 Web server Unmanaged Node . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2669.4.3 IBM HTTP Server as Unmanaged Node (special case) . . . . . . . . . 2679.4.4 Software requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 267

    9.5 Mixed node versions in a cell topology . . . . . . . . . . . . . . . . . . . . . . . . . . 2689.5.1 Software requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 269

    9.6 Clustered topologies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2699.6.1 One cluster on one machine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2719.6.2 One cluster on multiple machines . . . . . . . . . . . . . . . . . . . . . . . . . . 2719.6.3 Software requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 271

    9.7 Mixed node versions in a clustered topology . . . . . . . . . . . . . . . . . . . . . 2729.7.1 Software requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 273

    9.8 Vertical scaling topology . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2749.8.1 Software requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 275

    9.9 Horizontal scaling topology . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2769.9.1 Software requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 278

    9.10 Horizontal scaling with IP sprayer topology. . . . . . . . . . . . . . . . . . . . . . 2789.10.1 Software requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 280

    9.11 Topology with redundancy of several components . . . . . . . . . . . . . . . . 2819.11.1 Software requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 283

    Chapter 10. Planning for installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28510.1 Selecting a topology . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28610.2 Selecting hardware and operating system . . . . . . . . . . . . . . . . . . . . . . 28710.3 Selecting components and versions . . . . . . . . . . . . . . . . . . . . . . . . . . . 287

    10.3.1 WebSphere Application Server - Express V6 . . . . . . . . . . . . . . . . 28710.3.2 WebSphere Application Server V6 . . . . . . . . . . . . . . . . . . . . . . . . 28810.3.3 WebSphere Application Server Network Deployment V6 . . . . . . . 28810.3.4 Planning for Web server installation . . . . . . . . . . . . . . . . . . . . . . . 29010.3.5 Planning for Web server plug-in installation . . . . . . . . . . . . . . . . . 29010.3.6 Planning for application server clients installation. . . . . . . . . . . . . 294

    10.4 TCP/IP ports assignment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29610.5 Naming considerations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 298

    10.5.1 Naming concepts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29810.6 Security considerations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30010.7 WebSphere Edge Components. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 301

    10.7.1 Caching Proxy. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 301

    x WebSphere Application Server V6 Planning and Design

  • 10.7.2 Load Balancer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30210.7.3 Installing and configuring Edge Components . . . . . . . . . . . . . . . . 304

    Chapter 11. Planning for application development . . . . . . . . . . . . . . . . . 30511.1 Versioning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 306

    11.1.1 Source Code Management systems . . . . . . . . . . . . . . . . . . . . . . . 30611.1.2 Which SCM should you use . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30811.1.3 Hardware and network considerations . . . . . . . . . . . . . . . . . . . . . 310

    11.2 Versioning strategies and best practices. . . . . . . . . . . . . . . . . . . . . . . . 31411.2.1 Rational ClearCase . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31411.2.2 Concurrent Versions System . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31911.2.3 More tips for CVS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 321

    11.3 End-to-end life cycle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32311.3.1 Software development life cycle key concepts . . . . . . . . . . . . . . . 32311.3.2 The Rational Unified Process® . . . . . . . . . . . . . . . . . . . . . . . . . . . 325

    11.4 General development best practices. . . . . . . . . . . . . . . . . . . . . . . . . . . 32711.4.1 Iterative Development . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32711.4.2 Requirements Definition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33011.4.3 Object-oriented approach to design and programming. . . . . . . . . 33011.4.4 Modeling languages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33111.4.5 Regular Reviews and check points . . . . . . . . . . . . . . . . . . . . . . . . 332

    11.5 Java development best practices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33211.5.1 Code documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33211.5.2 Unit testing and JUnit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 334

    11.6 Enterprise Java development best practices. . . . . . . . . . . . . . . . . . . . . 33511.6.1 Design patterns, design patterns, design patterns . . . . . . . . . . . . 33511.6.2 J2EE performance issues and best practice. . . . . . . . . . . . . . . . . 33711.6.3 WebSphere Application Server clients . . . . . . . . . . . . . . . . . . . . . 342

    Chapter 12. Planning for application deployment . . . . . . . . . . . . . . . . . . 34512.1 Planning for the deployment of applications . . . . . . . . . . . . . . . . . . . . . 346

    12.1.1 Deployment tools available . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34612.1.2 Topology considerations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 346

    12.2 WebSphere Rapid Deployment. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34812.3 Annotation-based programming . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 349

    12.3.1 A past, present, and future trend. . . . . . . . . . . . . . . . . . . . . . . . . . 34912.3.2 EJB annotations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35112.3.3 Annotation-based programming . . . . . . . . . . . . . . . . . . . . . . . . . . 354

    12.4 Deployment automation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35712.4.1 Deployment model features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35712.4.2 Styles of deployment. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35812.4.3 Setting up deployment automation . . . . . . . . . . . . . . . . . . . . . . . . 358

    12.5 Best practices for deployment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 359

    Contents xi

  • 12.5.1 Rapid application deployment . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36012.5.2 Deployment via Rational Application Developer . . . . . . . . . . . . . . 36112.5.3 Deployment via the WebSphere administrative console. . . . . . . . 36212.5.4 Deployment using wsadmin command line scripting . . . . . . . . . . 36412.5.5 Deployment using Ant . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 367

    Chapter 13. Planning for system management . . . . . . . . . . . . . . . . . . . . 37113.1 System administration overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 372

    13.1.1 Administrative console . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37213.1.2 WebSphere scripting client (wsadmin) . . . . . . . . . . . . . . . . . . . . . 37313.1.3 Using Ant to automate tasks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37313.1.4 Using administrative programs . . . . . . . . . . . . . . . . . . . . . . . . . . . 37413.1.5 WebSphere Application Server command line tools . . . . . . . . . . . 374

    13.2 Configuration planning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37513.2.1 Administrative architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37513.2.2 Configuration repository . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37513.2.3 Application life cycle and naming conventions . . . . . . . . . . . . . . . 37913.2.4 Change management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38213.2.5 Problem management. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 385

    13.3 Planning for application administration . . . . . . . . . . . . . . . . . . . . . . . . . 38913.3.1 Application environment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38913.3.2 System applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39013.3.3 Application deployment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 390

    13.4 Plan for backup and recovery . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39313.4.1 Risk analysis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39313.4.2 Recovery strategy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39313.4.3 Backup plan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39313.4.4 Recovery plan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39413.4.5 Update and test process . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 395

    13.5 Plan for availability . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39513.5.1 Availability concepts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39513.5.2 New high availability features . . . . . . . . . . . . . . . . . . . . . . . . . . . . 396

    13.6 Plan for performance. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39813.6.1 Monitoring . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 398

    13.7 Plan for security. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40013.7.1 Layered security architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . 402

    13.8 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 403

    Chapter 14. Planning for performance, scalability, and high availability40514.1 Key concepts and terminology . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 406

    14.1.1 Scalability . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40614.1.2 Throughput . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40614.1.3 Response Time . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 407

    xii WebSphere Application Server V6 Planning and Design

  • 14.1.4 Workload Management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40714.1.5 Availability . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40714.1.6 Maintainability . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40814.1.7 Session state. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40814.1.8 WebSphere Application Server security . . . . . . . . . . . . . . . . . . . . 408

    14.2 Scalability . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40914.2.1 Scaling considerations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41014.2.2 Application environment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41214.2.3 Workload categorization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41314.2.4 Default messaging provider scalability . . . . . . . . . . . . . . . . . . . . . 41414.2.5 Scalability checklist . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 414

    14.3 Workload management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41514.3.1 Scheduling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41614.3.2 Quality of Service . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 416

    14.4 High availability . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41714.4.1 Hardware availability . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41714.4.2 Process availability . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41814.4.3 Data availability . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41914.4.4 Clustering and failover . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 421

    14.5 Caching . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42214.5.1 Dynamic Caching . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42214.5.2 Edge Caching . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42314.5.3 Data caching . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 424

    14.6 WebSphere Application Server performance tools . . . . . . . . . . . . . . . . 42514.6.1 Performance Monitoring Infrastructure . . . . . . . . . . . . . . . . . . . . . 42614.6.2 Performance tool changes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42614.6.3 Monitoring impact on performance . . . . . . . . . . . . . . . . . . . . . . . . 42714.6.4 Tivoli Performance Viewer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42814.6.5 WebSphere Performance Advisors. . . . . . . . . . . . . . . . . . . . . . . . 42814.6.6 WebSphere request metrics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43014.6.7 Implementing request metrics . . . . . . . . . . . . . . . . . . . . . . . . . . . . 431

    Chapter 15. Planning for messaging . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43315.1 Messaging overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 434

    15.1.1 Messaging considerations. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43515.2 Messaging architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 437

    15.2.1 Basic messaging concepts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43715.2.2 Service integration bus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43715.2.3 Messaging store . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43815.2.4 Linking destinations to bus members . . . . . . . . . . . . . . . . . . . . . . 43915.2.5 Connecting to a destination on a foreign bus . . . . . . . . . . . . . . . . 44015.2.6 Service integration bus link . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44015.2.7 WebSphere MQ link . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 441

    Contents xiii

  • 15.2.8 Indirect link . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44215.2.9 WebSphere MQ client link. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44215.2.10 Interoperability and WebSphere MQ integration . . . . . . . . . . . . . 443

    15.3 Service integration bus resources . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44415.3.1 Bus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44415.3.2 Bus members . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44415.3.3 Messaging engine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44415.3.4 Data store . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44515.3.5 Destinations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44615.3.6 Mediations. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 448

    15.4 JMS resources . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44815.4.1 Components used in a JMS configuration . . . . . . . . . . . . . . . . . . 44915.4.2 Generic JMS usage. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44915.4.3 JMS connection factories . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45115.4.4 Service integration bus and JMS destinations . . . . . . . . . . . . . . . 45115.4.5 Service integration bus and MDBs . . . . . . . . . . . . . . . . . . . . . . . . 45115.4.6 MDBs connecting to the bus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45215.4.7 MDBs and clusters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45315.4.8 MDB and activation specifications . . . . . . . . . . . . . . . . . . . . . . . . 45415.4.9 Component relationships when using MDBs . . . . . . . . . . . . . . . . 455

    15.5 Component relationships using generic JMS . . . . . . . . . . . . . . . . . . . . 45515.6 Security . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 457

    Chapter 16. Planning for Web services . . . . . . . . . . . . . . . . . . . . . . . . . . . 45916.1 Overview of Web services. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46016.2 Extensible Markup Language . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46016.3 SOAP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46416.4 Web Services Description Language . . . . . . . . . . . . . . . . . . . . . . . . . . 46716.5 UDDI and ebXML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46816.6 J2EE 1.4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46916.7 Web services in Java: JAX-RPC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 470

    16.7.1 What is JAX-RPC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47016.7.2 JAX-RPC goals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47016.7.3 Handlers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 471

    16.8 Enterprise Web services: JSR-101 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47216.8.1 Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47216.8.2 Client invocation styles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47316.8.3 Deployment packaging . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47316.8.4 SAAJ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47416.8.5 JAX-R . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47416.8.6 Security . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47516.8.7 Web services and performance . . . . . . . . . . . . . . . . . . . . . . . . . . 475

    16.9 UDDI V3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 476

    xiv WebSphere Application Server V6 Planning and Design

  • 16.9.1 Issues UDDI solves. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47616.9.2 Multi-registry environment. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47716.9.3 UDDI keys . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47716.9.4 XML digital signatures. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47816.9.5 UDDI policies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47816.9.6 Discovery features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47816.9.7 Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 479

    16.10 Java API for XML registries (JAX-R) . . . . . . . . . . . . . . . . . . . . . . . . . . 47916.10.1 What is JAX-R. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47916.10.2 JAXR compared to UDDI Java APIs . . . . . . . . . . . . . . . . . . . . . . 48016.10.3 Using JAX-R API. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 480

    16.11 WebSphere integration with Web services . . . . . . . . . . . . . . . . . . . . . 48116.11.1 Web Services Gateway. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48116.11.2 Web services and WebSphere Business Integration . . . . . . . . . 482

    16.12 Benefits to implementing Web services . . . . . . . . . . . . . . . . . . . . . . . 48416.12.1 Web Services as part of SOA . . . . . . . . . . . . . . . . . . . . . . . . . . . 48416.12.2 Security . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48516.12.3 Transaction control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48516.12.4 Container services . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 485

    Chapter 17. Planning for security . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48717.1 Why do you need security . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48817.2 Security fundamentals. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 490

    17.2.1 Authentication in WebSphere . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49017.2.2 Authentication process . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49217.2.3 Authorization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 494

    17.3 J2EE security . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49517.3.1 J2EE application . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49517.3.2 Security roles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 496

    17.4 Programmatic security. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49717.4.1 Servlet security methods. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49817.4.2 EJB security methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49917.4.3 Custom user registry . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49917.4.4 Java Authentication and Authorization Service. . . . . . . . . . . . . . . 50017.4.5 Trust Association Interceptors. . . . . . . . . . . . . . . . . . . . . . . . . . . . 50117.4.6 Java Authorization Contract for Containers . . . . . . . . . . . . . . . . . 502

    Chapter 18. Planning for migration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50718.1 Migration overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 508

    18.1.1 General migration considerations . . . . . . . . . . . . . . . . . . . . . . . . . 50818.1.2 Deprecated features in WebSphere Application Server V6 . . . . . 51018.1.3 New installation features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51118.1.4 Migration tools. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 511

    Contents xv

  • 18.1.5 Granular installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51218.1.6 Client installation wizard . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 513

    18.2 Migrating product configurations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51318.2.1 Incremental upgrade . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51418.2.2 Configuration mapping . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51418.2.3 Deployment manager migration . . . . . . . . . . . . . . . . . . . . . . . . . . 51718.2.4 Migrating WebSphere PME. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 517

    18.3 Migrating WebSphere applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51818.3.1 Incremental upgrade . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51818.3.2 Upgrade Web server plug-in . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51818.3.3 Replication domains . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 519

    18.4 Migrating administrative scripts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52018.4.1 Migrating from V4.X . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52018.4.2 Migrating from V5.X . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 521

    18.5 Migrating Web server configurations. . . . . . . . . . . . . . . . . . . . . . . . . . . 52118.5.1 Plug-ins configuration wizard . . . . . . . . . . . . . . . . . . . . . . . . . . . . 522

    18.6 Migration concerns . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52318.6.1 Coexistence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52418.6.2 Interoperability. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52418.6.3 Configuring ports. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52618.6.4 Post-migration configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 526

    18.7 Migration troubleshooting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52718.8 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 528

    Part 3. Appendix . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 529

    Appendix A. Sample topology walk-through . . . . . . . . . . . . . . . . . . . . . . 531Topology review . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 532

    Advantages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 533Disadvantages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 533

    Components installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 534Application server nodes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 535Deployment Manager node. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 536IBM HTTP Server V6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 536WebSphere Edge Server Load Balancer . . . . . . . . . . . . . . . . . . . . . . . . . 537

    Building the topology . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 537WebSphere profiles. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 537Building the application server nodes . . . . . . . . . . . . . . . . . . . . . . . . . . . . 538Building a remote HTTP server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 538Building the Deployment Manager . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 539Multiple profiles on the same physical machine . . . . . . . . . . . . . . . . . . . . 540Clustering federated application server nodes . . . . . . . . . . . . . . . . . . . . . 541Integrating HTTP servers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 541

    xvi WebSphere Application Server V6 Planning and Design

  • Adding the redundant resources . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 542Load balancer configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 543

    Testing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 544Deployment testing. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 545

    The deployment objective . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 545The choice of deployment method . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 546Steps for deployment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 547

    Abbreviations and acronyms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 549

    Related publications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 553IBM Redbooks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 553Online resources . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 553How to get IBM Redbooks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 555Help from IBM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 555

    Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 557

    Contents xvii

  • xviii WebSphere Application Server V6 Planning and Design

  • Notices

    This information was developed for products and services offered in the U.S.A.

    IBM may not offer the products, services, or features discussed in this document in other countries. Consult your local IBM representative for information on the products and services currently available in your area. Any reference to an IBM product, program, or service is not intended to state or imply that only that IBM product, program, or service may be used. Any functionally equivalent product, program, or service that does not infringe any IBM intellectual property right may be used instead. However, it is the user's responsibility to evaluate and verify the operation of any non-IBM product, program, or service.

    IBM may have patents or pending patent applications covering subject matter described in this document. The furnishing of this document does not give you any license to these patents. You can send license inquiries, in writing, to: IBM Director of Licensing, IBM Corporation, North Castle Drive Armonk, NY 10504-1785 U.S.A.

    The following paragraph does not apply to the United Kingdom or any other country where such provisions are inconsistent with local law: INTERNATIONAL BUSINESS MACHINES CORPORATION PROVIDES THIS PUBLICATION "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Some states do not allow disclaimer of express or implied warranties in certain transactions, therefore, this statement may not apply to you.

    This information could include technical inaccuracies or typographical errors. Changes are periodically made to the information herein; these changes will be incorporated in new editions of the publication. IBM may make improvements and/or changes in the product(s) and/or the program(s) described in this publication at any time without notice.

    Any references in this information to non-IBM Web sites are provided for convenience only and do not in any manner serve as an endorsement of those Web sites. The materials at those Web sites are not part of the materials for this IBM product and use of those Web sites is at your own risk.

    IBM may use or distribute any of the information you supply in any way it believes appropriate without incurring any obligation to you.

    Information concerning non-IBM products was obtained from the suppliers of those products, their published announcements or other publicly available sources. IBM has not tested those products and cannot confirm the accuracy of performance, compatibility or any other claims related to non-IBM products. Questions on the capabilities of non-IBM products should be addressed to the suppliers of those products.

    This information contains examples of data and reports used in daily business operations. To illustrate them as completely as possible, the examples include the names of individuals, companies, brands, and products. All of these names are fictitious and any similarity to the names and addresses used by an actual business enterprise is entirely coincidental.

    COPYRIGHT LICENSE: This information contains sample application programs in source language, which illustrates programming techniques on various operating platforms. You may copy, modify, and distribute these sample programs in any form without payment to IBM, for the purposes of developing, using, marketing or distributing application programs conforming to the application programming interface for the operating platform for which the sample programs are written. These examples have not been thoroughly tested under all conditions. IBM, therefore, cannot guarantee or imply reliability, serviceability, or function of these programs. You may copy, modify, and distribute these sample programs in any form without payment to IBM for the purposes of developing, using, marketing, or distributing application programs conforming to IBM's application programming interfaces.

    © Copyright IBM Corp. 2005. All rights reserved. xix

  • TrademarksThe following terms are trademarks of the International Business Machines Corporation in the United States, other countries, or both:

    Eserver®Eserver®Redbooks (logo) ™alphaWorks®e-business on demand™eServer™ibm.com®iSeries™i5/OS™pSeries®z/OS®zSeries®AIX®Balance®ClearCase MultiSite®ClearCase®ClearQuest®

    Cloudscape™CICS®DataJoiner®Domino®DB2 Connect™DB2®Informix®IBM®IMS™Lotus®OS/390®OS/400®Power PC®PureCoverage®Purify®Quantify®Rational Rose®

    Rational Suite®Rational Unified Process®Rational®Redbooks™Redbooks (logo)™RequisitePro®RACF®RS/6000®RUP®S/390®SecureWay®SoDA®Tivoli®WebSphere®XDE™

    The following terms are trademarks of other companies:

    Java and all Java-based trademarks and logos are trademarks or registered trademarks of Sun Microsystems, Inc. in the United States, other countries, or both.

    Microsoft, Windows, Windows NT, and the Windows logo are trademarks of Microsoft Corporation in the United States, other countries, or both.

    Intel and Intel Inside (logos are trademarks of Intel Corporation in the United States, other countries, or both.

    UNIX is a registered trademark of The Open Group in the United States and other countries.

    Linux is a trademark of Linus Torvalds in the United States, other countries, or both.

    Other company, product, and service names may be trademarks or service marks of others.

    xx WebSphere Application Server V6 Planning and Design

  • Preface

    This IBM® Redbook discusses the planning and design of industrial strength WebSphere Application Server V6 environments. The content of this redbook is oriented to IT architects and consultants who require assistance when planning and designing from small to large and complex implementations.

    This redbook addresses the new packaging and features incorporated in WebSphere Application Server V6, including technology options, product architecture, and integration with other products. It also covers the most common implementation topologies and addresses in detail the planning for specific tasks and components that conform to the WebSphere Application Server environment.

    The team that wrote this redbookThis redbook was produced by a team of specialists from around the world working at the International Technical Support Organization (ITSO), Raleigh Center.

    Figure 1 Team who wrote this book. First row from left to right, Venkata Gadepalli, Noelle Jakusz, and Michael Asbridge. Second row from left to right, Hernan Cunico, William Patrey, Derek Botti, and Leandro Petit.

    © Copyright IBM Corp. 2005. All rights reserved. xxi

  • Hernan Cunico is a Consulting IT Specialist Certified and WebSphere® software specialist at the ITSO, Raleigh Center. He writes extensively and teaches IBM classes on WebSphere Commerce and WebSphere Application Server. Hernan has 9 years of experience in the Information Technology, and e-business consulting areas. His areas of expertise also include networking, Internet security, e-business and e-commerce solutions architecture.

    Leandro Petit is an Advisory System Software Specialist Professional in IBM Argentina. He has 12 years of experience in iSeries™ customer support and 4 years of experience in WebSphere Application Server and WebSphere Portal Server support areas. He holds a degree in Information Technology from the Universidad Argentina de la Empresa.

    Michael Asbridge is an Accredited Advisory IT Specialist for IBM UK. He has 6 years of experience in the Application Development - Application Integration discipline and specialization. His areas of expertise include J2EE Application Development and WebSphere Application Server administration. He is a Sun Certified Java™ 2 Programmer. He holds a Master of Science in Computer Science from the University of Birmingham, UK.

    Derek Botti is an Applications/Middleware Team lead for the High Performance On Demand Services team in IBM Global Services US. He has over 10 years of experience in the IT industry, with six years of WebSphere Application Server administration experience. He holds a degree in Computer Science from the University of Arkansas, Little Rock. His areas of expertise include High Volume, High Availability Web sites, Internet commerce, and e-business solutions.

    Venkata Gadepalli is a member of the WebSphere Enablement Team based in Raleigh. He has more than 7 years of experience in the IT field and has been involved in customer engagements involving WebSphere Portal Server and WebSphere Application Server for the last three years. He has authored numerous papers and has spoken at many conferences on topics involving WebSphere Portal Server and how it integrates with other backends.

    William Patrey is an Advisory IT Specialist in the US. He has 9 years of experience in the Information Technology field. He holds a Master's degree in History from Virginia Tech. His areas of expertise include application development, performance testing, and networking.

    Noelle Jakusz is an IT Architect at Probitas Technologies, LLC. in Morristown, TN. She currently teaches the WebSphere Application Server V5.x Administration and Application Development curriculum through Right Source Learning Services (an IBM Training Partner). She also teaches and consults on engagements including SOA with Web services and Process Choreographer. She has 7 years of experience in design and development of WebSphere-based and Enterprise applications, including process modeling, implementation and choreography.

    xxii WebSphere Application Server V6 Planning and Design

  • Thanks to the following people for their contributions to this project:

    Peter KovariITSO, Raleigh Center

    Nicolai NielsenIBM Denmark

    Klemens HaegeleIBM Germany

    Partha Sarathy MomidiIBM India

    Sandhya KapoorIBM US

    Become a published authorJoin us for a two- to six-week residency program! Help write an IBM Redbook dealing with specific products or solutions, while getting hands-on experience with leading-edge technologies. You'll team with IBM technical professionals, Business Partners and clients.

    Your efforts will help increase product acceptance and customer satisfaction. As a bonus, you'll develop a network of contacts in IBM development labs, and increase your productivity and marketability.

    Find out more about the residency program, browse the residency index, and apply online at:

    ibm.com/redbooks/residencies.html

    Preface xxiii

    http://www.redbooks.ibm.com/residencies.htmlhttp://www.redbooks.ibm.com/residencies.html

  • Comments welcomeYour comments are important to us!

    We want our Redbooks™ to be as helpful as possible. Send us your comments about this or other Redbooks in one of the following ways:

    � Use the online Contact us review redbook form found at:

    ibm.com/redbooks

    � Send your comments in an email to:

    [email protected]

    � Mail your comments to:

    IBM Corporation, International Technical Support OrganizationDept. HZ8 Building 662P.O. Box 12195Research Triangle Park, NC 27709-2195

    xxiv WebSphere Application Server V6 Planning and Design

    http://www.redbooks.ibm.com/http://www.redbooks.ibm.com/http://www.redbooks.ibm.com/contacts.html

  • Part 1 Getting started

    This part provides a product overview of the WebSphere Application Server and the development tools. It discusses how these are positioned within the WebSphere product family as well as its architecture and integration with other products. Chapters in this section cover the technology options that are available and how WebSphere Application Server V6 has incorporated these technologies. In addition, it provides details about the new features and functionalities in this relase as well as those that has been deprecated.

    Part 1

    © Copyright IBM Corp. 2005. All rights reserved. 1

  • 2 WebSphere Application Server V6 Planning and Design

  • Chapter 1. Introduction to WebSphere Application Server V6

    IBM WebSphere is the leading software platform for e-business on demand™. Providing comprehensive e-business leadership, WebSphere is evolving to meet the demands of companies faced with challenging business requirements, such as the need for increasing operational efficiencies, strengthening customer loyalty, and integrating disparate systems. WebSphere provides answers in today’s challenging business environments.

    With IBM WebSphere you can build business-critical applications for the Web. WebSphere includes a wide range of products that help you develop and serve Web applications. These products are designed to make it easier for customers to build, deploy, and manage dynamic Web sites more productively.

    This chapter looks at the new WebSphere Application Server V6 for distributed platforms and includes the following sections:

    � Product overview� WebSphere product family� WebSphere for distributed platforms� Packaging� Supported platforms and software

    1

    © Copyright IBM Corp. 2005. All rights reserved. 3

  • 1.1 Product overviewWebSphere Application Server is a high-performance and scalable transaction engine for dynamic e-business applications. The Open Services Infrastructure allows companies to deploy a core operating environment that works as a reliable foundation that is capable of handling high volume secure transactions and Web services.

    WebSphere continues the evolution to a single Web services-enabled, Java 2 Enterprise Edition (J2EE) application server and development environment that addresses the essential elements that are needed for an on demand operating environment.

    The potential value of J2EE is tremendous. Some of the benefits of J2EE are:

    � It includes a simplified architecture that is based on standard components, services, and clients which takes advantage of the write-once, run-anywhere Java technology.

    � It contains services that provide integration with existing systems, including Java DataBase Connectivity (JDBC), Java Message Service (JMS), J2EE Connector Architecture (JCA), Java Interface Definition Language (Java IDL), the JavaMail API, and Java Transaction API (JTA and JTS) for reliable business transactions.

    � It provides application development that is focused on unique business requirements and rules, rather than common application aspects, such as security and transaction support, improving productivity and shortening development cycles.

    � It provides scalability to meet demand by distributing containers across multiple system and by using database connection pooling, for example.

    � It gives you a better choice of application development tools and components from vendors providing standard solutions.

    � It provides a flexible security model that provides single signon support, integration with legacy security schemes, and a unified approach to securing application components.

    4 WebSphere Application Server V6 Planning and Design

  • 1.2 WebSphere product familyThe WebSphere platform forms the foundation of a comprehensive business solutions framework. Its extensive offerings are designed to solve the problems of companies of all different sizes. For example, the technologies and tools at the heart of the WebSphere platform you can use to build and deploy the core of an international financial trading application. Yet, it also fits very nicely as the Web site solution for a neighborhood restaurant that simply wants to publish an online menu, hours of operation, and perhaps provide a Web-based table reservation or food delivery system.

    WebSphere’s complete and versatile nature can sometimes be the source of confusion for people who are trying to make important decisions about platforms and developer toolkits for their business or departmental projects. So, this book can help you get started with understanding the technologies, tools, and offerings of the WebSphere platform.

    Figure 1-1 on page 6 shows a high-level overview of the WebSphere platform.

    Chapter 1. Introduction to WebSphere Application Server V6 5

  • Figure 1-1 WebSphere product family

    Key Products Supporting Integration CapabilitiesModel business functions and processes

    Transform applications, processes and data

    Integrate islands of applications, processes and information

    Interact with resources anytime, anywhere with any device

    Manage performance against business

    Accelerate the implementation of intelligent processes

    Service Oriented Infrastructureleveraging a common runtime environment

    WebSphere Business Integration ServerDB2 Information Integrator

    WebSphere Business Integration Modeler

    WebSphere StudioWebSphere Enterprise ModernizationWebSphere Business Integration Tools

    WebSphere PortalWebSphere Voice

    WebSphere Business Integration MonitorTivoli Business Services ManagementDB2 UDB and Content Manager

    Pre-Built PortletsProcess Templates

    AdaptersWebSphere Commerce

    WebSphere Application ServerWebSphere MQWebSphere Studio

    WebSphere EveryplaceLotus Workplace

    Model

    Manage Transform

    Interact Integrate

    Accelerate

    IBMIBMBusiness

    Integration

    ProvenExperience

    SimpleIntegrated

    Development

    StandardsLeadership

    Secure &Scaleable

    IBMIBMBusiness

    Integration

    Service Oriented Architec

    ture

    6 WebSphere Application Server V6 Planning and Design

  • 1.3 WebSphere for distributed platformsWebSphere Application Server is a suite of servers that implement the J2EE specification. This simply means that you can install and deploy any Web applications that are written to the J2EE specification on any of the servers in the WebSphere Application Server family.

    The foundation of the WebSphere brand is the application server. The application server provides the runtime environment and management tools for J2EE and Web Services-based applications. Clients access these applications through standard interfaces and APIs. The applications, in turn, have access to a wide variety of external sources such as legacy systems, databases, and Web services, that can be used to process the client requests.

    Figure 1-2 illustrates a product overview of WebSphere Application Server.

    Figure 1-2 WebSphere Application Server product overview

    Web Server

    WebSphere Application

    Server

    Msg Queue

    Legacy Systems

    CICSIMSDB2SAPetc.

    J2EE Applications

    Web ServicesProvider

    Enterprise Application Developer

    Rational Application Developer

    Secure Access

    Tivoli Access

    Manager

    Web Services Gateway

    Clients

    Web Browser

    Java

    Messaging

    Web ServicesWeb

    Services Gateway

    Application Server

    Application Server

    Application Server

    Application Server

    Enterprise Application Developer

    Rational Web

    Developer

    Msg Queue

    Chapter 1. Introduction to WebSphere Application Server V6 7

  • WebSphere Application Server is available in multiple packages to meet specific business needs. It also serves as the base for other WebSphere products, such as WebSphere Commerce, by providing the application server that is required to run these specialized applications.

    WebSphere Application Server is available on a wide range of platforms, including UNIX®-based platforms, Microsoft® operating systems, IBM z/OS®, and iSeries. Although branded for iSeries, the WebSphere Application Server products for iSeries are functionally equivalent to those for the UNIX and Microsoft platforms.

    1.3.1 Highlights and benefitsWebSphere Application Server provides the environment to run your Web-enabled e-business applications. An application server functions as Web middleware or a middle tier in a three-tier e-business environment. The first tier is the HTTP server that handles requests from the browser client. The third tier is the business database (for example, DB2® UDB for iSeries) and the business logic (for example, traditional business applications such as order processing). The middle tier is WebSphere Application Server, which provides a framework for a consistent and architected link between the HTTP requests and the business data and logic.

    WebSphere Application Server is intended for organizations that want to take advantage of the productivity, performance advantages, and portability that Java provides for dynamic Web sites. It includes:

    � J2EE 1.4 support.

    � High-performance connectors to many common back-end systems to reduce the coding effort required to link dynamic Web pages to real line-of-business data.

    � Application services for session and state management.

    � Web services that enable businesses to connect applications to other business applications, to deliver business functions to a broader set of customers and partners, to interact with marketplaces more efficiently, and to create new business models dynamically.

    � The WebSphere Platform Messaging infrastructure to complement and extend WebSphere MQ and application server. It is suitable for those that are currently using the WebSphere Application Server V5 embedded messaging and for those that need to provide messaging capability between WebSphere Application Server and an existing WebSphere MQ backbone.

    8 WebSphere Application Server V6 Planning and Design

  • Platform messaging features include:

    – Multiple messaging patterns (APIs) and protocols for message-oriented and service-oriented applications.

    – The default messaging provider is a J2EE 1.4 compliant JMS provider.

    – The relevant Web services standards that support JAX-RPC APIs.

    – Reliable message transport capability.

    – Tightly and loosely coupled communications options.

    – Intermediary logic (mediations) to adapt message flow intelligently in the network.

    – Clustering support to provide scalability and high availability.

    – Quality of service options.

    – Support for the WebSphere Business Integration programming model which converges functions from workflow, message brokering, collaborations, adaptors, and the application server.

    – Full integration within WebSphere Application Server, including security, installation, administrative console, performance monitoring, trace, and problem determination.

    – Connectivity with a WebSphere MQ network.

    1.4 PackagingBecause different levels of application server capabilities are required at different times as varying e-business application scenarios are pursued, WebSphere Application Server is available in multiple packaging options. Although these packaging options share a common foundation, each option provides unique benefits to meet the needs of applications and the infrastructure that supports them. So, at least one WebSphere Application Server product package will fulfill the requirements of any particular project and the prerequisites of the infrastructure that supports it. As your business grows, the WebSphere Application Server family provides a migration path to higher configurations.

    Operating system terminology:

    � Distributed: Windows®, UNIX – AIX®, Linux/Intel®, Linux/PPC, zLinux, Solaris, HP-UX

    � iSeries: i5/OS and OS/400®

    � z/OS: OS/390®

    Chapter 1. Introduction to WebSphere Application Server V6 9

  • 1.4.1 Packaging for distributed platformsWebSphere Application Server is available in several different packages that are designed to meet a wide range of customer requirements. Each package is designed to provide a tailored environment for a specific set of customers.

    WebSphere Application Server - ExpressWebSphere Application Server - Express is geared to those who need to get started quickly with e-business. It is specifically targeted at medium-sized businesses or departments of a large corporation. It provides easy use and application development. It contains full J2EE 1.4 support but is limited to a single server environment.

    The WebSphere Application Server - Express offering is unique in that it is bundled with an application development tool. Although there are WebSphere Studio and Rational® Developer products that are designed to support each WebSphere Application Server package, these products are normally ordered independently of the server. WebSphere Application Server - Express includes the Rational Web Developer application development tool. It provides a development environment geared toward Web developers and includes support for most J2EE 1.4 features with the exception of EJB and JCA development environments. However, keep in mind that WebSphere Application Server - Express does contain full support for EJB and JCA, so you can deploy applications with them.

    WebSphere Application Server V6The WebSphere Application Server V6 package is the next level of server infrastructure in the WebSphere Application Server family. Although the WebSphere Application Server V6 package is functionally equivalent to the Express package, it differs slightly in packaging and licensing. The development tool included is a trial version of Rational Application Developer, a full J2EE 1.4 compliant development tool.

    WebSphere Application Server Network Deployment V6WebSphere Application Server Network Deployment is a higher level of server infrastructure in the WebSphere Application Server family than WebSphere Application Server. It extends the WebSphere Application Server package to include clustering capabilities, Edge Components, and high availability for distributed configurations. These features become more important at larger enterprises, where applications tend to service a larger customer base, and more elaborate performance and availability requirements are in place.

    Application servers in a cluster can reside on the same or multiple machines. A Web server plug-in installed in the Web server can distribute work among

    10 WebSphere Application Server V6 Planning and Design

  • clustered application servers. In turn, Web containers running servlets and JSPs can distribute requests for EJBs among EJB containers in a cluster.

    The addition of Edge Components provides high performance and high availability features, such as:

    � Caching Proxy, which intercepts data requests from a client, retrieves the requested information from the application servers, and delivers that content back to the client. It stores cachable content in a local cache before delivering it to the client. Subsequent requests for the sam