did-you-know? rent-now

Amazon no longer offers textbook rentals. We do!

did-you-know? rent-now

Amazon no longer offers textbook rentals. We do!

We're the #1 textbook rental company. Let us show you why.

9780471469513

Professional Portal Development with Open Source Tools: JavaTM Portlet API, Lucene, James, Slide

by ; ; ; ;
  • ISBN13:

    9780471469513

  • ISBN10:

    0471469513

  • Format: Paperback
  • Copyright: 2004-02-01
  • Publisher: Wrox
  • Purchase Benefits
List Price: $39.99

Summary

What is this book about? Open source technology enables you to build customized enterprise portal frameworks with more flexibility and fewer limitations. This book explains the fundamentals of a powerful set of open source tools and shows you how to use them.An outstanding team of authors provides a complete tutorial and reference guide to Java Portlet API, Lucene, James, and Slide, taking you step-by-step through constructing and deploying portal applications. You trace the anatomy of a search engine and understand the Lucene query syntax, set up Apache James configuration for a variety of servers, explore object to relational mapping concepts with Jakarta OJB, and acquire many other skills necessary to create J2EE portals uniquely suited to the needs of your organization.Loaded with code-intensive examples of portal applications, this book offers you the know-how to free your development process from the restrictions of pre-packaged solutions.What does this book cover?Here's what you will learn in this book: How to evaluate business requirements and plan the portal How to develop an effective browser environment How to provide a search engine, messaging, database inquiry, and content management services in an integrated portal application How to develop Web services for the portal How to monitor, test, and administer the portal How to create portlet applications compliant with the Java Portlet API How to reduce the possibility of errors while managing the portal to accommodate change How to plan for the next generation application portal Who is this book for?This book is for professional Java developers who have some experience in portal development and want to take advantage of the options offered by open source tools.

Author Biography

W. Clay Richardson is a software consultant specializing in distributed solutions, particularly portal solutions. He has fielded multiple open-source Web and portal solutions, serving in roles ranging from senior architect to development lead. He is a co-author of More Java Pitfalls, also published by Wiley & Sons. As an adjunct professor of computer science for Virginia Tech, he teaches graduate-level coursework in object-oriented development with Java. He holds degrees from Virginia Tech and the Virginia Military Institute.

Donald Avondolio is a software consultant with over seventeen years of experience developing and deploying enterprise applications. He began his career in the aerospace industry developing programs for flight simulators, and later became an independent contractor, crafting healthcare middleware and low-level device drivers for an assortment of mechanical devices. Most recently, he has built e-commerce applications for numerous high-profile companies, including The Home Depot, Federal Computer Week, the U.S. Postal Service, and General Electric. He is currently a technical architect and developer on several portal deployments. Don also serves as an adjunct professor at Virginia Tech, where he teaches progressive object-oriented design and development methodologies, with an emphasis on patterns.

Joe Vitale has been working with the latest cutting-edge Java technology intensely. His most recent focus has been on Java portals and object-relational mapping tools. One of these projects was writing a content management system that contained role-based authentication of users and the capability for users to upload, delete, and manage files, and secure resources. The whole system was designed to plug right into a portal’s interface and enable the portal to directly communicate with it to obtain its resources. Object-relational mapping technologies have also been a focus, using Apache’s Object Relational Bridge (OJB).

Peter Len has over seven years’ experience performing Web-based and Java application development in a client-server environment. He has designed, coded, and implemented data and Web site components for each aspect of a three-tier architecture. Mr. Len has been developing with Java for over five years and has recently been involved with portal and Web-service development. He holds a master’s degree in both international affairs and computer information systems.

Kevin T. Smith is a technical director and principal software architect at McDonald Bradley, Inc., where he develops security solutions for Web service–based systems. He has focused his career on building enterprise solutions based on open-source tools. He holds undergraduate and graduate degrees in computer science, software systems engineering, and information security. He has taught undergraduate courses in computer science, given technical presentations on Web services and Java programming at numerous technology conferences, and authored several technical books, including Essential XUL Programming (Wiley 2001), More Java Pitfalls (Wiley 2003), and The Semantic Web: A Guide to the Future of XML, Web Services, and Knowledge Management (Wiley 2003).

