BPEL Cookbook: Best Practices for SOA-based integration and composite applications development


BPEL Cookbook: Best Practices for SOA-based integration and composite applications development
eBook: $26.99
Formats: PDF, PacktLib, ePub and Mobi formats
$13.50
save 50%!
Print + free eBook + free PacktLib access to the book: $71.98    Print cover: $44.99
$58.49
save 19%!
Free Shipping!
UK, US, Europe and selected countries in Asia.
Also available on:
Overview
Table of Contents
Author
Support
Sample Chapters
  • Real-world BPEL recipes for SOA integration and Composite Application development
  • Combining business process management and web services orchestration
  • Techniques and best practices with downloadable code samples from ten real-world case studies

Book Details

Language : English
Paperback : 188 pages [ 235mm x 191mm ]
Release Date : July 2006
ISBN : 1904811337
ISBN 13 : 9781904811336
Author(s) : Arun Poduval, Doug Todd, Harish Gaur, Jeremy Bolie, Jerry Thomas, Kevin Geminiuc, Lawrence Pravin, Markus Zirn, Matjaz B. Juric, Michael Cardella, Praveen Ramachandran, Sean Carey, Stany Blanvalet, The Hoa Nguyen, Yves Coene
Topics and Technologies : All Books, Enterprise Products and Platforms, Oracle Fusion Middleware, Architecture & Analysis, BPEL, Enterprise, Oracle, SOA, Web Services


Table of Contents

Dismantling SOA Hype: A Real-World Perspective
Chapter 1: Extending Enterprise Application Integration
Chapter 2: Service-Oriented ERP Integration
Chapter 3: Building the Service Value Chain
Chapter 4: A Services-Oriented Approach to Business Rules Development
Chapter 5: Building Rich Internet Applications for Workflow and Process Monitoring
Chapter 6: Building BPEL Processes on the Fly
Chapter 7: Making BPEL Processes Dynamic
Chapter 8: Using WSIF for Integration
Chapter 9: BPEL with Reliable Processing
Chapter 10: Managing a BPEL Production Environment
Index
  • Chapter 1: Extending Enterprise Application Integration
    • Case Study Background
    • Implementing the Customer Details Management Module
      • Step 1: Expose TIBCO and webMethods Processes as Web Services
      • Step 2: Orchestrate Web Services
      • Step 3: Add Exception Management Capability
      • Step 4: Secure Business Communication
        • Outbound Security
        • Inbound Security
      • Step 5: Centralize Logging and Error Handling
    • Conclusion
  • Chapter 2: Service-Oriented ERP Integration
    • Functional Scenario
    • Solution Overview
    • Integrating PeopleSoft CRM with Oracle ERP
      • Step 1: Design the BPEL Process
      • Step 2: Configure OA Adapter
      • Step 3: Configure PeopleSoft
        • Configure the PeopleSoft Node to Interact with the BPEL Process
        • Establish Relationship between EIP and Node
        • Create Transformation Code
        • Linking WSDL_ORDER Apps Engine Program with the Node
    • Conclusion
  • Chapter 3: Building the Service Value Chain
    • Overview of the ESA Network
    • Designing a Web Services Network
      • Setting Up the Interface Relationship
      • Simplifying Partner Enablement
      • Creating a Central Service Registry
      • Providing Self-Service Monitoring
    • Conclusion
  • Chapter 4: A Services-Oriented Approach to Business Rules Development
    • Separating Rules from Processes
      • Business Process Layer
      • Web Service Layer
      • Rules Layer
    • Development and Maintenance
      • Create Rules in a Ruleset
      • Expose the Ruleset as a Web Service
      • Invoke the Ruleset Web Service from BPEL
      • Maintenance Phase
    • Executing JRules with Oracle BPEL Process Manager
    • Conclusion
  • Chapter 6: Building BPEL Processes on the Fly
    • The Approach
    • Sample Business Scenario
      • Process Creation
      • Storing the Definition in the Database
    • Dynamically Deploying BPEL
      • XQuery Processing
      • Dynamic Deployment with Ant
    • Conclusion
  • Chapter 7: Making BPEL Processes Dynamic
    • Dynamic Binding Overview
    • Building Dynamic BPEL Processes
    • Understanding the DynamicPartnerLink Sample
    • Creating a Dynamic BPEL Process
    • Increasing the Effectiveness of Dynamic Processes
      • Eliminating Address Dependency at Run Time
        • WSDL-Independent Services
      • Invoking Multiple Dynamic Processes
    • Conclusion
  • Chapter 8: Using WSIF for Integration
    • Understanding WSIF
      • Java-to-XML Bindings
        • XML Façades
        • Developing the Java Class
        • Defining WSIF Bindings in WSDL
        • WSIF Binding for Java Class
        • Testing the Example
    • Exception Handling
      • Define User Exception in Java
      • Throw Java Exception
      • Define Fault in WSDL
      • Define WSIF Binding for Exception
      • Custom Exception Serializers
      • Custom Java Serializers
    • WSIF Binding for EJBs
      • WSDL for Session Bean
      • Add Partner Link Type
      • Supplement BPEL Process
      • Add WSIF Binding for EJB
    • Generating WSIF Bindings from JDeveloper
    • Conclusion
  • Chapter 9: BPEL with Reliable Processing
    • Business Scenario
    • Architecture
    • Building the Sample
      • Creating the Database Objects
      • Creating the DB Polling Process
      • Init Block
      • Processing
        • Process Flow
        • Exception Handling
        • Reusability
      • Reply/Report Final Status
      • Logging
      • Rethrow Fault
    • Conclusion
  • Chapter 10: Managing a BPEL Production Environment
    • BPEL Process Manager API and Dehydration Store
    • Archiving Completed Instances
      • Archiving with EJB
      • Archiving with PL/SQL
    • Deleting Callback and Invoke Messages
    • Deleting Stale Instances
    • Rerunning Failed Instances
    • Conclusion

Arun Poduval

Arun Poduval works as a Technical consultant at Midwave Corporation specialized in SOA/Middleware.


Doug Todd

Doug Todd is CTO of Enterra Solutions in Yardley, PA. He has more than 20 years of experience in systems architecture, applications architecture, systems integration, and applications integration with major corporations. Todd is responsible for Enterra's overall IT strategy and tactical implementation, enterprise information architecture, and technology product offerings. Doug Todd worked on Chapter 5.


Contact Doug Todd


Harish Gaur

Harish Gaur has more than 13 years of experience in the enterprise software industry including 7+ years at Oracle. He is currently the Director of Product Management for Fusion Middleware at Oracle. In his current role, he works closely with strategic customers implementing SOA & BPM using Oracle Fusion Middleware. He is co-author of BPEL Cookbook (2007) and Fusion Middleware Patterns (Sept 2010)

Before Oracle, he worked as a Solution Specialist with Vitria Technology educating customers about the benefits of Business Process Management. Prior to that, he helped Fortune 500 companies architect scalable integration solutions using EAI tools like webMethods and CrossWorlds (now IBM).

Harish holds an engineering degree in Computer Science and is an MBA from Haas School of Business, UC Berkeley.

Contact Harish Gaur


Jeremy Bolie

Jeremy Bolie is a Senior IT Manager at QCT, managing the custom applications and Documentum development team. Jeremy has over 10 years of experience with Java and Oracle technologies, and has been involved with web services and Service-Oriented Architectures since the late 1990s. Jeremy Bolie and Michael Cardella worked together on Chapter 9.


Contact Jeremy Bolie


Jerry Thomas

Jerry Thomas is Chief Architect at CenterStone Software, which helps many of the world's largest organizations automate and manage their real estate, facilities, personnel, assets, leases, and workplace operations more efficiently. Thomas focuses on CenterStone's enterprise workplace management product and web services, BPEL, and system infrastructure. Prior to CenterStone, Thomas worked as a consultant and held principal development positions at Riverton, ONTOS, and Hewlett-Packard. Jerry Thomas wrote Chapter 6 for this cookbook.


Contact Jerry Thomas


Kevin Geminiuc

Kevin Geminiuc currently works as a senior software architect in Denver. Over the last 15 years, Kevin has worked as a systems architect, technical manager, developer, and hardware engineer. Kevin's technical interests include SOA, RFID, AVL, and genetic software. Kevin contributed Chapter 4 for this book.


Contact Kevin Geminiuc


Lawrence Pravin

Lawrence Pravin is the Product Manager, Process Integration Packs, Sierra Atlantic Inc. Process Integration Packs deliver end-to-end business process integration solutions between enterprise applications. He has over 10 years of rich experience in packaged applications, and has deep integration expertise with Oracle, PeopleSoft, Siebel, and SAP applications. Lawrence Pravin worked on Chapter 2 for this book.


Contact Lawrence Pravin


Markus Zirn

Markus Zirn is a Senior Director of Product Management for Oracle Fusion Middleware. In this role he heads the Strategic Customer Program, where he works with Oracle's leading and most innovative middleware customers. He has been part of the Enterprise Software industry for more than 10 years, including roles as Vice President of Product Marketing and part of the founding team of QUIQ and as a Management Consultant of Booz Allen & Hamilton's Silicon Valley High Tech Practice. Markus' passion for Service-Oriented Architecture (SOA) and BPEL stems both from practical experience designing and optimizing business processes as part of process reengineering projects and from being part of the advent of "software as a service" before web services became mainstream. He holds a Masters of Electrical Engineering from the University of Karlsruhe and is an alumnus of the Tripartite program, a joint European degree from the University of Karlsruhe, Germany, the University of Southampton, UK, and ESIEE, France.


Contact Markus Zirn


Matjaz B. Juric

Matjaz B. Juric holds a PhD in Computer and Information Science. He is a Full Professor at the University of Ljubljana and head of the Cloud Computing and SOA Competence Centre (http://www.soa.si). Matjaz is a Java Champion, IBM Champion, and Oracle ACE Director. He has more than 15 years of work experience. He has authored/co-authored "Do More with SOA Integration, WS-BPEL 2.0 for SOA Composite Applications, Oracle Fusion Middleware Patterns, Business Process Driven SOA using BPMN and BPEL, and Business Process Execution Language for Web Services "(English and French editions). He has also authored/co-authored "BPEL Cookbook: Best Practices for SOA-based integration and composite applications development" (award for best SOA book in 2007 by SOA World Journal), "SOA Approach to Integration, Professional J2EE EAI, Professional EJB, J2EE Design Patterns Applied", and .NET Serialization Handbook. He has published chapters in More Java Gems (Cambridge University Press) and in Technology Supporting Business Solutions (Nova Science Publishers). He has also published in several journals and magazines and presented at conferences. Matjaz has been involved in several large-scale projects. In cooperation with the IBM Java Technology Centre, he worked on performance analysis and optimization of RMI-IIOP, an integral part of the Java platform.





Michael Cardella

Michael Cardella is a Staff Engineer at Qualcomm CDMA Technologies (QCT). Michael works in the custom applications development team, primarily on web-service- and business-process-related applications. Previously he served as Principal Architect for a leading web services security and management product.


Contact Michael Cardella


Praveen Ramachandran

Praveen Ramachandran works as a Technical Consultant for Midwave Corporation focusing on BPEL and other EAI technologies.

Midwave is a rapidly growing firm that specializes in building highly available and highly secure information technology systems for medium to large companies and government agencies in seven midwestern states. Midwave is an Oracle Partner.

Contact Praveen Ramachandran


Sean Carey

Sean Carey is a Software Architect at SPS Commerce, a leader in hosted EDI. Sean has over seven years of experience in mission-critical e-commerce implementations, and 15 years of industry experience in software design. Sean Carey gave us Chapter 7.

Contact Sean Carey


Stany Blanvalet

Stany Blanvalet is a BPEL and J2EE consultant. Previously, working as a Java EE architect, Stany introduced and administered Belgacom's BPEL-based DSL provisioning application, a mission-critical BPEL production system. He is a contributor to the Jaisy-ORABPEL Interface project , an open-source JMX monitoring tool for Oracle BPEL Process Manager. Stany Blanvalet contributed Chapter 10.

Contact Stany Blanvalet


The Hoa Nguyen

The Hoa Nguyen currently works for the SDC subsidiary of SpaceBel SA in Brussels as senior software engineer. His main interests are J2EE, web services, and workflow development with BPEL. Since 2001, he has been one of the lead engineers of the SSE project team at SpaceBel and is also in charge of SSE software releases and on-site SSE software installations at ESA. The Hoa Nguyen and Yves Coene contributed Chapter 3.

Contact The Hoa Nguyen


Yves Coene

Yves Coene currently works for SpaceBel SA in Brussels as Project Manager. He has 15 years of experience in aerospace software projects such as Ariane 5, the International Space Station, F16 MLU, and various other projects for the European Space Agency. Since 2001, he and his team have been responsible for the SSE project for ESA in Frascati, Italy.

Contact Yves Coene

Sorry, we don't have any reviews for this title yet.

Code Downloads

Download the code and support files for this book.


Submit Errata

Please let us know if you have found any errors not listed on this list by completing our errata submission form. Our editors will check them and add them to this list. Thank you.

Sample chapters

You can view our sample chapters and prefaces of this title on PacktLib or download sample chapters in PDF format.

Frequently bought together

BPEL Cookbook: Best Practices for SOA-based integration and composite applications development +    Blender Cycles: Lighting and Rendering Cookbook =
50% Off
the second eBook
Price for both: $39.00

Buy both these recommended eBooks together and get 50% off the cheapest eBook.

What you will learn from this book

In the Packt book Business Process Execution Language for Web Services by Matjaž Juric, we learnt about the building blocks and how these technologies could be used to build a simple SOA solution. As organizations increase their SOA footprint, IT Managers, Architects, and developers are starting to realize that the impact of SOA on IT and business operations can be immense. After having gained confidence with web services, they want to take it to the next level. However, adopters are challenged with some basic questions – How do I SOA-enable my existing integration investment? Can I build flexible and agile business processes? How can I administer my SOA environment without spending a fortune? There have been various best practices defined around SOA, but to date these have been somewhat abstract and lacking a real-world basis. The IT community is looking for real-world examples; examples of how other companies are embarking on an SOA initiative and how to apply that industry learning to their own projects.

What makes this a Cookbook? After you have been exposed to the different ingredients (BPEL, WSDL, and web services), this book takes the adventure to the next level by helping you cook new recipes (SOA applications) using efficient kitchen techniques (best practices). 10 SOA practitioners have gotten together to share their SOA best practices and provide practical viewpoints to tackle many of the common problems SOA promises to solve. Their recommendations are based on projects in production; their existing projects could be your next ones. Through this process you’ll learn the techniques and gain the confidence to create and deliver the recipe that’s right for your particular situation.

Chapter 1 focuses on a very common business problem: siloed applications and segregated data glued together using proprietary integration solutions. How can we best leverage SOA to add value on top of existing integration infrastructure? By service-enabling existing data integration processes, business processes could be easily automated by orchestrating underlying services. Infosys, a leading systems integrator, has helped many of its customers leverage their existing EAI investment, and here Praveen Chandran and Arun Poduval show you how it does it. In this chapter, they take an example of broken customer data synchronization between Siebel and SAP and outline a strategy to automate this process by integrating with proprietary integration solutions like TIBCO and webMethods.

Driven by the business requirements of different departments, countries, and subsidiaries, many organizations end up with multiple ERP systems. The result is data fragmentation and manual processes. This, in turn, leads to poor customer service and loss of revenue. How can you address this problem without re-architecting the entire solution? In Chapter 2, Sierra Atlantic, a leading consulting firm with specialization in the integration technologies, encountered similar issue with its client. In this chapter, Lawrence Pravin, Architect at Sierra Atlantic, takes an example of a broken sales order creation process. He walks you through a step-by-step approach to automate it across PeopleSoft HR and Oracle E-Business Suite using BPEL in a service-oriented approach.

Not all integrations are limited within the enterprise. Processes interact with applications, people, and partners. You might have heard the term Business-to-Business (B2B) frequently in the past few years. How can organizations build a network of services spanning multiple organizations? The European Space Agency built such a network of web services across 20+ partners in 9 different countries. The primary purpose of this network is to offer Earth Observation and Geographic Information System services to consumers. Chapter 3 presents an initial strategy of how to architect and design a service oriented partner-friendly network using web Services and BPEL for orchestration. The focus is on four important aspects of network design: Defining partner relationships, enabling partner provisioning, offering a central registry of available services, and empowering partners and end-users.

Organizations have processes and processes have rules. Processes need to be automated. Rules need to be defined intuitively. BPEL automates process and a Rules Engine automates policies. These rules essentially drive the processes. IT organizations have so far struggled to delineate business processes from rules leading to operational inconsistency and duplication. Policy Studies Inc. provides an approach to segregate rules from processes and offers a blueprint to expose rules as services for building cleaner applications. Using BPEL and a rules engine, PSI has built a shared services platform to perform Medicare eligibility processing for different states. Kevin Geminiuc, former architect at PSI, explains in Chapter 4 the development strategy to integrate BPEL with a rules engine resulting in a solution that is more agile and flexible. With this approach, it is possible to change a business process without touching policies. Policies can be changed graphically without affecting the business processes.

As we discussed before, processes interact with applications, people, and partners. How can we build an application that enables business users to interact with processes seamlessly? Applications should be built to enhance end-user experience. Enterra Solutions marries the world of SOA with the world of Web 2.0. In Chapter 5, Doug Todd, CTO of Enterra, presents a strategy to extend BPEL workflow in a rich user interface and build an application that not only automates processes but also ups the ante in terms of aesthetic appeal. It also represents a unique approach to customize a platform, which is SOA ready.

BPEL provides an opportunity to bring business and IT together. Business can help define the key processes and IT provides the necessary infrastructure to run and automate those processes. Some might argue that BPEL is too technical to be handed over to analysts for process modeling. CenterStone software, a provider of workplace management solutions, addressed this very concern by building a custom designer geared towards property managers to define processes for workplace management. CenterStone devised an approach to convert the processes designed using this custom designer into BPEL processes. Chapter 6 will "inspire" you to build applications, which will facilitate tighter integration with your business counterparts. Jerry Thomas, Chief Architect at CenterStone Software, takes you into the guts of this approach by explaining how process definition can be stored in the database and how XQuery and Saxon parser can help you to build an executable BPEL process from its higher-level process definition.

The benefit of agility has been belabored exhaustively in the industry. We decided to go back to basics and offer you a very simple technical insight into how SOA enables business agility. Agility is directly correlated to the ability to quickly respond to business changes. By using dynamic partner links, processes can effectively change their behavior to adapt themselves to external business conditions and thereby offer flexibility. SPS Commerce, provider of hosted EDI solutions, has built an SOA-enabled platform for enabling seamless exchange of EDI documents between different entities. In Chapter 7, SPS Commerce will explain the significance of dynamic partner links and walk you through a step-by-step guide to implement partner links in a sample loan-processing scenario. This approach will enable you to quickly add/delete service providers participating in a business process without actually changing the process.

Organizations operate in a heterogeneous environment. Applications are built using different technologies, from different vendors and different implementers. As you start building a process, you will realize that the underlying applications are not necessarily web services. More often than not, they are either .NET applications or applications built using J2EE i.e. either purchased applications or home grown Java Applications. Matjaž Juric, author of the Packt book ‘Business Process Execution Language using Web Services’ presents in Chapter 8 a strategy to integrate with Java resources using Web Services Invocation Framework (WSIF). Matjaž, professor of Computer Science at the University of Maribor, argues that although it is possible to expose these applications as web services and use them in the process, accessing these resources natively can improve the application performance significantly.

The success of any service in the SOA world depends upon its degree of reusability, which in turn, depends upon the quality of service offered. As you run your SOA applications, many things could go wrong. Network connections may be lost, participating applications may go down, incoming data might be corrupted, etc. These external interruptions can degrade the quality of a particular application. How can you design an application that can withstand all these failures and still emerge as a winner? Qualcomm encountered this specific issue while leveraging SOA to build an Entitlement Provisioning application. Presented in the fashion of a step-by-step tutorial, Jeremy Bolie, IT Manager and Michael Cardella, Architect at Qualcomm, shares with you in Chapter 9 a strategy to design a reusable BPEL process capable of offering any service capable of defeating rectifiable errors.

Chapter 10, which is the last chapter of the book, deals with an important aspect of any application – maintenance. More dollars are spent in maintenance and enhancement of an application than the combined amount spent during the design, development, and testing phases of any application. Once the application is deployed into production, the real work begins. Belgacom, one of the leading telecommunications companies in Belgium, has automated the DSL service provisioning and diagnosis using BPEL. Having been in production for a long time, Belgacom has vast practical experience in managing a BPEL infrastructure. In this chapter, Stany Blanvalet, former architect at Belgacom, explains various strategies for managing a BPEL production environment. This is a must read for all BPEL administrators.

In Detail

Service Oriented Architecture is generating a buzz across the whole IT industry. Propelled by standards-based technologies like XML, Web Services, and SOAP, SOA is quickly moving from pilot projects to mainstream applications critical to business operations. One of the key standards accelerating the adoption of SOA is Business Process Execution Language for Web Services (BPEL).

BPEL was created to enable effective composition of web services in a service-oriented environment. In the past two years, BPEL has become the most significant standard to elevate the visibility of SOA from IT to business level. BPEL is not only commoditizing the integration market, but it is also offering organizations a whole new level of agility – ability to rapidly change applications in response to the changing business landscape. BPEL enables organizations to automate their business processes by orchestrating services within and across the firewall. It forces organizations to think in terms of services. Existing functionality is exposed as services. New applications are composed using services. Communication with external vendors and partners is through services. Services are reused across different applications. Services are, or should be, everywhere!

This book is not just another generic set of Service Oriented Architecture (SOA) best practices with only general recommendations and advice: instead it’s a unique cookbook that shows you how SOA applications are built using best practices that are proven in 10 real-world scenarios.

The book consists of three sections. The first two sections will inspire you. They showcase real-life projects on BPEL-based integration and development of composite applications. You’ll see that SOA is a reality today, learn what successful implementations are like, and how SOA can work for you right now. It will encourage you to take a plunge into the world of services and test-drive SOA yourself. If you are already in the middle of an SOA implementation, these sections will offer you fresh insight into your current approach, help you to deal with specific business challenges, and make sure what you do is in line with the best practice.

The third section will equip you with BPEL techniques to build better SOA applications. These techniques represent the practical implementation of best practice, with code snippets ranging from development to administration of an SOA application. They are generic enough to be applied in any of your existing projects yet specific enough to enable you reap the full benefits from your SOA implementation.

 

"EDS is making use of BPEL as part of our Agile Enterprise Strategy. We use it internally and as part of our solution that we provide to our clients.

The real-life experiences in this book are an excellent way for you to understand how Service Oriented Architecture can work for you right now"
- J.R. Jesson, CTO, EDS Application Portfolio Development


"BPEL has emerged as the leading industry standard for Web services orchestration and coordination of business processes. This book offers a unique opportunity to learn from ten of the most advanced adopters of BPEL.

Listen to how your peers drive value from building composite services and putting them into business processes."
- Stephen D. Hendrick, Group Vice President, Application Development and Deployment Research, IDCar

Approach

Who this book is for

This book is aimed at architects and developers building applications in Service Oriented Architecture. The book presumes knowledge of BPEL, SOA, XML, web services, and multi-tier architectures.

Book Editors

Markus Zirn
Markus Zirn is a Senior Director of Product Management for Oracle Fusion Middleware. In this role he heads the Strategic Customer Program, where he works with Oracle's leading and most innovative middleware customers. He has been part of the Enterprise Software industry for more than 10 years, including roles as Vice President of Product Marketing and part of the founding team of QUIQ and as a Management Consultant of Booz Allen & Hamilton's Silicon Valley High Tech Practice. Markus' passion for Service-Oriented Architecture (SOA) and BPEL stems both from practical experience designing and optimizing business processes as part of process reengineering projects and from being part of the advent of "software as a service" before web services became mainstream. He holds a Masters of Electrical Engineering from the University of Karlsruhe and is an alumnus of the Tripartite program, a joint European degree from the University of Karlsruhe, Germany, the University of Southampton, UK, and ESIEE, France.

Harish Gaur
Harish Gaur has more than 10 years of experience in the enterprise software industry. He is currently the Group Product Manager for Fusion Middleware at Oracle. In his current role, he works closely with strategic customers implementing Service-Oriented Architecture using Oracle SOA technology. Harish's expertise in Service-Oriented Architecture (SOA) draws from an extensive hands-on experience with Business Process Management (BPM) and Enterprise Application Integration (EAI).

Before Oracle, he worked as a Solution Specialist with Vitria Technology educating customers about the benefits of Business Process Management. Prior to that, he helped Fortune 500 companies architect scalable integration solutions using EAI tools like webMethods and CrossWorlds (now IBM). Harish holds an engineering degree in Computer Science and is an MBA from Haas School of Business, UC Berkeley. He lives in Fremont, CA with his wife Swati and son Agastya.

Buy this book with Business Process Execution Language for Web Services 2nd Edition and get an amazing 25% off on your order!

Code Download and Errata
Packt Anytime, Anywhere
Register Books
Print Upgrades
eBook Downloads
Video Support
Contact Us
Awards Voting Nominations Previous Winners
Judges Open Source CMS Hall Of Fame CMS Most Promising Open Source Project Open Source E-Commerce Applications Open Source JavaScript Library Open Source Graphics Software
Resources
Open Source CMS Hall Of Fame CMS Most Promising Open Source Project Open Source E-Commerce Applications Open Source JavaScript Library Open Source Graphics Software