HAPPY BOOKSGIVING
Use code BOOKSGIVING during checkout to save 40%-55% on books and eBooks. Shop now.
Register your product to gain access to bonus material or receive a coupon.
The Practitioner’s Guide to Implementing SOA with Java EE Technologies
This book brings together all the practical insight you need to successfully architect enterprise solutions and implement them using SOA and Java EE technologies. Writing for senior IT developers, strategists, and enterprise architects, the authors cover everything from concepts to implementation, requirements to tools.
The authors first review the Java EE platform’s essential elements in the context of SOA and web services deployment, and demonstrate how Java EE has evolved into the world’s best open source solution for enterprise SOA. After discussing standards such as SOAP, WSDL, and UDDI, they walk through implementing each key aspect of SOA with Java EE. Step by step, you’ll learn how to integrate service-oriented web and business components of Java EE technologies with the help of process-oriented standards such as BPEL/CDL into a coherent, tiered enterprise architecture that can deliver a full spectrum of business services.
Implementing SOA Using Java™ EE concludes with a section-length case study that walks through analyzing a company’s requirements, creating an effective SOA architecture, and building a concise proof-of-concept prototype with NetBeans IDE. Coverage includes
• Using Java EE technologies to simplify SOA implementation
• Mastering messaging, service descriptions, registries, orchestration, choreography, and other essential SOA concepts
• Building an advanced web services infrastructure for implementing SOA
• Using Java Persistence API to provide for persistence
• Getting started with Java Business Integration (JBI), the new open specification for delivering SOA
• Implementing SOA at the web and business tiers
• Developing, configuring, and deploying SOA systems with NetBeans IDE
• Constructing SOA systems with NetBeans SOA Pack
Implementing SOA Using Java EE: Evolution of Service Oriented Architecture
Download the sample pages (includes Chapter 3 and Index)
Foreword by Robert Brewin . . . xvii
Foreword by Raj Bala . . . xviii
Acknowledgments. . . xxi
About the Authors . . . xxiii
PART I OVERVIEW . . . 1
CHAPTER 1 INTRODUCTION . . . 3
Products and Services 4
Software-Driven Services 4
Web Services 6
SOA 8
Web Services and SOA Opportunities 12
Summary 13
Endnotes 13
CHAPTER 2 EVOLUTION OF IT ARCHITECTURES . . . 15
The Server-Side Architecture Progression 16
Progression of Mainframe Architecture 17
Progression of Client/Server Architecture 19
Progression of Distributed Architecture 21
Internet and World Wide Web 26
Client-Side Architecture Progression 28
Terminals as Clients 29
Thick Clients 30
Thin Clients 30
Browser Clients 31
Mobile Clients 31
Service Oriented Architecture and Web Services 32
Web Services 32
Arrival of SOAP, WSDL, and UDDI Infrastructure 34
Summary 35
Endnotes 35
CHAPTER 3 EVOLUTION OF SERVICE ORIENTED ARCHITECTURE . . . 37
Services Oriented Architecture–The Description 38
Early Architectures 38
IMS 39
CICS 40
CORBA 41
DCOM 41
Paradigm Shifts 42
Java and Java 2 Enterprise Edition 42
Extensible Markup Language 43
Web Services–XML-RPC and SOAP 44
Arrival of Web Services and SOA 44
First Generation Web Services 45
The Second Generation Web Services 45
SOA Using Web Services 46
Benefits and Challenges with SOA 47
SOA Implementation Technologies 47
Microsoft's .NET Technologies 48
Sun Microsystems’s Java Enterprise Edition Technologies 48
Summary 50
Endnotes 50
PART II SERVICE ORIENTED ARCHITECTURE ESSENTIALS . . . 53
CHAPTER 4 MESSAGE ORIENTED SERVICES AND SOAP . . . 55
SOAP Conventions 56
Message Envelope 56
Encoding Rules 56
RPC Convention 56
Binding 57
Anatomy of SOAP 57
Basic SOAP Model 57
Detailed SOAP Model 60
SOAP Encoding Details 65
Simple Type Encoding 65
Complex Type Encoding 66
SOAP Binding to the Transport Protocol 68
Interaction Using the SOAP Protocol 68
Message Exchange Model 69
SOAP Response and the Error-Handling Mechanism 71
The SOAP <Fault> 72
The SOAP <faultcode> 72
The SOAP <faultstring> 73
The SOAP <faultactor> 73
The SOAP <detail> 73
SOAP Version Differences and Dependencies 73
SOAP Versioning 73
New SOAP Version 74
Summary 75
Endnotes 76
CHAPTER 5 WEB SERVICES AND WEB SERVICES DESCRIPTION LANGUAGE . . . 77
WSDL–An XML Web Services Description Vocabulary 78
The Web Services Triangle 78
Service Invocation Fundamentals 80
Synchronous Invocation and Fundamentals of RPC Mechanism 81
Service Invocation and WSDL 85
Creation of the Service 86
Generating the Web Service Description for the Service 87
Registering the Web Service 87
Publication of the Web Service 87
Discovering the Web Service 87
Understanding the Web Services Semantics 87
Invocation of Web Service 88
Describing Web Services–The XML Way 91
WSDL Elements and Their Appearance Sequence 92
Anatomy of WSDL Document 93
WSDL Version Differences and Dependencies 100
Summary 100
Endnotes 101
CHAPTER 6 REGISTRIES AND UDDI . . . 103
Defining UDDI 104
Taxonomy-Based Business Information 104
UDDI Specifications and Services 105
Public Registries Versus Private Registries 105
UDDI Nomenclature 106
Node API Sets 106
UDDI Node 106
UDDI Registries 106
Data Structure 107
Information Model 107
Core UDDI 107
The <businessEntity> Data Structure 108
The <businessService> Data Structure 109
The <bindingTemplate> Data Structure 110
The <tModel> Data Structure 111
Publication of Business Information 112
Creation and Modification of Business Information 113
Deletion of Business Information 114
Discovering Web Services 115
Information Browsing and Retrieval 116
Information Drill-Down 117
Summary 118
CHAPTER 7 ORCHESTRATION AND CHOREOGRAPHY . . . 119
Importance of Business Process and Work Flow 120
Orchestration 121
WS-Business Process Execution Language 122
Processing BPEL 124
Choreography 127
Orchestration and SOA 129
Choreography and SOA 130
Summary 130
Endnotes 131
CHAPTER 8 ADVANCED WEB SERVICES INFRASTRUCTURE FOR IMPLEMENTING SOA . . . 133
Message Exchange Patterns 135
WS-*–The New Generation 136
WS-Addressing 137
WS-Atomic Transaction 137
WS-Coordination 137
WS-Eventing 137
WS-Metadata Exchange 138
WS-Notification 138
WS-Policy Framework 138
WS-Reliability/WS-Reliable Messaging 138
WS-Security 138
WS-*–A Working Definition 139
Addressing 139
Reliability and Reliable Messaging 140
Security 142
WS-* and SOA 146
WS-Reliable Messaging and SOA 147
WS-Security and SOA 147
WS-I Basic Profile 147
Summary 148
Endnotes 148
PART III JAVA PLATFORM, ENTERPRISE EDITION AND ESB . . . 49
CHAPTER 9 JAVA PLATFORM, ENTERPRISE EDITION OVERVIEW . . . 151
Java EE Technology Categories 153
Web Application Technologies 153
Web Services Technologies 155
Enterprise Application Technologies 158
Common Platform Technologies 160
What's New in Java EE 5 162
Java Annotations 163
POJO Model 165
Developer Productivity 166
Java EE Component Model 167
Application Client 167
Web Components 168
EJB Components 168
Resource Adapter 168
Java EE Quality of Services 169
Distribution 169
Data Integrity 169
Security 169
Performance and Scalability 170
Availability 170
Interoperability 171
Concurrency 171
Summary 171
Endnotes 172
CHAPTER 10 WEB TECHNOLOGIES IN JAVA EE . . . 173
Java Servlet 174
JSP 176
JSP Standard Tag Library 177
JSF 178
MVC Paradigm in JSF 178
User Interface Component Framework 179
Navigation Model 180
Managed Beans 182
Unified Expression Language 183
Data Conversion and Validation 184
JSF Events 185
Backing Bean Approach 186
Summary 187
Endnote 187
CHAPTER 11 ENTERPRISE JAVABEANS AND PERSISTENCE . . . 189
Core EJB 3.0 API 190
Dependency Injection 191
Container Services 191
Interceptors 193
New JPA 193
Entity Class 194
Relationships 195
Inheritance 196
Entity Manager 197
Entity Life-Cycle Operations 197
Java Persistence Query Language 200
Object-Relational Mapping 203
Relationship Mapping 203
Inheritance Mapping 204
Summary 205
CHAPTER 12 JAVA WEB SERVICES OVERVIEW . . . 207
Implementing a Web Service 208
Mapping Between Java and WSDL 208
Web Service Annotations 210
@WebService 210
@WebMethod 211
@Oneway 211
@WebParam 211
@WebResult 211
@HandlerChain 211
@SOAPBinding 212
Accessing Web Services 212
Protocol and Transport 213
Advanced Features in JAX-WS 213
Handler Framework 213
Asynchronous Interactions 214
Messaging API 215
Java Architecture for XML Binding 217
Schema Evolution 220
Summary 222
CHAPTER 13 ENTERPRISE SERVICE BUS AND JAVA BUSINESS INTEGRATION . . . 223
The Service Bus and Enterprises 224
ESB–A Business Perspective 224
Salient Features of ESB 226
Java Business Integration–Java and ESB 227
Summary 230
PART IV IMPLEMENTING SOA USING JAVA EE PLATFORM . . . 231
CHAPTER 14 SERVICE ORIENTED ARCHITECTURE AND THE WEB TIER . . . 233
Delivering Services Through the Web Tier 234
The Overall Picture 235
Web Tier Design Patterns and SOA 236
Presentation Tier Design Patterns 236
Frameworks and Service Delivery 237
Services Delivery Using JSF 238
Deciding on the Right Framework 244
Summary 245
Endnotes 246
CHAPTER 15 SERVICE ORIENTED ARCHITECTURE AND THE BUSINESS TIER . . . 247
Delivering Services Through the Business Tier 248
Business Tier Overview 248
Business Tier Design Patterns and SOA 250
Business Tier Design Patterns 251
Presentation Tier-to-Business Tier Design Patterns 251
Transfer Object Design Pattern 252
Integration Tier Design Patterns 254
The Data Access Object Pattern 255
Intrabusiness Tier Design Patterns 257
Application Service Design Pattern 258
Summary 259
Endnote 260
CHAPTER 16 ADVANCED SERVICE ORIENTED ARCHITECTURE . . . 261
Patterns in SOA 261
Asynchronous Messaging Patterns 263
Conversation Patterns 267
Orchestration Patterns 269
Workflow Patterns 273
Summary 279
Endnotes 280
PART V CASE STUDY . . . 281
CHAPTER 17 DEVELOPING SERVICE ORIENTED APPLICATIONS—A CASE STUDY . . . 283
The Industry Perspective 285
Messaging Distribution in the OTA 285
The Goals of the OTA 286
The Plans and Specifications of the OTA 286
The Alliance Members 287
The Case Study 288
Challenges 289
Solution Implementation Strategies 290
Travel Reservation Service 291
The Workflow or the Process Definition 294
Solution Platform Considerations 296
Summary 298
Endnotes 299
CHAPTER 18 DELIVERING SOA USING NETBEANS SOA PACK: CASE STUDY–SOLUTION . . . 301
Implementation Strategy–An Overview 302
NetBeans IDE 303
Invoking NetBeans 304
Exploring the IDE 304
Project Basics 305
Project Creation 306
Summary 319
Endnotes 319
REFERENCES . . . 321
Web References 321
AJAX 321
BPEL 321
CICS 321
Design Pattern 322
ESB 322
ESB Importance 322
GDS 322
Hibernate 323
Implementing SOA with Java EE 5 323
IMS 323
IMS TM 323
J2EE Best Practices 323
J2EE Patterns 323
J2EE Versus .NET 323
Java EE 5 Developer Productivity 323
Java Specification Request 324
jRuby 325
OTA 325
Paradigm Shift 325
Paradigm Shift in IT 325
Performance Benchmark 325
Portlet 325
Ruby 325
Sabre, GDS 325
SOA 326
SOA General 326
SOAP 326
SOA Patterns 326
Tango 326
Web Services 327
WSDL 327
WSDL and UDDI 327
XML 327
Yahoo! 327
Books 327
Design Patterns 327
ESB 327
J2EE 328
Java 328
Java, XML 328
MDA 328
NetBeans 328
SOA 328
Software Architecture 329
Web Services 329
XML 329
INDEX . . . 331