Table of Contents

Acknowledgments ix
Introduction xix
Part Open Source Portals 1(172)
Chapter 1: The Java Portlet API (JSR 168)
3(38)
Portlet Fundamentals
3(5)
Portlets and Servlets
5(1)
Portal Interactions
6(2)
The Portlet Interface and the GenericPortlet
8(6)
Portlet Life Cycle
8(1)
Portlet Runtime States
8(1)
Portlet Request Handling
9(2)
"There Can Be Only One"
9(1)
ActionRequest
10(1)
RenderRequest
11(1)
GenericPortlet
11(3)
Other Elements of the Java Portlet API
14(14)
PortletConfig
14(1)
PortletURL
14(1)
Portlet Modes
15(1)
Window States
16(1)
Portlet Context
16(1)
Portal Context
16(1)
Portlet Preferences
16(2)
Sessions
18(1)
Calling JSPs and Servlets
19(2)
Portlet Application Structure
21(1)
Security
22(1)
CSS Style Definitions
22(2)
User Information Attributes
24(4)
Portlet Tag Library
28(1)
Portlet Deployment
28(11)
Portlet Application Deployment Descriptor
28(4)
Portlet Declarations
29(3)
Building a Portlet
32(7)
Summary
39(2)
Chapter 2: Searching with Lucene
41(18)
Understanding Search Engine Concepts
41(13)
The Anatomy of a Search Engine
43(5)
The Anatomy of Lucene
48(6)
Analyzer
51(2)
Document
53(1)
Directory
54(1)
Understanding the Lucene Query Syntax
54(3)
Terms
54(1)
Fields
54(1)
Term Modifiers
54(1)
Boolean Operators, Grouping, and Escaping
55(2)
Optimizing Lucene's Performance
57(1)
Summary
57(2)
Chapter 3: Messaging with Apache James
59(28)
Introducing James
59(5)
Working with Mailets and Matchers
60(3)
Bundled Matchers
61(1)
Bundled Mailets
62(1)
Understanding SpoolManager
63(1)
Understanding Repositories
63(1)
File Repositories
64(1)
Database Repositories
64(1)
DBFile Repositories
64(1)
Working with RemoteManager
64(1)
Implementing James
64(6)
Downloading James
64(1)
Installing James
65(1)
Configuring James
65(5)
DNS Server Configuration
66(1)
POP3 Server Configuration
66(1)
SMTP Server Configuration
66(1)
NNTP Server Configuration
67(1)
FetchPOP Configuration
67(1)
RemoteManager Configuration
68(1)
Repository Configuration
68(1)
SpoolManager Configuration
68(1)
Global Server Configuration
68(1)
Creating User Accounts
69(1)
Introducing JavaMail API
70(4)
The Session Class
71(1)
Message Class
71(1)
Address Class
72(1)
Authenticator Class
72(1)
Transport Class
73(1)
Store and Folder
73(1)
JavaMail In Practice
74(12)
Sending Messages
74(5)
Receiving Messages
79(7)
Summary
86(1)
Chapter 4: Object to Relational Mapping with Apache OJB
87(30)
Exploring Object-to-Relational
Mapping Concepts
87(1)
Understanding OJB Technology Features
88(1)
Using OJB API Layers
89(21)
Developing with the PersistenceBroker API
90(17)
The Message Class
93(6)
JDBC Connection Mapping
99(1)
Home.jsp
100(4)
Add.jsp
104(2)
View.jsp
106(1)
Developing with the ODMG API
107(3)
Opening a Database
107(1)
Retrieving Objects
107(1)
Storing Objects
108(1)
Updating Objects
109(1)
Deleting Objects
109(1)
Developing with the JDO API
110(1)
OJB Extras
110(4)
Verifying an OJB Installation
111(1)
Supported Database Platforms
111(1)
Supported JDBC Data Types
112(1)
Deploying OJB Applications
113(1)
Jar Files
113(1)
Metadata Files
114(1)
JDBC Drivers
114(1)
CLASSPATH Settings
114(1)
OJB Performance
114(1)
Summary
114(3)
Chapter 5: Content Management with Jakarta's Slide
117(28)
Slide Architecture
117(18)
External Architecture
118(2)
Internal Architecture
120(2)
Transaction Management
122(2)
Transactions
123(1)
Transaction Attributes
123(1)
Namespaces
124(8)
Helpers
124(8)
Stores
132(1)
Domain
132(3)
Slide API Layer
135(1)
Setting Up and Configuring Slide
135(3)
Installing and Running Slide
135(1)
Tomcat Manager
136(2)
The Slide Server
138(1)
Client View
139(1)
Admin View
139(1)
Editor View
139(1)
WebDAV and Slide
139(4)
Windows XP WebDAV Example
140(3)
Summary
143(2)
Chapter 6: Portal Security
145(28)
Core Security Concepts
145(5)
Authentication
145(1)
Authorization
146(1)
Single Sign-On (SSO)
147(2)
Confidentiality
149(1)
Data Integrity
150(1)
Non-repudiation
150(1)
Key Security Standards
150(3)
SSL and TLS
150(1)
XML Encryption
151(1)
XML Signature
151(1)
SAML
151(2)
OASIS Web Services Security (WSS)
153(1)
Building Security Solutions for Your Portal
153(19)
Web Container Security-Apache Tomcat
154(14)
Server Configuration
155(10)
Application Configuration
165(2)
Programmatic Security Access with JSPs and Servlets
167(1)
Security of the Portlet Container
168(3)
Programmatic Security
169(1)
Portlet Descriptor-Configured Security
170(1)
Beyond the Portal-Secure Back-End Communication
171(1)
Summary
172(1)
Part II: How to Build a Portal 173(200)
Chapter 7: Planning for Portal Deployment
175(46)
System Requirements
177(5)
Interface Requirements
177(1)
Operational Requirements
177(1)
Data Requirements
178(1)
Security Requirements
178(1)
Quality Assurance Requirements
179(2)
Software Configuration Management
179(1)
Jakarta's ANT
180(1)
Unit and Load Testing
180(1)
Bug Tracking
181(1)
Continuous Integration
181(1)
Requirements Summary
181(1)
Software Design Methodologies
182(13)
The Unified Process (UP)
182(11)
Domain Model
184(2)
Software Architecture Document (SAD)
186(3)
Shall Statements and User Stories
189(1)
Class-Responsibility-Collaborator Cards (CRCs)
190(1)
Storyboarding
190(3)
Design Models for Visualization That Are Not in UML
193(2)
Design Decisions
195(5)
Model 1 Architecture
196(1)
Model 2 Architecture
197(1)
Model 2X Architecture
197(3)
Search Utilities
200(1)
Content Management
200(1)
Design Pattern Considerations In Your Portal
201(5)
Using Java Standards
202(5)
Model-View-Controller (MVC) Pattern
205(1)
Template Method Pattern
205(1)
Memento Pattern
205(1)
Facade Pattern
205(1)
Adapter Pattern
205(1)
Factory Method Pattern
206(1)
Singleton Pattern
206(1)
Front Controller Pattern
206(1)
Intercepting Filter Pattern
206(1)
Client-Side Processing
206(1)
JavaScript
207(1)
Server-Side Processing
207(2)
Java Plug-ins
208(1)
Web Services for Remote Portals (WSRP)
209(1)
Portal Navigation
210(8)
Portal Navigation Using Taxonomies
212(6)
Portlet Integration Plan
218(2)
Summary
220(1)
Chapter 8: Effective Client-Side Development Using JavaScript
221(34)
Declaring JavaScript
222(1)
Validating Data
223(4)
Adding Functionality
227(4)
Field Auto-Population
228(1)
Field Auto-Validation
229(2)
Space Management
231(9)
Multiple-Value Picklists
231(3)
Repeating Values
234(6)
Dynamic Actions
240(4)
Layering and DHTML
244(9)
Forms and Layers
244(6)
Movable Layers
250(3)
Summary
253(2)
Chapter 9: Developing Applications and Workflow for Your Portal
255(30)
The Portlet Architecture
255(4)
The Portlet Container
256(2)
Portlet Preferences
258(1)
JSP Tag Library
258(1)
Packaging a Portlet
258(1)
The eXo Portal Platform
259(3)
The eXo Portal
259(1)
Hot Deployment
259(1)
Customization Tool
259(1)
Setup and Installation of eXo
260(1)
Understanding the eXo Directory Structure
260(2)
The Directory Portlet
262(15)
Developing the Directory Portlet
265(11)
The MySQL Database
266(1)
The DirectoryPortlet Class
267(4)
The DirectoryValidator Class
271(1)
The DirectoryView JSP File
272(2)
The DirectoryEdit JSP File
274(1)
The web.xml File
275(1)
The portlet.xml File
275(1)
Deploying the Directory Portlet in eXo
276(1)
Portlet Creation the Model-View-Controller (MVC) Way
277(2)
The MVC Loan Calculator Portlet
279(4)
Web Applications versus Portlet Applications
283(1)
Summary
283(2)
Chapter 10: Portlet Integration with Web Services
285(26)
Basic Concepts
285(2)
Integrating with Traditional Web Services
287(15)
A Simple Example
292(10)
First Approach: SOAP and WSDL Messaging
292(6)
Second Approach: Working with Generated Objects
298(4)
Web Services for Remote Portlets (WSRP)
302(8)
Types of WSRP Services
304(1)
Discovery, Registration, and Deregistration Services
304(1)
Simple WSRP Services-Stateless "View Only" Modes
304(1)
More Complex Services-Interactive WSRP Services
304(1)
Portlet Management Services
305(1)
WSRP Markup Guidelines for Portlet Developers
305(7)
Disallowed XHTML and HTML Tags
305(1)
Cascading Style Sheets (CSS) Style Definitions
305(5)
User Information
310(1)
Summary
310(1)
Chapter 11: Performance Testing, Administering, and Monitoring Your Portal
311(36)
Continuous Integration
312(14)
CVS
312(3)
Subversion
315(1)
JUnit
316(8)
AntHill
324(2)
Load Testing
326(4)
JMeter
327(3)
Portal Requirements/Bug Management and Traceability with Scarab
330(5)
Scarab
330(21)
Scarab Tasks
331(4)
Portal Administration with JMX
335(9)
Portal Collaboration with JSPWiki
344(2)
Summary
346(1)
Chapter 12: Unifying the Enterprise Application
Space Through Web Start
347(1)
Rich Clients
348(1)
Java Web Start
349(2)
Getting Started
351(7)
Downloading and Installing Java Web Start
351(1)
Configuring the Web Server
351(1)
Creating the JNLP File
352(2)
[jnlp] Attributes 353
[information] Subelement 353
[security] Subelement 353
[resources] Subelement 353
[application-desc] Subelement 354
Application Packaging
354(1)
Client Invocation
354(2)
Code Signing
356(2)
Introductory Application
358(5)
Using JWS in Portal Implementations
363(9)
Use in a Web-based Portal
364(3)
Use in a Java Portal
367(5)
Java swing
367(1)
Java-based Portal Examples
368(4)
Summary
372(1)
References 373(2)
Index 375

Supplemental Materials

What is included with this book?

The New copy of this book will include any supplemental materials advertised. Please check the title of the book to determine if it should include any access cards, study guides, lab manuals, CDs, etc.

The Used, Rental and eBook copies of this book are not guaranteed to include any supplemental materials. Typically, only the book itself is included. This is true even if the title states it includes any access cards, study guides, lab manuals, CDs, etc.

Rewards Program