- Authoritative guidance and high-performance codestraight from BEA WebLogic's product team!
- Step-by-step, example-rich coverage of every major J2EE API
- Case study: Build a complete e-Commerce application from scratch
- CD-ROM: Complete BEA WebLogic Server 6evaluation version, plus extensive code library
The insider's guide to J2EE development with the world's #1 Java application serverBEA WebLogic Server 6!
BEA's WebLogic Server is the de facto industry standard for developing and deploying industrial strength Java E-commerce applications. This book delivers authoritative guidance for J2EE application development with the most powerful version of WebLogic ever: WebLogic Server 6. Authored by members of BEA's WebLogic project team, the book covers every aspect of real-world WebLogic J2EE development, from start to finish, through an industrial-strength case study application. You'll find coverage of all this, and more:
- BEA WebLogic Server: Fundamental concepts and configuration techniques
- Designing robust, high-performance J2EE applicationsincluding detailed coverage of capacity planning and performance testing
- Effective use of RMI and distributed naming
- Building presentation logic with WebLogic Server servlets and JavaServer Pages
- Using session, entity, and message-driven Enterprise JavaBeans
- Interfacing with Internet Mail using WebLogic Server JavaMail
- Establishing database connectivity with JDBC and implementing transactions with JTA
- Developing security with WebLogic Server JNDI and the Java Authentication andAuthorization Service (JAAS)
- Packaging, deploying, and testing WebLogic Server applications
Ready to move from "Java programmer" to "expert enterprise developer"? You won't find a more useful tool than BEA WebLogic Serveror a more useful book than J2EE Applications and BEA WebLogic Server.
GREAT RESOURCES ON CD-ROM!
- All code from the book, including a complete enterprise application
- Complete evaluation version of BEA WebLogic Server Release 6
- Bonus WebLogic Server tools and utilities
|Edition description:||Older Edition|
|Product dimensions:||7.06(w) x 9.28(h) x 1.98(d)|
About the Author
Rob Woollen is Senior Software Engineer for Enterprise JavaBeans at BEA Systems, and lead developer for the WebLogic Server EJB Container. He was formerly Senior Performance Engineer in charge of analyzing and improving WebLogic Server performance.
Sandra L. Emerson is a technical writer and consultant with 20 years of experience in the software industry. She is co-author of four books, including Addison-Wesley's best-selling The Practical SQL Handbook.
Read an Excerpt
Chapter 7: Enterprise Messaging with the Java Message Service (JMS)The Java Message Service (JMS) provides a standard enterprise messaging service for Java 2 Enterprise Edition (J2EE) applications. JMS acts as an intelligent switchboard for routing messages among application components and processes in a distributed application. JMS queues messages and can deliver them asynchronously: Messaging need not take place in real time; and messages can be sent and consumed at different times.
Benefits of JMSThere are a number of reasons to use a messaging system for interprocess communication instead of making direct method calls. A messaging system provides a clean way to connect disparate systems within an application. Messaging systems also help divide long-running work into multiple transactions for greater efficiency. When communication is asynchronous, the client need not wait for all of the processing to complete.
Messaging systems also provide reliability. JMS can optionally save a message to a persistent store. There is, however, a trade-off between reliability and performance. The messaging system runs faster if messages are not persistent, but the application must tolerate lost messages in the event of a server crash. Messaging systems also enable clients to disconnect and reconnect to the server without losing work. JMS can be configured to save messages while the client is disconnected and deliver them once the client has reconnected. Unlike method calls on a single object, JMS allows sending a single message to many recipients.
Interprocess CommunicationMost large systems are divided into several separate functional units. JMS provides reliable communication between these separate processes. For instance, an e-commerce application might include a Web front-end for customer order entry. A warehouse then receives the order, packages the appropriate items, and forwards the order to the shipping department. Finally, the shipping department sends the package and updates the customer's account records.
JMS provides the communication backbone for workflow applications.
Point-to-Point MessagingThe order fulfillment application uses JMS's point-to-point (PTP) messaging model to provide reliable communication within this multi-stage application. In PTP communication, JMS delivers each message to a single message consumer. For instance, in this application, the Web front-end sends a message including the new order information. A single warehouse receives the message and processes the order. The message system guarantees that multiple warehouses do not fill the same order. This application also uses JMS's reliability guarantees. Because customer orders are important information that should be retained, the developer will request JMS to mark these messages as persistent. With persistent messages, JMS saves the message contents to a persistent storage such as a database or file store.
Publish/Subscribe MessagingIn addition to PTP communication, JMS provides a publish-and-subscribe messaging model. With publish/subscribe messaging (also known as pub/sub), a message is sent to a named topic. There might be multiple message listeners subscribed to each topic. The JMS subsystem delivers a copy of the message to each of the topic's subscribers. For instance, an e-commerce site might define a frequent-customer topic. When a customer makes several purchases, a message is sent to this topic. The site can then send “special deals” messages to a select group of listeners, the frequent customers. Because there might be several message listeners, each offering a separate special deal, it is appropriate to use pub/sub instead of PTP communication.
JMS FundamentalsThe JMS specification defines both PTP and pub/sub APIs. A JMS Server can implement one or both of these APIs. The WebLogic Server's JMS implementation includes both the PTP and pub/sub APIs.
The JMS APIs define a set of fundamental objects. Each object is separately defined in the PTP and pub/sub domains, but their function is nearly identical in both domains.
Connection FactoriesConnection factories are created by the server administrator and bound into the Java Naming and Directory Interface (JNDI) tree. A JMS client uses JNDI to look up the ConnectionFactory and then uses the ConnectionFactory to establish a JMS connection. The PTP connection factory is javax.jms.QueueConnectionFactory while the pub/sub domain uses javax.jms.TopicConnectionFactory.
The WebLogic Server binds a standard connection factory with the name weblogic.jms.ConnectionFactory. It also is possible to define additional connection factories with the WebLogic Server's Administration Console. An application uses a user-defined ConnectionFactory if needed to impose additional security constraints on the ConnectionFactory.
ConnectionsA JMS connection represents the active connection between the JMS client and the WebLogic Server. The JMS client creates the JMS connection by calling the createQueueConnection or the createTopicConnec-tion methods on the ConnectionFactory. A JMS connection is a rela-tively heavyweight object and normally each client uses a single JMS connection. Each JMS connection can be associated with many JMS destina-tions. The PTP connection is javax.jms.QueueConnection while the pub/sub connection is javax.jms.TopicConnection.
SessionsThe JMS session represents a client's conversational state with a JMS Server. A session is created from the JMS connection, and it represents a single thread of conversation between a JMS client and server. Sessions define mes-sage ordering, and JMS uses sessions for transactional messaging. The PTP model uses javax.jms.QueueSession while the pub/sub model uses javax.jms.TopicSession.
DestinationsJMS destinations are the actual messaging resource. PTP messaging defines javax.jms.Queue while pub/sub includes javax.jms.Topic. The server administrator uses the WebLogic Console to create destinations with a specified JNDI name. The JMS client then performs a JNDI lookup to locate the JMS destination....
Table of ContentsForeword.
2. Overview of J2EE Technologies.
3. Building Presentation Logic with WebLogic Server Servlets.
4. Using WebLogic Server JavaServer Pages.
5. Using Databases and Transactions with JDBC and JTA.
6. Remote Method Invocation and Distributed Naming.
7. Enterprise Messaging with the Java Message Service (JMS).
8. Using Session Enterprise JavaBeans.
9. Entity EJBs.
10. Using Message-Driven EJBs.
11. Interfacing with Internet Mail Using WebLogic Server JavaMail.
12. Developing Security with WebLogic Server JNDI and JAAS.
13. Designing the Production Deployment.
14. The WebAuction Application.
15. Capacity Planning for the WebLogic Server.
Introducing BEA WebLogic Application Servers
J2EE Applications and BEA WebLogic Server addresses the need for a practical, state-of-the art book on developing enterprise applications with the market-leading BEA WebLogic Java application servers. The BEA WebLogic family of application servers includes BEA WebLogic Server, BEA WebLogic Enterprise, BEA WebLogic Commerce Server, and BEA WebLogic Personalization Server. This book focuses on BEA WebLogic Server.
BEA WebLogic Server (WebLogic Server) is a widely used Java application server for constructing multi-tier, secure, large-scale, distributed Web applications for e-commerce and other high-volume applications. Distributed applications require sophisticated, fast, fault-tolerant networked communication among application tiers and components. In a client-server application, client programs send requests and receive responses from a server system. With the advent of middleware and the Web revolution, many enterprise sites have moved from client-server application environments to n-tierusually, 3- or 4-tierarchitectures. In multi-level architectures, efficient network connectivity is paramount.
In a multi-tier application, WebLogic Server provides the framework for developing and deploying server-side business logic, and supports a distributed programming model that hides the complexity of distributed programming from the application writer. The programming model provided by J2EE and the WebLogic Server extensions provides some level of transparency, so that writing a distributed application is similar to writing a local application. Although the programmer must still be concerned about error handling and efficiency, WebLogic Server's implementation of the J2EE services provides an excellent development and execution environment for an enterprise-level distributed application.
An application server such as BEA WebLogic Server handles server-side business logic and the administration of a multi-client, distributed application that uses a variety of clients and servers. Giving the responsibility for business logic and traffic control to an application server has the following benefits:
- Efficiency: Web browser and application clients can share the same business logic, rather than having to deploy business rules with each instance of a client.
- Performance: Locating server-side business logic with or near resource-intensive modules such as data stores can improve performance.
- Manageability: System administration and security issues are easier to address when business logic is centralized in an application server.
History of BEA's WebLogic Server Division
WebLogic, Inc. was founded in 1995--when Java, still a "think tank" project of Sun Microsystems, was code-named "Oak." In 1998, WebLogic merged with BEA Systems, Inc., a major vendor of transaction monitors and other tools for creating and managing enterprise-scale distributed systems. The BEA WebLogic Server product is a part of the BEA E-Business Platform.
From the beginning, the WebLogic Server developers determined to use only Java, and to focus on server-side technologies: server support and middleware management of multi-tier applications. Using off-the-shelf Java development tools (and general-purpose text-editing tools such as emacs), the WebLogic Server developers implemented APIs for each new Java standard feature that Sun specified. As a result, WebLogic Server has not only kept current with Java standards development but has also had the capability to influence emerging Java standards.
BEA WebLogic Server was an early implementer of each emerging Java Enterprise standard, including Enterprise JavaBeans (EJB), Remote Method Invocation (RMI), servlets, the Java Naming and Directory Interface (JNDI), and Java Database Connectivity (JDBC) for Oracle, Informix, Sybase, and Microsoft SQL Server. Each of these technologies is explained and illustrated in the chapters that follow.
In July 2000, the BEA Systems family of application servers successfully completed Sun Microsystems Java 2 Enterprise Edition (J2EE) certification, becoming the first independent company to achieve official J2EE certification.
BEA WebLogic Server has won several industry awards, including:
- Best Java Application Server (JavaPro, June 2000)
- Product Excellence and Productivity Award (Software Development Magazine, March 2000)
- Java World Reader's Choice Award for best e-commerce application server, 1999
- Infoworld's Product of the Year, 1999
- Java Developers Journal Editor's Choice Award in 1998 and 1999
Why We Wrote This Book
BEA WebLogic Server has a growing installed base that has been supported by training classes and extensive documentation, but there has been no comprehensive, practical coverage of full-scale application development on the WebLogic Server platform. This step-by-step book explains where to start, and how to put all the pieces together. Planning for deployment and selecting the technologies that you'll use for each tier of the application is as important as laying down code.
J2EE Applications and BEA WebLogic Server is targeted at intermediate to professional-level Java programmers developing applications for the BEA WebLogic Server platform, the market leader among application servers. This book focuses on best practices for developing enterprise applications using the WebLogic Server APIs. The WebAuction application, a complete sample e-commerce application, is explained and developed as an example in Chapter 14. An accompanying CD-ROM includes all software and code needed to implement the sample application in your own environment.
After reading this book, Java developers will possess the skills and knowledge required to develop scalable and robust applications on the WebLogic platform. This book is targeted at programmers who know basic Java on at least an intermediate level and would like to learn WebLogic Server. We assume that readers know about standard Java programming concepts such as exceptions and threads. However, we do not assume that readers know much about J2EE or application servers.
Brief Overview of the Book
J2EE Applications and BEA WebLogic Server contains both a descriptive narrative and examples for each major J2EE API, and a sample application that concludes the book. Using a step-by-step approach, the book introduces each major J2EE API and uses it to build a component of the WebAuction application, which supports an online auction site.
Building the WebAuction application gives users the opportunity to explore significant areas of building a distributed Enterprise Java application, including:
- Overview of J2EE technologies (Chapter 2)
- Building presentation logic with servlets or Java Server Pages (JSPs); (Chapters 3 and 4)
- Establishing database connectivity and using transactions (Chapter 5)
- Using Remote Method Invocation, and the Naming and Directory Interface (Chapter 6)
- Using a message-oriented middleware layer to coordinate all the components and operations in your multi-tier, distributed WebAuction application (Chapter 7)
- Creating Enterprise Java Beans (Chapters 8-10)
- Integrating Internet mail (Chapter 11)
- Adding security (Chapter 12)
- Designing a distributed deployment (Chapter 13)
- Building and deploying the completed application (Chapter 14)
- Performing a capacity-planning exercise to assess the performance of the deployed application (Chapter 15)
Chapter 1 presents a detailed overview of the book, with a roadmap and chapter summaries. Chapter 1 also lists system requirements and conventions. Chapter 2 surveys the J2EE technologies that are described in depth, with examples, in Chapters 3-12.
About the Authors
Michael Girdley is the Senior Product Manager for the BEA WebLogic Server, a role in which he acts as marketing liaison to over 200 engineers. An experienced application developer in Java, HTML, C, and C++, Michael is a co-author of Web Programming with Java (Sams-net Publishing, 1996) and Java Unleashed, Second Edition (Sams-net Publishing, 1997). Michael holds a bachelor's degree in computer science with honors from Lafayette College.
Rob Woollen is a Senior Software Engineer at BEA Systems. He is currently the lead developer for the WebLogic Server EJB Container. Before joining BEA, Rob worked on UNIX kernel networking for Hewlett-Packard. Rob holds a bachelor's degree in computer science from Princeton University.
Sandra L. Emerson is a technical writer and consultant with 20 years' experience in the software industry. She is a co-author of four computer trade books: The Business Guide to the UNIX System (Addison-Wesley); Database for the IBM PC (Addison-Wesley); Troff Typesetting for UNIX Systems (Prentice Hall PTR); and The Practical SQL Handbook (Addison-Wesley, Fourth Edition, 2001).
Most Helpful Customer Reviews
The book is supposed to be a hands on experience of Weblogic and the use of J2EE applications. However it simply does not touch on more than half of the technologies that make up J2EE. The code examples are very poor and therefore the book does not even serve as a how-to. The educational level of the book is very poor. As a lognstanding user of weblogic and J2EE architect I hoped to get more insights into wls´s internals but it hardly passes the surface. The internal webligic documentation (HTML & pdf) are much more interesting reading, even for a beginner.
I'm not new to J2EE, but I wanted a helpful, hands-on tour of BEA WebLogic. What I got was a book full of typos and examples that were confusing and poorly reviewed. The book would cite one best practice, violate the practice in the example, or present example code that didn't work, or worse, patently different from what was on the CD. Additionally, while Windows holds the personal computer desktop, the single most deployed BEA WebLogic platform in a commercial environment is UNIX. Yet an evaluation installer for UNIX is not provided. I can only hope that if a second edition is published, the authors will be a little more diligent in the editing room.
I'm a J2EE developer that has moderate experience with JSPs and Servlets, but not so much with EJBs and other advanced topics like RMI, etc. This book talks about the real-world implications of all these tools a J2EE programmer can use. It's occasionally light on the details of deployment, but you should be able to reference the BEA documentation for those details. This book is good because it tells you why you should be using something, or not, and how to do it, or avoid it. This is the book to get if you've done a J2EE app or two before, but were not too comfortable with all of it, or thought it could have been designed better, but had no one to tell you how to do it right. It's a great mentor.
The book seemed informative, and in chapter 4 presented what appeared to be a great, step-by-step example of deploying a JSP/JavaBean application. Unfortunately when the book got to the last, most important step, deployment, instead of continuing to work through the steps, the authors direct the reader to take code off the CD and run the application that way. Didn¿t make any sense to me, would it not make more sense, sicne this is supposed to be a hands-on BEA book, to take the reader through every step required to create the files needed to deploy the application on the server? Since deployment was the kind of information I was really after, and I had to go digging through the Weblogic files to find it, I went and got my $49 back¿
This book provides an in-depth review of utilizing J2EE with BEA Web Logic 6. It provides a very comprehensive look at deploying Java enterprise applications including session beans, entity beans, java messenging, server clustering, JNDI, and JDBC. The book provides straight-foward code examples for every chapter. The last chapter is devoted to deploying a complete auction application. The book is very useful for anyone wanting to get hands on experience with BEA Weblogic 6 server.