“An outstanding depth-and-breadth resource for IT architects and Java professionals to understand and apply the marriage of SOA and modern Java.” -- Antonio Bruno, Enterprise Architecture and Strategy, digitalStrom “A great self-contained book on SOA using flexible Java implementations....” -- Roger Stoffers, Hewlett Packard “Provides clarity on abstract concepts and is filled with concrete examples of implementing SOA principles in Java environments.” -- Sanjay Singh, Certified SOA Architect “...provides a holistic, comprehensive view on leveraging SOA principles and architecture for building and deploying performant Java services.” -- Suzanne D’Souza, KBACE Technologies “Thomas Erl’s series of books on services technology have shaped, influenced, and strengthened a whole community of enterprise and solution architects’ thinking and solution development, and the much awaited SOA with Java book is an excellent addition to the series. It is a must-read.” -- Lalatendu Rath, Wipro Technologies The Definitive Guide to Building Service-Oriented Solutions with Lightweight and Mainstream Java Technologies Java has evolved into an exceptional platform for building Web-based enterprise services. In SOA with Java, Thomas Erl and several world-class experts guide you in mastering the principles, best practices, and Java technologies you need to design and deliver high-value services and service-oriented solutions. You’ll learn how to implement SOA with lightweight frameworks, mainstream Java services technologies, and contemporary specifications and standards. To demonstrate real-world examples, the authors present multiple case study scenarios. They further demystify complex concepts with a plain-English writing style. This book will be valuable to all developers, analysts, architects, and other IT professionals who want to design and implement Web-based service-oriented architectures and enterprise solutions with Java technologies. Topic Areas Applying modern service-orientation principles to modern Java technology platformsLeveraging Java infrastructure extensions relevant to service-oriented solutionsExploring key concepts associated with SOA and service-orientation within the context of JavaReviewing relevant Java platforms, technologies, and APIsUnderstanding the standards and conventions that REST and SOAP services are built upon in relation to Java implementationsBuilding Java Web-based services with JAX-WS and JAX-RSApplying the eight key principles of service-orientation design using Java tools and technologiesCreating Java utility services: architectural, design, and implementation issuesConstructing effective entity services: service contracts, messages, data access, and processingConstructing task services, including detailed guidance on service compositionUsing ESBs to support infrastructure requirements in complex services ecosystems
Les mer
Foreword xixCHAPTER 1: Introduction 1 1.1 About This Book 2 Objectives of This Book 2 Who This Book Is For 2 What This Book Does Not Cover 3 1.2 Prerequisite Reading 3 How This Book Is Organized 4 1.3 How Principles and Patterns Are Used in This Book 7 1.4 Symbols and Figures 7 1.5 Additional Information 7 Updates, Errata, and Resources (www.servicetechbooks.com) 8 Referenced Specifications (www.servicetechspecs.com) 8 The Service Technology Magazine (www.servicetechmag.com) 8 Service-Orientation (www.serviceorientation.com) 8 What Is REST? (www.whatisrest.com) 8 What Is Cloud? (www.whatiscloud.com) 8 SOA and Cloud Computing Design Patterns (www.soapatterns.org, www.cloudpatterns.org) 8 SOA Certified (SOACP) Professional (www.soaschool.com) 9 Cloud Certified Professional (CCP) (www.cloudschool.com) 9 Big Data Science Certified Professional (BDSCP) (www.bigdatascienceschool.com) 9 Notification Service 9 CHAPTER 2: Case Study Examples 11 2.1 How Case Study Examples Are Used 12 Style Characteristics 12 Relationship to Abstract Content 12 Code Samples 12 2.2 Case Study Background: NovoBank 13 Technical Infrastructure 13 Automation Solutions 13 Business Obstacles and Goals 14 Future IT Roadmap 15 1. Build Reusable Business Services 15 2. Consolidate Information 16 3. Improve Channel Experience 16 4. Build Services Infrastructure 16 2.3 Case Study Background: SmartCredit Co 16 Technical Infrastructure 17 Automation Solutions 17 Business Goals 17 Future IT Roadmap 18 PART I: FUNDAMENTALSCHAPTER 3: Fundamental SOA Concepts 21 3.1 Basic Terminology and Concepts 22 Service-Oriented Computing 22 Service-Orientation 24 Service-Oriented Architecture (SOA) 27 SOA Manifesto 28 Services 29 Cloud Computing 29 IT Resources 30 Service Models 30 Agnostic Logic and Non-Agnostic Logic 31 Service Inventory 32 Service Portfolio 32 Service Candidate 33 Service Contract 33 Service-Related Granularity 34 Service Profiles 35 SOA Design Patterns 36 3.2 Further Reading 38 CHAPTER 4: Basic Java Distributed Technologies 39 4.1 Java Distributed Computing Basics 40 Java SE Architecture 41 Java EE Architecture 41 The Beginning of Java EE 41 Application Packaging and Deployment 44 Deployment Descriptors 44 Java EE Architectural Tiers 45 4.2 Java Distributed Technologies and APIs 46 Java SE APIs 46 RMI 46 RMI / IIOP 47 JNDI 48 JDBC 49 Java EE APIs 49 Contexts and Dependency Injection 49 JTA 50 Java EE Connector Architecture 51 EJB 51 Session EJBs 52 Persistence Entities 53 Service-Orientation Principles and the EJB Model 55 JMS 56 Message-Driven Beans 58 Security in Java EE 58 4.3 XML Standards and Java APIs 59 XML 59 XML Schema Definition 61 XSLT 63 JAXP 63 JAXB 64 4.4 Building Services with Java Components 64 Components as Services 65 Application Protocols 65 Service Contracts 68 Location 68 Operations 69 Messages 69 Further Considerations 70 Components as Services and Service-Orientation 71 Standardized Service Contract 71 Service Loose Coupling 71 Service Abstraction 72 Service Discoverability 72 4.5 Java Vendor Platforms 74 GlassFish Enterprise Server 74 IBM WebSphere Application Server 75 IBM WebSphere Application Server Community Edition 78 Oracle WebLogic Server 79 CHAPTER 5: Web-Based Service Technologies 81 5.1 SOAP-Based Web Services 82 Extensibility of Web Services Standards (WS-*) 88 WS-Addressing 89 SOAP with Attachments (SwA) 90 WS-ReliableMessaging 91 WS-Transaction 92 WS-Security 93 WS-Policy 94 Web Services Distributed Management 95 Common Web Services Middleware 95 Enterprise Service Bus (ESB) 95 Orchestration 97 Management and Monitoring 99 Registries and Repositories 99 Service Construction and Assembly 100 5.2 REST Services 101 HTTP Response Codes 102 Resources and Addresses 103 Service Request 104 Service Response 104 Service Request 104 Service Response 104 HTTP Methods 106 Resource Representations 108 The ACCEPT Header 109 CHAPTER 6: Building Web-Based Services with Java 111 6.1 JAX-WS 112 SAAJ 115 Handlers 118 Web Services Engines and Toolkits 119 JAXR 120 6.2 Java Implementations of WS-* Standards 122 Advanced Web Services Standards and Frameworks 122 Service Component Architecture 123 Spring-WS 124 6.3 JAX-RS 124 Implementing JAX-RS 125 Implementing REST Services 129 Scalability 130 Statelessness 131 Uniform Contract 131 Cacheability 131 Addressability 132 Security 132 REST Service Support 134 PART II: SERVICESCHAPTER 7: Service-Orientation Principles with Java Web-Based Services 139 7.1 Service Reusability 140 Agnostic Functional Contexts 140 Highly Generic Service Logic 141 Generic and Extensible Service Contracts 144 Concurrent Access to Service Logic 145 7.2 Standardized Service Contract 151 Top-Down vs. Bottom-Up 151 Mapping Between Java and WSDL 152 Wrapped Document/Literal Contracts 153 Implicit and Explicit Headers 154 Explicit Headers 154 Implicit Headers 157 No Headers 159 Data Mapping with REST 159 Conversion Between JSON and POJOs 161 Binary Data in Web Services 165 Binary Data in REST Services 170 Use of Industry Standards 175 7.3 Service Loose Coupling 176 Separation of Contract and Implementation 177 Independent Functional Contexts 179 Service Consumer Coupling 180 7.4 Service Abstraction 184 Abstracting Technology Details 185 Hiding Service Details 185 Document Constraints 188 7.5 Service Composability 189 Runtime Environment Efficiency 190 Service Contract Flexibility 192 Standards-Based Runtime 193 7.6 Service Autonomy 194 Well-Defined Functional Boundary 194 Runtime Environment Control 195 High Concurrency 196 7.7 Service Statelessness 197 Orchestration Infrastructure 198 Session State 198 Storing State 199 7.8 Service Discoverability 204 Design-Time Discoverability 204 Runtime Discoverability 205 Service Registries 208 CHAPTER 8: Utility Services with Java 211 8.1 Inside the Java Utility Service 212 Architectural Considerations 212 Utility Service Taxonomy 220 8.2 Utility Service Design and Implementation 221 Utility Service Design 221 Utility Services and Java Editions 226 Utility Services in Java SE 226 Utility Services in Java EE 227 Utility Services and Open-Source Frameworks 229 Spring Framework 229 Transaction Management 229 Data Access Objects 230 Object-Relational Mapping 230 JMS 230 JMX 230 JCA 231 Spring MVC 231 Hibernate 231 Commons Logging and Log4J 231 Utility Services as Web-Based Services 231 Sending XML Data as a String 232 Utilizing 233 Provider-Style Web Service Logic in JAX-WS 234 Building REST Utility Services 236 Testing Considerations 238 Packaging Considerations 239 8.3 Utility Service Types 240 Omni Utility Services 240 Design Considerations 241 Service Implementation 241 Service Consumption 241 Resource Utility Services 248 Persistence/Data Access Resources 248 Messaging Resources 248 Transaction Resources 249 Design Considerations 249 Service Implementation 251 Service Consumption 251 Micro-Utility Services 253 Design Considerations 253 Service Implementation 253 Service Consumption 254 Wrapper Utility Services 257 Design Considerations 258 Service Implementation 259 Service Consumption 259 CHAPTER 9: Entity Services with Java 261 9.1 Inside the Java Entity Service 262 Architectural Considerations 263 Domain Entities vs. Message Entities 265 Data Aggregation 266 Data Access Modes 267 Change Notifications 268 9.2 Java Entity Service Design and Implementation 270 Entity Service Design 270 Designing Domain Entities and Message Entities 271 Designing Stateless Entity Services 272 Designing Business-Relevant Entity Services 273 Designing Generic Entity Services 273 Designing Aggregating Entity Services 275 Entity Service Implementation 278 Java Editions 278 Entity Services as Web-Based Services 282 Entity Web Services Using SOAP 283 REST Entity Services 291 Read-Only and Read-Write Resources 292 Resource Granularity 292 Resource Creation and Location 292 Request Message 292 Response Message 293 Resource Relationships 294 Request Message 294 Response Message 294 Request Message 295 Resource Collections 295 Request Message 295 Response Message 295 Aggregate Entities 297 Request Message 298 Response Message 298 Open-Source Frameworks 302 Testing Considerations 302 Java Packaging Considerations 303 PART III: SERVICE COMPOSITION AND INFRASTRUCTURECHAPTER 10: Task Services with Java 307 10.1 Inside a Task Service 308 Performance Considerations 315 10.2 Building Task Services 316 Implementation Considerations 316 Web-Based Task Services 320 Task Services with SOAP and WSDL 320 Task Services with REST 324 Testing Considerations 332 Packaging Considerations 334 CHAPTER 11: Service Composition with Java 335 11.1 Inside Service Compositions 336 Service Composition Roles 336 Compositions and MEPs 337 Synchronous and Asynchronous Invocation 338 Service Level Agreements (SLAs) 339 11.2 Java Service Composition Design and Implementation 340 Composition Logic: Coding vs. Orchestration 340 REST Service Composition Considerations 341 Composition Member Endpoints 344 Error Handling 345 Schema Type Reuse 353 Web-Based Services vs. Java Components 359 Packaging, Testing and Deploying Composed Services 362 11.3 Service and Service Composition Performance Guidelines 368 Measuring Performance 368 Testing Performance 370 Caching 371 Data Grids 371 REST Caching 372 Scaling Out Services with State 374 Handling Failures 375 Parsing and Marshaling 376 CHAPTER 12: ESB as SOA Infrastructure 379 12.1 Basic Traditional Messaging Frameworks 380 RPC vs. Messaging 381 Technology Coupling 82 Spatial Coupling 382 Temporal Coupling 382 Message Producers and Message Consumers 385 12.2 Basic Service Messaging Frameworks 389 Basic Service Message Processing without ESBs 389 Message Routing without an ESB 390 Message Transformation without an ESB 391 Basic Service Message Processing with ESBs 392 Message Routing with an ESB 392 Message Transformation with an ESB 392 12.3 Common ESB Features Relevant to SOA 397 Service Lookup and Invocation 397 Service Processing 399 Service Composition Support 401 REST API Management Support 402 PART IV: APPENDICESAPPENDIX A: Case Study Conclusion 405 A.1 NovoBank 406 A.2 SmartCredit Co. 407 APPENDIX B: Service-Orientation Principles Reference 409APPENDIX C: SOA Design Patterns Reference 425APPENDIX D: The Annotated SOA Manifesto 519About the Authors 533About the Foreword Contributor 535About the Contributors 537Index 539
Les mer
The only detailed, hands-on tutorial on building and implementing service-oriented solutions with lightweight Java frameworks and mainstream Java services technology Fully covers Java, Web service and REST technologies, helping you build superior solutions by combining proven principles, patterns, and practices Shows how to implement SOA solutions with lightweight Java frameworks such as Spring, Mule, and ServiceMix Covers key specifications including Service Data Objects (SDO) and Service Component Architecture (SCA) Authored by Thomas Erl, the world's #1 service technology author: the newest book in The Prentice Hall Service Technology Series from Thomas Erl
Les mer
Produktdetaljer
ISBN
9780134767451
Publisert
2017
Utgiver
Vendor
Pearson
Vekt
100 gr
Høyde
100 mm
Bredde
100 mm
Dybde
100 mm
Aldersnivå
P, 06
Språk
Product language
Engelsk
Format
Product format
Heftet
Antall sider
592
Om bidragsyterne
Thomas Erl is a top-selling IT author, founder of Arcitura Education, editor of the Service Technology Magazine, and series editor of the Prentice Hall Service Technology Series from Thomas Erl. With more than 175,000 copies in print worldwide, his books have become international bestsellers and have been formally endorsed by senior members of major IT organizations, such as IBM, Microsoft, Oracle, Intel, Accenture, IEEE, HL7, MITRE, SAP, CISCO, HP, and many others. As CEO of Arcitura Education Inc. and in cooperation with CloudSchool.com and SOASchool.com, Thomas has led the development of curricula for the internationally recognized Cloud Certified Professional (CCP) and SOA Certified Professional (SOACP) accreditation programs, which have established a series of formal, vendor-neutral industry certifications obtained by thousands of IT professionals around the world. Thomas has toured more than 20 countries as a speaker and instructor and regularly participates in international conferences, including Service Technology Symposium and Gartner events. More than 100 articles and interviews by Thomas have been published in numerous publications, including The Wall Street Journal and CIO Magazine.Andre Tost works as a Senior Technical Staff Member and Software Architect in IBM’s Software Group. He is currently helping to develop and evolve the new PureApplication System cloud platform. Previously, Andre spent 10 years as an SOA consultant for IBM, leading large SOA transformation projects with clients worldwide. His specific focus was on SOA governance and middleware integration using enterprise service bus technology. Andre has co-authored several technical books and has published many articles on SOA and related topics. He is also a frequent conference speaker. Originally from Germany, he now works and lives in Rochester, Minnesota. He likes to watch, coach and play soccer whenever his busy schedule allows. Andre has a degree in Electrical Engineering from Berufsakademie Stuttgart, Germany.
Satadru Roy is a Consultant Architect who has designed and built large-scale, distributed systems using Java-based technologies for the last two decades. In that time he has worked as a product engineer and services consultant at Java infrastructure software vendors such as BEA Systems, Sun Microsystems, and Oracle Inc. He currently helps customers build mobile and cloud-hosted applications where he alternates between wearing architect and development manager hats, while his main areas of focus are API design and lightweight integration using agile development methodologies. Satadru is also immersing himself in the growing eco-system of the Scala platform and believes they will play increasingly important roles in future cloud and Big Data applications. He holds a Masters degree in Engineering from Indian Institure of Science.
Philip Thomas is an IT Architect in IBM’s Software Group. During his time in the technology sector, he has worked across industries and geographies with a range of organizations as a consultant on technology strategy and on the architecture, design, and implementation of a broad variety of solutions. His expertise spans a number of areas including Java/JEE, SOA, transaction processing systems, messaging/integration middleware, business process management, information management systems, and business analytics. He currently specializes in Big Data and analytics, based out of the UK. Prior to joining IBM in 2000, Phil trained as a physicist and holds a Ph.D. in experimental high-temperature superconductivity awarded by the University of Birmingham.