Synopses & Reviews
The Definitive Guide to Today’s Leading Persistence Technologies
Persistence in the Enterprise is a unique, up-to-date, and objective guide to building the persistence layers of enterprise applications. Drawing on their extensive experience, five leading IBM® Web development experts carefully review the issues and tradeoffs associated with persistence in large-scale, business-critical applications.
The authors offer a pragmatic, consistent comparison of each leading framework--both proprietary and open source. Writing for IT managers, architects, administrators, developers, and testers, the authors address a broad spectrum of issues, ranging from coding complexity and flexibility to scalability and licensing. In addition, they demonstrate each framework side by side, via a common example application. With their guidance, you’ll learn how to define your persistence requirements, choose the most appropriate solutions, and build systems that maximize both performance and value.
- Taking an end-to-end application architecture view of persistence
- Understanding business drivers, IT requirements, and implementation issues
- Driving your persistence architecture via functional, nonfunctional, and domain requirements
- Modeling persistence domains
- Mapping domain models to relational databases
- Building a yardstick for comparing persistence frameworks and APIs
- Selecting the right persistence technologies for your applications
- Comparing JDBC™, Apache iBATIS, Hibernate Core, Apache OpenJPA, and pureQuery
The companion web site includes sample code that implements the common example used throughout the technology evaluation chapters, 5-9.
The IBM Press developerWorks® Series is a unique undertaking in which print books and the Web are mutually supportive. The publications in this series are complemented by resources on the developerWorks Web site on ibm.com. Icons throughout the book alert the reader to these valuable resources.
The vast majority of enterprise application must deal with persisting data. This guide surveys the very diverse, complex, and competitive landscape of persistence frameworks.
About the Author
Roland Barcia is a Senior Technical Staff Member (STSM) and Lead Web 2.0 Architect within IBM Software Services for WebSphere®. He is the coauthor of the book IBM WebSphere: Deployment and Advanced Configuration. He has published over 40 articles and papers on topics such as Java™ Persistence, Ajax, REST, JavaServer Faces, and Messaging Technologies. He frequently presents at conferences and customers on various technologies. He has spent the past 10 years implementing middleware systems on various platforms, including Sockets, CORBA, Java EE, SOA, and most recently the Web 2.0[nd]based platform called Project Zero. He has a Masters Degree in Computer Science from the New Jersey Institute of Technology. Roland maintains a blog called “Web 2.0 and Middleware” (http://www.ibm.com/developerworks/blogs/page/barcia).
Geoffrey M. Hambrick is a Distinguished Engineer in the IBM Software Services for WebSphere Enablement Team, whose mission is to help develop and disseminate best practices for using IBM WebSphere runtimes, tools, and technologies. Geoff has long been a pioneer in the area of Distributed Object Technology, and was involved in the development of various standards, like the Object Management Group CORBA Object Services and the Enterprise JavaBeans specifications. Geoff has engaged with numerous clients and is often asked to present at conferences throughout the world. Geoff is the author of the IBM developerWorks® column “The EJB Advocate,” which describes various best practices patterns for using EJB technologies, especially entity bean components. Geoff's current focus is in pattern authoring tools that can be used to automate application of best practices. He and Chris Gerken invented the Design Pattern Toolkit, which extended the Eclipse Java Emitter Template standard and has helped make Pattern Based Engineering a practical reality.
Kyle Brown is a Distinguished Engineer with IBM Software Services and Support. He is a coauthor or contributor to several books, including Enterprise Java Programming with IBM WebSphere and Enterprise Integration Patterns. He is a well-known authority on patterns, and has been a past chair of the PLoP (Pattern Languages of Programs) Conference. Kyle was one of the coauthors of one of the first papers on patterns of object-relational mapping, "Crossing Chasms," which was published in Pattern Languages of Program Design 2. In his day job, Kyle helps IBM's customers adopt emerging technologies, and teaches best practices for using IBM's WebSphere family of products.
Robert R. Peterson is a Senior Managing Consultant for IBM Software Services for WebSphere. He travels the world implementing strategic proof of concept projects for future IBM software systems. He has published numerous technical books and papers, is a frequent conference speaker, and has filed several US Patents for enterprise systems. You can visit his website at http://juzzam.org/PersonalSite/.
Kulvir Singh Bhogal works as a Senior Managing Consultant with IBM Software Services for WebSphere, devising and implementing WebSphere-centric, SOA solutions at customer sites across the nation. He has more than a hundred patents filed in a myriad of technology areas. Kulvir has written for numerous publications, including JavaPro Magazine, IBM developerWorks, O'Reilly Media, Java Developer's Journal, DevX, InformIT, and WebSphere Advisor Magazine. He is also a frequent presenter at numerous technology conferences.
Table of Contents
About the Authors xvii
Part I A Question of Persistence
Chapter 1 A Brief History of Object-Relational Mapping 3
Chapter 2 High-Level Requirements and Persistence 19
Chapter 3 Designing Persistent Object Services 47
Chapter 4 Evaluating Your Options 87
Part II Comparing Apples to Apples
Chapter 5 JDBC 109
Chapter 6 Apache iBATIS 145
Chapter 7 Hibernate Core 199
Chapter 8 Apache OpenJPA 249
Chapter 9 pureQuery and Project Zero 311
Chapter 10 Putting Theory into Practice 357
Appendix Setting Up the Common Example 371