Foreword by Mark Little

Over the past decade SOA has moved out of the hype and into mainstream development, becoming a standard part of any architect’s repertoire. Although its roots go back beyond CORBA, SOA came to the forefront with the advent of two technology waves: Web Services and the Enterprise Service Bus (ESB). As REST picked up adoption beyond the Web, so it too became useful within the SOA paradigm. Of course, with the rise of cloud and mobile industries, SOA’s applicability has continued to grow and we are seeing more and more business-critical deployments that are examples of good SOA implementations.

In parallel to the evolution and adoption of SOA, the Java language and platform have grown in maturity and dominance within the industry. In fact, the first ESB was written in Java and so are the most popular Web service stacks, such as Apache CXF. As relevant standards have evolved, such as Java Enterprise Edition, so too have they embraced more and more service-orientation principles, offering new APIs and development approaches. It is therefore no surprise that SOA and Java appear together more often than not in real-world deployments across a range of industry sectors.

Building good service-oriented applications is often a challenge, not just for individual developers but also at the organizational level. Even with a range of interfaces, frameworks, and other tools aimed at making SOA development easier, it is often difficult to know which to use and when. In terms of open standards, Java offers the richest suite of such aids, but at the same time can complicate a developer’s life by their sheer number. As Shakespeare once said: “We suffer a lot the few things we lack and we enjoy too little the many things we have.”

The authors of this book have created a great resource for anyone new to Java to learn how to translate SOA practices into reality. Likewise, it’s a must-have book for Java developers to see how they can use their Java experiences when developing service-oriented applications. Rather than just throw out example code for this or that framework in isolation, the authors have pulled together some wonderful case studies. These case studies are used throughout the book and help put everything into perspective.

It’s nice to see that the authors have also made this book self-contained. Far too often we are introduced to books, particularly those in a series, that can only be read if you’ve also purchased other books that came before and perhaps even some that come afterwards. Not so here. We have introductory chapters that spend a lot of time ensuring that even the most novice reader has all of the information they need at their fingertips. Very refreshing, especially when you consider that some of these chapters could be books in their own right! So whether you are a Java expert who needs to learn about SOA, or an SOA expert who needs to learn about Java, this book has all of the details you need. The Java background text covers the latest Java EE 7 specification, including topics such as JTA/JCA, EJB3, CDI, JPA, and JMS.

One of the dominant SOA implementation approaches today remains SOAP-based Web services. The WS-* standards are the most widely adopted cross-vendor standards relevant to SOA and are used extensively in enterprises both inside and outside of the cloud. This book pulls together the often confusing plethora of standards and implementation approaches in a coherent manner, offering the reader an easier on-ramp to this critical area than is available elsewhere. In terms of how Java interfaces with Web-based services, the authors cover standards such as JAX-WS, JAX-RS and their Spring equivalents. Copious amounts of code are used to help illustrate critical points such as how to get the best throughput or security for your applications. The chapter called Service-Orientation Principles with Java Web-Based Services is one of the best of its kind, covering details such as WSDL, data mapping with REST and how to achieve loose coupling.

What also helps to positively differentiate this book from others in this area are chapters on how to build specific types of services in Java following service-orientation principles and getting them to perform well at the same time: this isn’t a book that is just heavy on theory, but it more than complements any theory with a very heavy practical aspect, making it ideal for architects and developers alike. If you’re looking for how to build individual services or, more likely as your applications grow, composite services in a way that does not break service-orientation principles, then the authors have created a book that you need to have on your shelf, well read, or next to your computer. The code in chapters such as Service Composition with Java is presented in such a way and with the right context that you should be able to use much of it as a template for you and your teams.

Another technology which is often used within SOA deployments, but also just as often misunderstood, is the Enterprise Service Bus. Like REST, some people love the ESB whilst others believe they bring nothing of value. This book helps to shed some light on the ESB and inject some much needed reality to the debate, allowing you to select the right tool for the right job. ESBs aren’t a global panacea for everything SOA-related. But neither are they something which should be ignored, and the authors help to make this clear in a succinct manner.

Whether you’re a Java developer looking for a book to explain SOA or an SOA expert looking for something to help you turn those ideas into a Java reality, this is the book for you. It also doesn’t matter whether you are a software developer, an architect, working in a team, or by yourself, this book works on many levels and is relevant to you as you move through the SOA design and development phases.

Dr. Mark Little, Red Hat

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset