Apr 23, 2008

PHP in Action Tutorial Download

PHP in Action Objects, Design, Agility
PHP tutorial Ebooks-Content :
Part 1 Tools and concepts 1
1 PHP and modern software development 3
2 Objects in PHP 18
3 Using PHP classes effectively 40
4 Understanding objects and classes 65
5 Understanding class relationships 87
6 Object-oriented principles 102
7 Design patterns 123
8 Design how-to: date and time handling 152

Part 2 Testing and refactoring 187
9 Test-driven development 189
10 Advanced testing techniques 210
11 Refactoring web applications 232
12 Taking control with web tests 269

Part 3 Building the web interface 293
13 Using templates to manage web presentation 295
14 Constructing complex web pages 325
15 User interaction 338
16 Controllers 356
17 Input validation 377
18 Form handling 413
19 Database connection, abstraction, and configuration 432

Part 4 Databases and infrastructure 449
20 Objects and SQL 451
21 Data class design 470

Download this books

Apr 22, 2008

Java EE and .Net Interoperability: Integration Strategies, Patterns, and Best Practices


Structure of the Book:


This book covers two main constituents of any Java EE.NET integration. The first one pertains to the integration type such as synchronous or asynchronous, outlining how individual Java and .NET components can integrate using their diverse technology set. The second constituent relates to the quality of service requirements, such as security, reliability, and scalability, essential to meet a Service Level Agreement (SLA) across the heterogeneous enterprise environment. If you take a closer look at the book structure, you'll notice that the book represents a catalog of integration strategies that adheres to the following format:
  • Strategy Name The strategy has a unique name that reflects its objective.
  • Problem space Each strategy aims to address a specific Java EE.NET interoperability problem. Asynchronous reliable integration is an example of such a problem.
  • Solution This part of the strategy details a strategy design and outlines technology choices.
  • Benefits and Limitations Any interoperability strategy has its pros and cons that are highlighted here. For example, ease of maintenance or scalability are common benefits of some of the strategies.
  • Related Patterns Industry patterns such as Core J2EE Patterns are used throughout this book to bring those that are familiar to you into the scope of Java EE.NET integration. Are there similar resources in the .NET space?
  • Example Throughout the book, use cases from the WS-I Supply Chain Management Application (SCMA) are utilized to demonstrate how to implement a strategy. Most of the strategies have two sets of samples corresponding to the Java.NET and .NETJava communication.
The strategy catalog comprises the core of this book and can be used as a reference manual on Java EE.NET interoperability. Before delving into the strategy discussion, it is helpful to review the fundamentals of the Java EE and .NET platforms. The emphasis in reviewing these platforms will focus on their interoperability characteristics. Both platforms expose APIs to develop component-based, loosely coupled integration points. The platform overview is followed by Part II, "Synchronous Integration Solutions," which discusses common business scenarios and reasons for synchronous integration. The de facto technology to integrate disparate applications is based on Web services. Chapter 4, "Web Services for Synchronous Integration," demonstrates how a .NET application can discover and access a Web service implemented in Java and vice versa. The synchronous integration discussion continues with the .NET Remoting technology that remains an alternative to Web services and is adopted by open source and various commercial solutions. The .NET Remoting is shipped as part of the Microsoft Indigo Services. Chapter 6, "Resource Tier Synchronous Integration," details database and legacy integration. It demonstrates a simple strategy to build a Data Access Layer to connect to heterogeneous RDMSs, such as MySql and SQL Server. All in all, synchronous integration strategies are useful if you have two systems with tight coupling or strong dependencies. The industry, however, is heavily leaning toward asynchronous application integration.

Asynchronous integrations between Java EE and .NET systems are easier to maintain, less brittle, and tend to be more scalable. Therefore, the majority of the strategies in this book fall under Part III, "Asynchronous Integration Solutions." The first two strategies, Automatic Callback and Response Polling, are based on Web services technologies. They fundamentally differ from the approach taken in the previous section. The main goal of these strategies is to factor out remote calls from the rest of the request processing. The response can be sent via the callback or polling technique. Chapter 9, "Messaging," unveils five distinct strategies that help to automate and streamline the Java EE and .NET system integration around MOM, SMTP, and Enterprise Service Bus technologies. Reliable message delivery is the key differentiator of these strategies. Similar to the previous section, Chapter 10, "Resource Tier Asynchronous Integration," shows how to asynchronously communicate with back-end resources.

Part IV of the book addresses "Quality of Services" for interoperability. It incorporates several chapters that discuss how to implement a secure, reliable, interoperable Java EE.NET environment. This section encompasses distributed transactions and management of a heterogeneous environment, but most importantly it provides best practices on the enterprise architecture that mitigates security, manageability, availability, and reliability risks. The table here outlines strategies listed in this catalog.

