Thanks for agreeing to review this proposal. Our review questions are at the bottom of this document. If you wish to insert comments right on this document, please add them in 2nd color. Advanced Java: Internet Applications Third Edition Book Development Proposal Art Gittleman California State University, Long Beach Introduction The authors propose to draft an all-new third edition of the book: Advanced Java: Internet Applications with a new look, philosophical bent, and completely updated coverage of the latest Java APIs. Philosophy / Approach Extreme Programming (XP), Test-centered-design, and practical software development techniques using professional development tools will be strongly stressed in the book. Read the source, Luke. There are literally MILLIONS of lines of well-documented, open-source Java software available on the Internet. It seems prudent to leverage this trove of riches and encourage our students early on to download, read, and learn from well-written application software. To facilitate what might be a very unfamiliar process to many prospective consumers of this book; we have taken the liberty to include full source code for the Open-source Jetty JSP/Servlet web container along with a chapter in the Appendix that gives an architectural overview of the application. LJade One of the most frequently cited frustrations with the previous editions of Advanced Java: Internet Applications was the difficulty in obtaining and successfully installing the correct versions of the Sun Java SDK and other tools. We propose a novel solution to this problem. Our Linux Java Application Development Environment (LJADE) is a complete, stand-alone, CD-ROM-based software development environment. A student can insert the LJADE CD into any modern IBM-compatible PC and boot into a RAM-based software development environment (no local installation required) that contains all of the tools and utilities described in the text. The distribution is designed to permit students to save their work on a floppy diskette, a USB Flash device, NFS file server, or CVS repository. We plan to provide a web site dedicated to providing peer support to students using LJADE and lab technicians tasked with supporting the environment. The LJade CD ROM is really a revolutionary tool for teaching software development. To the best of our knowledge, there has never been a completely pre-configured, ready-to- run, software development environment provided with ANY text or trade programming book. The benefits to the instructor and students are substantial, for example: a) LJade greatly reduces (or eliminates) the amount work necessary by an instructor or technical staff to configure a lab to support a class based upon the book. b) Student productivity is enhanced by providing a set of high-quality, professional software development tools and detailed instruction in their use. c) Students can work at home (or virtually anywhere else) with the same tool set they use in the lab on their homework assignments. d) Eclipse is hot. It has become the industry standard in Java development in just a few years. Any text that incorporates its use would be perceived as being on the cuttingedge. The elevator pitch AJIE 3rd Edition will be focused on practical development Internet techniques using the Java 2 Enterprise Edition 1.4 platform, combining current commercial practice with appropriately sized doses of Computer Science theory. We will use the Java 2 Standard Edition 1.5, or 5, or Tiger, or whatever it is called, for the basic underlying Java. We intend to make AJIE 3rd edition as accessible to the working professional as the Computer Science student. It is our desire that AJIE 3rd edition be offered to trade in conventional bookstores. Target Audience We expect this book to be used in Junior / Senior level courses in advanced programming technology. Highly-motivated individuals will also find the book to be an excellent guide for self-paced learning in Internet-related Java technologies. In any case, a successful reader of the book should have a minimum of 1-2 years of programming experience in Java and be comfortable writing 100-200 line programs. Chapter Outline for the Third Edition 1. Introduction Objectives and philosophy 2. Overview of Java 2 Enterprise Edition 1.4 3. Development Methodologies Extreme Programming (XP) Why Unit Testing is important Why using a Source code control systems is good for you 4. Tools Linux/Java development environment CD (LJava) Eclipse Java Integrated Development Environment Ant Java build tool Concurrent Version System (CVS) revision control system ,JavaDoc – Documenting your classes jUnit – Unit testing tool/fixture 5. Application modeling Understanding the Enterprise Simple Entity-Relationship Modeling Just enough UML Writing a requirements specification 6. Java Server Pages & Web applications A Web page construction refresher Using the Tomcat JSP / Servlet container Adding dynamism to Web pages with JSP JSP Applied – Building a Blog 7. Servlets The JSP/Servlet connection Improving our Blog with Servlets 8. Tag Libraries What are they and why would you want to use them. The Java Standard Tag Library (JSTL) Writing your first Tag Library. Blog revisited – Enhancing our Blog with Tag Libraries 9. Model-View-Controller Design pattern A brief intro to design patterns and software engineering Type 1 vs. Type 2 Web applications Building a Type 2 Web application the hard way Introducing Struts – Type 2 made a bit easier. An Even Better Blog – Rewriting our Blog using Struts 10. Java Database Connectivity A practical guide to JDBC Using JDBC - Storing our Blog data in a Relational Database 11. Extensible Markup Language (XML) The Lingua Franca of the Internet Entities, Attributes, Schemas and DTDs 12. Web Services What are Web Services and what can I do with them? Simple Object Access Protocol (SOAP) Introducing Apache Axis Adding a Soap interface to our Blog 13. Authentication, Authorization and Accounting Java Authentication and Authorization Service (JAAS) Making our Blog private – Using JAAS to secure our Blog. 14. Enterprise-class Applications What makes an Enterprise-class application special? n-Tier applications Implementing business logic 15. Enterprise Java Beans (EJBs) Session, Entity, and Message Driven EJBs When NOT to use EJBs Writing a simple Session EJB Persisting application data with Entity Beans 16. Applying EJB Technology Simplifying EJB development with Xdoclet 17. Non-Browser application clients Writing a Blog desktop application with Eclipse (SWT) Appendices An introduction to J2SDK 1.5 Generics, Enumerated Types, Meta Data, and More Tom Jewett’s Database Primer An overview of Enterprise-Relationship modeling, Structured Query Language (SQL), and data normalization. Using Tomcat The J2EE reference JSP/Servlet container implementation The JBoss J2EE server – Sometimes, there is a free lunch The MySQL open-source SQL database engine Ant command reference JUnit for the testing-challenged CVS command reference JavaDoc revealed UML in 30 minutes Everything you ever wanted to know about Design Patterns The Linux/Java Student Development Environment Technical Reference Guide Exploring Jetty GENERAL INFORMATION- Advanced Java Name: (or business card) Address you want your honoraria mailed to: School you teach at: Social Security Number:______________________ Tel:_____________________________ FAX:_______________________________ Email:________________________________ Please list the courses you usually teach. Circle those for which you’re willing to review manuscripts: 1. 2. 3. 4. Course number ______ /Title/______________________________ for Advanced Java approx. annual enrollment:____ Pre-reqs for course: ___had an intro Java course ___had some other programming language course ___none What is the most recently-used textbook for this class? _Author:____________________________________ Title: _____________________________ Who else teaches this course besides you, and how can we reach them to review this or similar projects? Name Email or tel # Are you considering any writing yourself? If so, for what course? ======================================================= Thanks for agreeing to review this material. Please number your answers to correspond with these questions: 1. Overall, what (if anything) looks attractive and desirable about the proposal? 2. Overall, what (if anything) looks UN-attractive and UN-desirable about the proposal? 3.Coverage : What topics missing from the Table of Contents which would prevent you from considering this text for adoption in your advanced Java course?(write them right on the outline if you prefer) 4. The authors plan on using Java 1.5, or 5, or Tiger, or whatever it’s going to ultimately be called. Do you see any places where they have neglected to use new terms or nomenclature? 5. If you had to select one chapter to review to give you an idea of the overall quality of this project, what chapter(s) would it be? 6. If you could have the author change one thing about this project, what would it be? 7 What (if anything) is/was your opinion of the previous edition of this title? (our database indicates we sent you a copy in Spring 2002) Did you teach out of it and if not, do you know why not? 8. Bottom Line: does this sound like it’s headed in a direction to be a text you adopt or vote to adopt? Why or why not? You can mail it to us at Scott/Jones Publishing, attn: Richard Jones P.O. Box 696, El Granada CA 94018; or email it to jmcoston@charter.net