Aside from the integration and systemic quality strategies, this book discusses how to deploy a .NET application under a Java EE application server and how to manually port a .NET application to Java. These strategies are included in Chapter 16, "Migrating .NET Applications to Java." Each chapter of this book intends to give the reader an overview of the technologies and concepts used by individual strategies. Messaging, resource pooling, threading, and asynchronous programming models differ under the Java EE and .NET platforms. Understanding these programming models under each platform enables the reader to effectively apply strategy within a specific domain.

Download This Books

THE Java™ EE 5 Tutorial


About This Tutorial:

THE Java™ EE 5 Tutorial is a guide to developing enterprise applications for the Java Platform, Enterprise Edition 5 (Java EE 5). Here we cover all the things you need to know to make the best use of this tutorial.

Who Should Use This Tutorial:

This tutorial is intended for programmers who are interested in developing and deploying Java EE 5 applications on the Sun Java System Application Server Platform Edition 9.

How to Read This Tutorial

The Java EE 5 platform is quite large, and this tutorial reflects this. However, you don’t have to digest everything in it at once. The tutorial has been divided into parts to help you navigate the content more easily.
This tutorial opens with an introductory chapter, which you should read before proceeding to any specific technology area. Chapter 1 covers the Java EE 5 platform architecture and APIs along with the Sun Java System Application Server Platform Edition 9.
When you have digested the basics, you can delve into one or more of the five main technology areas listed next. Because there are dependencies between some of the chapters, Figure 1 contains a roadmap for navigating through the tutorial.

The web-tier technology chapters cover the components used in developing the presentation layer of a Java EE 5 or stand-alone web application:
• Java Servlet • JavaServer Pages (JSP) • JavaServer Pages Standard Tag Library (JSTL) • JavaServer Faces • Web application internationalization and localization

The web services technology chapters cover the APIs used in developing

standard web services:
• The Java API for XML-based Web Services (JAX-WS) • The Java API for XML Binding (JAXB) • The Streaming API for XML (StAX) • The SOAP with Attachments API for Java (SAAJ) • The Java API for XML Registries (JAXR)

The Enterprise JavaBeans (EJB) technology chapters cover the components

used in developing the business logic of a Java EE 5 application:
• Session beans
• Message-driven beans

The Persistence technology chapters cover the Java Persistence API, which

is used for accessing databases from Java EE applications:
• Introduction to the Java Persistence API
• Persistence in the Web Tier
• Persistence in the EJB Tier
• The Java Persistence Query Language

The platform services chapters cover the system services used by all the

Java EE 5 component technologies:
• Transactions
• Resource connections
• Security
• Java Message Service
• The Connector architecture

After you have become familiar with some of the technology areas, you are
ready to tackle the case studies, which tie together several of the technologies discussed in the tutorial. The Coffee Break Application (Chapter 37) describes an application that uses the web application and web services APIs. The Duke’s Bank Application (Chapter 38) describes an application that employs web application technologies, enterprise beans, and the Java Persistence API.

Finally, the appendix contains auxiliary information helpful to the Java EE 5
application developer:
• Java encoding schemes (Appendix A)

Download The Java EE 5 Tutorial


Rapid J2EE Development: An Adaptive Foundation for Enterprise Applications


How This Book Is Organized:
The contents of this book are broken up into four logical parts:

Part I: Adaptive Processes
  • Chapter 1: A J2EE Tutorial Adaptive Foundation. This chapter introduces the concepts behind the creation of an adaptive foundation for rapid development.
  • Chapter 2: Rapid Application Development. Techniques commonly associated with the rapid development of software, including rapid development languages, approaches to prototyping, and timeboxed development methods, are described in this chapter.
  • Chapter 3: Embracing Adaptive Methods. Chapter 3 explores the importance of lightweight development methodologies that incorporate an iterative approach to building software.
Part II: Agile Architectures
  • Chapter 4: Designing for Rapidity. This chapter looks at how the choices we make at design time have implications for the project's timeframe.
  • Chapter 5: Modeling Software. The topic of this chapter is the use of models for building software architectures, and it examines how UML diagrams enable the communication, validation, and exploration of system designs.
  • Chapter 6: Code Generation. We discuss the merits of passive and active code generation. The use of XDoclet for generating boilerplate code artifacts for Enterprise JavaBeans is illustrated by example, along with the use of Apache's Velocity template engine.
  • Chapter 7: Rapidity and the Database. The repetitive nature of data access code makes it a prime candidate for code generation. This chapter looks at the time savings to be had from the use of the code generation tool Middlegen, as well as at how object-relational mapping products can ease the process of mixing object-oriented technology with that of relational database technology.
  • Chapter 8: Model-Driven Architecture. This chapter brings together models with code generation techniques to explore the MDA paradigm. The use of the open source MDA tool AndroMDA is covered by example.

Part III: Rapid Languages

  • Chapter 9: Scripting. This chapter looks at the benefits of scripting languages and introduces the Java-compatible scripting language Jython.
  • Chapter 10: Working to Rule. This chapter examines the benefits of using rule engines to maintain business logic. The open source, expert system shell Jess is introduced as an example of a rule-based language.
  • Chapter 11: Aspect-Oriented Programming. AOP provides new language constructs for modularizing crosscutting concerns. The result is a powerful mechanism for applying changes dynamically to an application. This chapter introduces the AOP language AspectJ and the AOP framework AspectWerkz.

Part IV: Dynamic Environments

  • Chapter 12: Optimal Builds. Chapter 12 addresses the importance of having a highly efficient and optimized build process in place for conducting rapid development.
  • Chapter 13: The Integrated Development Environment. We examine the need to invest in sophisticated and integrated development tools. The open source developer's workbench Eclipse is introduced as an example of a suitable J2EE development environment.
  • Chapter 14: Test-Driven Development. The practice of test-driven development is key to defining an approach that is resilient to changing requirements and designs. This chapter looks at the importance of constructing an automated unit test suite and covers the JUnit framework for writing unit tests as well as the use of mock objects in testing.
  • Chapter 15: Efficient Quality Assurance. The final chapter looks at using automated testing tools for undertaking functional and performance testing. The open source tools HttpUnit and Apache JMeter are covered by example.

Download This Books

Apr 21, 2008

The Java 2 Platform, Enterprise Edition (J2EE)

Overview of the Book and Technology:

The Java 2 Platform, Enterprise Edition (J2EE) defines the standard for developing n-tier enterprise applications using Java. J2EE simplifies enterprise applications by basing them on standardized modular components and providing for those components a complete set of services that handle the complexities automatically.

N-tier applications are difficult to build. Usually building such an application
requires people with a variety of skills and an understanding of both modern and legacy code and data. Enterprise applications typically use heterogeneous approaches to systems development and require the integration of tools from a variety of vendors and the merging of disparate application models and standards.



This book covers the various components of J2EE that are used to build enterprise
n-tier applications, including the following:
  • JavaServer Pages (JSP)
  • Enterprise JavaBeans (EJB)
  • Java Messaging Service (JMS)
  • Java Naming and Directory Interface (JNDI)
  • Java Authentication and Authorization Service (JAAS)
  • Java Connector Architecture (JCA)
  • And more . . .

The author team recommends that the chapters in this book be read in order, as each chapter builds upon previous chapters. If reading the chapters in order is not viable, reading a particular section in a single sitting may be a better choice.

Contents :
Part I: Introduction
Chapter 1: Understanding Java and the J2EE Platform
Chapter 2: Reviewing XML Fundamentals
Chapter 3: Introducing Application Servers
Chapter 4: Understanding Remote Method Invocation

Part II: The Presentation Tier
Chapter 5: Studying Servlet Programming
Chapter 6: Going Over JSP Basics
Chapter 7: Using JSP Tag Extensions

Part III: The Enterprise Information System Tier
Chapter 8: Working with JavaMail
Chapter 9: Understanding the Java Messaging Service
Chapter 10: Introducing Java Transactions
Chapter 11: Examining JNDI and Directory Services
Chapter 12: Understanding Java Authentication and Authorization Services
Chapter 13: Exploring Java Cryptography Extensions

Part IV: The Service Tier
Chapter 14: Understanding EJB Architecture and Design
Chapter 15: Explaining Session Beans and Business Logic .
Chapter 16: Working with Entity Beans
Chapter 17: Using Message-Driven Beans

Part V: The Data Tier
Chapter 18: Reviewing Java Database Connectivity
Chapter 19: Understanding the J2EE Connector Architecture

Part VI: Web Services
Chapter 20: Introducing Web Services
Chapter 21: Digging Deeper into SOAP, WSDL, and UDDI
Chapter 22: Understanding J2EE Web Services

Part VII: Patterns
Chapter 23: Reviewing Presentation-Tier Patterns
Chapter 24: Working with Service-Tier Patterns
Chapter 25: Using Data-Tier Patterns

Part VIII: Advanced Topics
Chapter 26: Exploring Frameworks and Application Architecture
Chapter 27: Using ANT to Build and Deploy Applications
Chapter 28: Creating High-Performance Java Applications
Appendix A: Airline Reservations Business Case
Appendix B: Magazine Publisher Business Case
Appendix C: Additional Reading and References

Download This Books and tutorials