You are previewing Professional K2 blackpearl®.
O'Reilly logo
Professional K2 blackpearl®

Book Description

Built on Microsoft technologies including Microsoft Office SharePoint Server, SQL Server, Microsoft Office 2007, and Visual Studio 2005 and 2008, the latest K2 [blackpearl] release provides you with mature workflow management systems that can automate processes or pull together people, services, and systems. You'll get an introduction to workflow and business processes management, planning and administering a K2 infrastructure, and building processes and workflow.

Table of Contents

  1. Copyright
  2. About the Authors
  3. Credits
  4. Acknowledgments
  5. Introduction
    1. 0.1. Who This Book Is For
    2. 0.2. What This Book Covers
    3. 0.3. How This Book Is Structured
    4. 0.4. What You Need to Use This Book
    5. 0.5. Other Resources
    6. 0.6. Conventions
    7. 0.7. Source Code
    8. 0.8. Errata
    9. 0.9. p2p.wrox.com
  6. I. Introduction to K2 blackpearl and Process-Driven Applications
    1. 1. Introduction to BPM and the K2 Platform
      1. 1.1. Defining Business Applications and Workflow
        1. 1.1.1. A Very Brief History of Business Application Development
        2. 1.1.2. Clarifying the Definition of Workflow
      2. 1.2. K2 and the K2 Platform
        1. 1.2.1. K2 blackpearl: Three Key Features
        2. 1.2.2. Anatomy of the K2 Platform
      3. 1.3. Process-Driven Applications, Today and Tomorrow
      4. 1.4. Summary
      5. 1.5. Notes
    2. 2. Evolving Workflow and BPM into Process-Driven Applications
      1. 2.1. What Is BPM?
      2. 2.2. A New Type of Application
        1. 2.2.1. Designed and Delivered by IT
        2. 2.2.2. Business Collaboration with IT
        3. 2.2.3. Business Designed, IT Delivered
        4. 2.2.4. Business Empowered by IT
      3. 2.3. Approaching Process-Driven Application Design
      4. 2.4. Evolving Workflow: Two Scenarios
        1. 2.4.1. Scenario 1: SOX Compliance
        2. 2.4.2. Scenario 2: Design Review Process and LOB Integration
      5. 2.5. Summary
      6. 2.6. Notes
    3. 3. Designing Process-Driven Applications
      1. 3.1. The Typical Enterprise
      2. 3.2. Getting into a Process
      3. 3.3. Project Management Fundamentals
        1. 3.3.1. Methodology and Approaches
        2. 3.3.2. Linear vs. Nonlinear Processes
        3. 3.3.3. Project Roles
        4. 3.3.4. Time Management and Estimation
        5. 3.3.5. Set Expectations
      4. 3.4. Defining the Business Requirements
        1. 3.4.1. Process Questions
        2. 3.4.2. People Questions
        3. 3.4.3. Entities Questions
        4. 3.4.4. Evaluating Potential Processes
        5. 3.4.5. User Benefits and Process Considerations
          1. 3.4.5.1. Benefits to Users
          2. 3.4.5.2. Other Considerations
      5. 3.5. Summary
    4. 4. Process-Driven Applications and K2 blackpearl
      1. 4.1. A Closer Look at Key Benefits of the K2 Platform
        1. 4.1.1. Wizards and Templates
        2. 4.1.2. SmartObject and SmartObject Services
        3. 4.1.3. Collaborative Designers
        4. 4.1.4. SharePoint and Office Integration
        5. 4.1.5. The Event Bus
        6. 4.1.6. Reporting
        7. 4.1.7. Extending the Platform and the API
        8. 4.1.8. The API
      2. 4.2. Measuring Success and Achieving a High ROI
        1. 4.2.1. Identifying Key Performance Indicators (KPIs)
        2. 4.2.2. Calculating Your Return on Investment (ROI)
        3. 4.2.3. The Intangible Benefits
      3. 4.3. Orienting the Business to Process Improvement
      4. 4.4. Summary
      5. 4.5. Notes
  7. II. Architecture and Installation Options for K2 blackpearl
    1. 5. Planning an Effective Deployment
      1. 5.1. K2 Architecture
        1. 5.1.1. Client Components
          1. 5.1.1.1. K2 Designer for Visual Studio
          2. 5.1.1.2. K2 Designer for Visio and K2 Studio
        2. 5.1.2. Server Components
          1. 5.1.2.1. K2 Workspace and Web Components
          2. 5.1.2.2. K2 for SharePoint
          3. 5.1.2.3. K2 Integration with SQL Reporting Services
        3. 5.1.3. Architecture of the K2 Platform
          1. 5.1.3.1. The Hosted Servers and Services
            1. 5.1.3.1.1. Workflow
            2. 5.1.3.1.2. Workflow Log
            3. 5.1.3.1.3. Workflow Management
            4. 5.1.3.1.4. Environment Library
            5. 5.1.3.1.5. Management
            6. 5.1.3.1.6. Event Bus
            7. 5.1.3.1.7. Event Bus Scheduler
            8. 5.1.3.1.8. Event Bus Management
            9. 5.1.3.1.9. SmartFunction
            10. 5.1.3.1.10. SmartObjects
          2. 5.1.3.2. Core Servers
            1. 5.1.3.2.1. Dependency
            2. 5.1.3.2.2. Category
            3. 5.1.3.2.3. User Role Manager (URM)
          3. 5.1.3.3. Hosted Services
            1. 5.1.3.3.1. Discovery
            2. 5.1.3.3.2. Dependency
            3. 5.1.3.3.3. TCPIOP
        4. 5.1.4. Databases: The Heart of K2
      2. 5.2. Building Your Deployment Plan
      3. 5.3. Choosing a K2 Architectural Template
        1. 5.3.1. Small-Scale Architecture
          1. 5.3.1.1. Standalone Architecture
          2. 5.3.1.2. Basic Small-Scale Architecture
          3. 5.3.1.3. Small-Scale Architecture with Performance Enhancement
        2. 5.3.2. Medium-Scale Architectures
          1. 5.3.2.1. Basic Medium-Scale Architecture
          2. 5.3.2.2. Medium-Scale with Focus on Page Rendering
          3. 5.3.2.3. Medium-Scale, Full Architecture
        3. 5.3.3. Large-Scale Architectures
          1. 5.3.3.1. Basic Large-Scale Architecture
          2. 5.3.3.2. Large-Scale with Maximum Redundancy Using the Fewest Servers
      4. 5.4. Integrating K2 into Your Existing Environment
        1. 5.4.1. Active Directory Integration
          1. 5.4.1.1. A Complex Active Directory Scenario
        2. 5.4.2. DNS
        3. 5.4.3. Authorization and Authentication
        4. 5.4.4. What Is Kerberos?
        5. 5.4.5. The Requirements for Kerberos
        6. 5.4.6. Planning Kerberos and K2
          1. 5.4.6.1. The Web Services (Run-Time Services)
          2. 5.4.6.2. Reporting
          3. 5.4.6.3. Other K2 Components
        7. 5.4.7. Setting SPNs for Kerberos
        8. 5.4.8. Kerberos Checklists
          1. 5.4.8.1. Kerberos Delegation Checklist
            1. 5.4.8.1.1. Back-End Systems (K2 Server)
            2. 5.4.8.1.2. Middle-Tier Systems
            3. 5.4.8.1.3. Client Tier
          2. 5.4.8.2. Troubleshooting Checklist
      5. 5.5. Summary
    2. 6. Planning an Effective Development, Testing, and Staging Environment and Strategy
      1. 6.1. Methodologies and the Impact on Environments
      2. 6.2. Formulating a Strategy
      3. 6.3. Common Environment Configurations
        1. 6.3.1. Development Environment
          1. 6.3.1.1. Isolated Development or Shared Infrastructure
          2. 6.3.1.2. Source Control and Version Management
        2. 6.3.2. K2 blackpearl Deployment Versioning
        3. 6.3.3. Testing Environment
          1. 6.3.3.1. Automated Testing
            1. 6.3.3.1.1. Creating Your Own Automated Test Scenario — the Problem
            2. 6.3.3.1.2. Creating Your Own Automated Test Scenario — the Solution
          2. 6.3.3.2. Automated Building
        4. 6.3.4. Staging and Production Environments
      4. 6.4. Debugging and Monitoring Strategies
        1. 6.4.1. Error Reporting from the Workspace
        2. 6.4.2. Error Reporting from Inside the Process
        3. 6.4.3. Running the Server in Console Mode
        4. 6.4.4. Debugging K2 blackpearl Components
      5. 6.5. Summary
  8. III. K2 blackpearl Process Planning and Design Essentials
    1. 7. Building and Using SmartObjects
      1. 7.1. SmartObjects Background
      2. 7.2. SmartObject Architecture
        1. 7.2.1. The Advantages of SmartObject Architecture
        2. 7.2.2. SmartObject Services
      3. 7.3. Designing a SmartObject
        1. 7.3.1. Creating SmartObjects
        2. 7.3.2. Creating Associations
        3. 7.3.3. Using SmartBox
          1. 7.3.3.1. SmartBox Considerations
        4. 7.3.4. Creating Active Directory SmartObjects
          1. 7.3.4.1. Creating the GetDetails Method
          2. 7.3.4.2. Creating the GetManagerDetails Method
          3. 7.3.4.3. Creating the GetUserInGroup Method
        5. 7.3.5. Composite SmartObjects and Associations
        6. 7.3.6. Taking Advantage of SmartObject Agility
        7. 7.3.7. Modifying and Deleting SmartObjects
      4. 7.4. Using a SmartObject in a Process
        1. 7.4.1. Using a SmartObject Event
        2. 7.4.2. Implementing a SmartObject Line Rule
        3. 7.4.3. Configuring E-Mail and Destination Rule
      5. 7.5. Process-Generated SmartObjects
        1. 7.5.1. Workflow SmartObjects
        2. 7.5.2. Reporting SmartObjects
        3. 7.5.3. Process SmartObject Associations
        4. 7.5.4. SmartObject Process References
      6. 7.6. Advanced SmartObjects
        1. 7.6.1. SmartObjects Are Not Cached
        2. 7.6.2. Creating a SmartObject Instance
        3. 7.6.3. Inserting with the .NET Data Provider for K2 SmartObjects
        4. 7.6.4. Getting a SmartObject Instance(s)
        5. 7.6.5. Getting a SmartObject Instance(s) with a Filter
        6. 7.6.6. Getting SmartObjects with the .NET Data Provider
        7. 7.6.7. Using SmartObjects with Required Method Parameters
        8. 7.6.8. Using SmartObject Required Method Parameters with .NET Data Provider
        9. 7.6.9. Writing a SmartObject Service
          1. 7.6.9.1. GetConfigSection Method
          2. 7.6.9.2. DescribeSchema() Method
          3. 7.6.9.3. Execute() Method
          4. 7.6.9.4. Extend() Method
      7. 7.7. Summary
    2. 8. Effective Process-Driven Application Planning
      1. 8.1. How to Start
        1. 8.1.1. Selecting the Process
        2. 8.1.2. Drawing It Out
          1. 8.1.2.1. Sometimes Paper Is Good
          2. 8.1.2.2. The Block Diagram
            1. 8.1.2.2.1. Challenges with the Block Diagram
          3. 8.1.2.3. The Pawn Diagram
            1. 8.1.2.3.1. Why a Human-Centric Diagram Works
          4. 8.1.2.4. Basic Process Definitions
            1. 8.1.2.4.1. Serial Process Definition
            2. 8.1.2.4.2. Parallel Process Definition
        3. 8.1.3. Taking the Next Steps
      2. 8.2. Process Design Principles
        1. 8.2.1. Paths
          1. 8.2.1.1. Happy Path
          2. 8.2.1.2. Alternate Paths
        2. 8.2.2. The "Who"
          1. 8.2.2.1. Actors
          2. 8.2.2.2. Roles
          3. 8.2.2.3. Permissions
          4. 8.2.2.4. Delegation
          5. 8.2.2.5. Redirection
        3. 8.2.3. The "What"
          1. 8.2.3.1. Process
          2. 8.2.3.2. Activities
          3. 8.2.3.3. Events
            1. 8.2.3.3.1. Client Events
            2. 8.2.3.3.2. Server Events
            3. 8.2.3.3.3. IPC Events
          4. 8.2.3.4. Process Execution
            1. 8.2.3.4.1. Process Instance
            2. 8.2.3.4.2. Activity Instance
            3. 8.2.3.4.3. Event Instance
          5. 8.2.3.5. Actions and Outcomes
        4. 8.2.4. The "How"
          1. 8.2.4.1. Preceding Rule
          2. 8.2.4.2. Start Rule
          3. 8.2.4.3. Destination Rule
            1. 8.2.4.3.1. Static
            2. 8.2.4.3.2. Dynamic
            3. 8.2.4.3.3. Advanced Destinations
            4. 8.2.4.3.4. Activity Slots
            5. 8.2.4.3.5. Common Scenarios
            6. 8.2.4.3.6. Scenario #1: First Response Does So for the Group
            7. 8.2.4.3.7. Scenario #2: Process Collectively Unless Declined First
            8. 8.2.4.3.8. Scenario #3: Merge All Responses Before Proceeding
            9. 8.2.4.3.9. Scenario# 4: Merge Similar Responses and Proceed Immediately
            10. 8.2.4.3.10. Additional Information about Destinations
          4. 8.2.4.4. Escalation Rule
          5. 8.2.4.5. Succeeding Rule
          6. 8.2.4.6. Line Rules
        5. 8.2.5. The "When"
          1. 8.2.5.1. Escalations
            1. 8.2.5.1.1. Escalation Types
            2. 8.2.5.1.2. When to Use Escalations
          2. 8.2.5.2. Notifications
          3. 8.2.5.3. Working Hours
            1. 8.2.5.3.1. Zones
            2. 8.2.5.3.2. Special and Exception Dates
      3. 8.3. Advanced Process Design
        1. 8.3.1. Using the Spider Workflow Approach
        2. 8.3.2. Building a Spider Workflow
        3. 8.3.3. Watching the Spider in Action (an Example)
        4. 8.3.4. Extending the Design
      4. 8.4. Summary
    3. 9. Creating Your First Workflow
      1. 9.1. Getting Started with the K2 Designer for Visual Studio
      2. 9.2. Introducing the Visual Studio IDE
        1. 9.2.1. K2 Studio Designer Toolbar
        2. 9.2.2. K2 Object Browser
          1. 9.2.2.1. The Environment Browser
          2. 9.2.2.2. The User Browser
          3. 9.2.2.3. The Process/Activity Data Browser
          4. 9.2.2.4. The Workflow Context Browser
        3. 9.2.3. K2 Toolbox Items
        4. 9.2.4. K2 Design Canvas
      3. 9.3. Implementing the Workflow
        1. 9.3.1. Workflow Overview
        2. 9.3.2. Adding Roles
        3. 9.3.3. Testing with Roles
        4. 9.3.4. Adding Data Fields
        5. 9.3.5. Adding Activities
        6. 9.3.6. Adding Events
        7. 9.3.7. Connecting Activities Using Line Rules
        8. 9.3.8. Building and Deploying
        9. 9.3.9. Setting Process Rights
      4. 9.4. Stepping through the Process
        1. 9.4.1. Initiating the Workflow
        2. 9.4.2. Completing a Workflow Task
      5. 9.5. Documenting the Process
      6. 9.6. Summary
    4. 10. Deploying Your Processes and SmartObjects
      1. 10.1. Simple Process Deployment
        1. 10.1.1. Quick Deployment
          1. 10.1.1.1. Declarative, Not Compiled
        2. 10.1.2. Deployment Dependencies
        3. 10.1.3. Verifying Deployment
        4. 10.1.4. Changing the Process Definition on the Server
        5. 10.1.5. SmartObject and Process Projects
        6. 10.1.6. Changing the Name of a Process or SmartObject
        7. 10.1.7. Deployment Errors
      2. 10.2. The Environment Library
        1. 10.2.1. Architecture of the Environment Library
        2. 10.2.2. Creating Templates, Fields, and Environments
        3. 10.2.3. Using Environments
        4. 10.2.4. String Tables
          1. 10.2.4.1. Using the String Table
        5. 10.2.5. Planning Environments and String Tables
      3. 10.3. MSBuild Package
        1. 10.3.1. Generating a Deployment Package
        2. 10.3.2. Deploying a Package
        3. 10.3.3. MSBuild File
          1. 10.3.3.1. Adding Pre- and Postdeployment Tasks
          2. 10.3.3.2. Environments and String Table Dependencies
          3. 10.3.3.3. Excluding Items
      4. 10.4. Deploying SmartObject Services
        1. 10.4.1. Deploying SmartObjects
        2. 10.4.2. Deployment through Code
      5. 10.5. Summary
    5. 11. Working with InfoPath and ASP.NET Forms
      1. 11.1. Client Event Forms within K2
        1. 11.1.1. InfoPath
        2. 11.1.2. ASP.NET
        3. 11.1.3. Other Forms Technologies
          1. 11.1.3.1. Exchange Forms
          2. 11.1.3.2. K2 Forms Generation Client
          3. 11.1.3.3. Mobile Forms
          4. 11.1.3.4. WinForms
        4. 11.1.4. Which Should You Choose?
          1. 11.1.4.1. InfoPath Pros
          2. 11.1.4.2. InfoPath Cons
            1. 11.1.4.2.1. Browser-Based InfoPath Forms
            2. 11.1.4.2.2. InfoPath Rich-Client Forms
          3. 11.1.4.3. ASP.NET Pros
          4. 11.1.4.4. ASP.NET Cons
        5. 11.1.5. Criteria Scorecard
          1. 11.1.5.1. Which One to Choose?
      2. 11.2. Using InfoPath Forms
        1. 11.2.1. Background
        2. 11.2.2. Creating an InfoPath Process
          1. 11.2.2.1. InfoPath Form Integration Details
            1. 11.2.2.1.1. InfoPath Form Versioning
          2. 11.2.2.2. Changes to InfoPath
          3. 11.2.2.3. Changes to the K2 Process
        3. 11.2.3. Working with InfoPath Data
        4. 11.2.4. Advanced InfoPath XML Considerations
          1. 11.2.4.1. File Attachments and Database Sizing
          2. 11.2.4.2. Destination Plans
        5. 11.2.5. Modifying the Process
        6. 11.2.6. Archiving an InfoPath Form
        7. 11.2.7. InfoPath and SmartObject Integration
        8. 11.2.8. Good Design Considerations
          1. 11.2.8.1. Storing Data in InfoPath
          2. 11.2.8.2. Structuring InfoPath Data Source
          3. 11.2.8.3. Working with Required Fields
          4. 11.2.8.4. Multiple Forms in a Process
          5. 11.2.8.5. Working with Views
          6. 11.2.8.6. Using Browser-Enabled or Client-Based InfoPath Forms
          7. 11.2.8.7. Process Mix Mode
        9. 11.2.9. InfoPath Process Deployment
          1. 11.2.9.1. Planning Sites and Form Libraries
          2. 11.2.9.2. Deployment of Data Connections
          3. 11.2.9.3. Publishing Promoted Fields
          4. 11.2.9.4. Deploying Browser-Enabled Forms with .NET Managed Code
        10. 11.2.10. InfoPath Integration Conclusion
      3. 11.3. Using ASP.NET Forms
        1. 11.3.1. Initiating a Workflow from Code
        2. 11.3.2. Customizing a Web Page Created via Forms Generation Client Event
        3. 11.3.3. Displaying a Custom Web Page for a Workflow Task Form
        4. 11.3.4. Completing an Activity from Code
        5. 11.3.5. K2 Server Management from Code
          1. 11.3.5.1. Loading a Catalog of Process Definitions
          2. 11.3.5.2. Displaying Versions of Process
        6. 11.3.6. Viewing Activities for a Process Definition
          1. 11.3.6.1. Viewing Processes Currently Running
          2. 11.3.6.2. Retrieving Processes Currently Running for a Specific User
        7. 11.3.7. Worklist for Current User
        8. 11.3.8. Additional Examples
      4. 11.4. Summary
    6. 12. Working with SharePoint
      1. 12.1. An Overview of SharePoint
        1. 12.1.1. Sites and Site Collections
        2. 12.1.2. Content Types and Site Columns
        3. 12.1.3. Lists and Libraries
        4. 12.1.4. Solutions and Features
        5. 12.1.5. What Are the Differences between WSS and MOSS?
        6. 12.1.6. How K2 Integration Works
      2. 12.2. Using the K2 Features for SharePoint
        1. 12.2.1. About the Approval Process
        2. 12.2.2. Building the Process
        3. 12.2.3. Starting Workflows Manually
        4. 12.2.4. Starting a New Workflow
        5. 12.2.5. Beyond the K2 Web Designer for SharePoint
      3. 12.3. Using the K2 Worklist Web Part
        1. 12.3.1. Deploying the K2 Worklist Web Part
        2. 12.3.2. Inserting the K2 Worklist Web Part on a Page
      4. 12.4. Using the K2 SmartObjects Feature
      5. 12.5. Illustrating Some Example Scenarios
        1. 12.5.1. Site Creation and Maintenance
        2. 12.5.2. Sending Records to the Records Center
        3. 12.5.3. Automatic Process-Based Web Publishing
        4. 12.5.4. InfoPath Client or Browser-Based Form to Start and Action Workflows
        5. 12.5.5. Business Data Maintenance in SharePoint
      6. 12.6. Operational Benefits of SharePoint Integration
        1. 12.6.1. Process Versioning
        2. 12.6.2. Process Management
        3. 12.6.3. Improved Workflow History Reporting
        4. 12.6.4. Better Usability and Management of Tasks
        5. 12.6.5. Integration of LOB Data
      7. 12.7. Summary
      8. 12.8. Notes
    7. 13. Working with Microsoft Office SharePoint Server
      1. 13.1. Using the K2 SharePoint Wizards
        1. 13.1.1. Process Wizards
          1. 13.1.1.1. The SharePoint Workflow Integration Process Wizard
          2. 13.1.1.2. The SharePoint Events Process Wizard
        2. 13.1.2. Event Wizards
          1. 13.1.2.1. The Administration Event Wizards
            1. 13.1.2.1.1. The SharePoint Sites and Workspaces Event Wizard
            2. 13.1.2.1.2. The SharePoint Lists and Libraries Event Wizard
            3. 13.1.2.1.3. The SharePoint User Management Event Wizard
          2. 13.1.2.2. The Content Management Event Wizards
            1. 13.1.2.2.1. The SharePoint List Items Event Wizard
            2. 13.1.2.2.2. The SharePoint Documents Event Wizard
            3. 13.1.2.2.3. The SharePoint Records Management Event Wizard
            4. 13.1.2.2.4. The SharePoint Search Event Wizard
            5. 13.1.2.2.5. The SharePoint Publishing Event Wizard
      2. 13.2. Using K2 SharePoint Integration for Enterprise Scenarios
        1. 13.2.1. Using Web Content Management
          1. 13.2.1.1. The SharePoint Publishing Features
          2. 13.2.1.2. An Example Publishing Scenario: Publishing Press Releases
        2. 13.2.2. Using Search Results
          1. 13.2.2.1. Enterprise Scenario: Accepted Offers Management
        3. 13.2.3. Working with the Records Center
          1. 13.2.3.1. Using Records and Holds
          2. 13.2.3.2. Enterprise Scenario: Sales Department Expense Control
        4. 13.2.4. Using SmartObject Data with the Business Data Catalog (BDC)
          1. 13.2.4.1. Integrating SmartObjects with BDC
          2. 13.2.4.2. Configuring a K2 BDC Application
          3. 13.2.4.3. Enterprise Scenario: Using Customer Information in SharePoint
          4. 13.2.4.4. Integrating Business Information with Microsoft Office Applications
      3. 13.3. Working with InfoPath Forms
      4. 13.4. Summary
      5. 13.5. Notes
    8. 14. The K2 Designers and Collaborative Process Design
      1. 14.1. The Right Tool for the Right Person
        1. 14.1.1. Know Your Role
          1. 14.1.1.1. Business Analyst
          2. 14.1.1.2. Process Designers
          3. 14.1.1.3. Developers
        2. 14.1.2. Sharing a Process with Other Designers
          1. 14.1.2.1. Why This Works
          2. 14.1.2.2. Export and Import Capabilities
      2. 14.2. Designer Choices
        1. 14.2.1. K2 Designer for Visio
          1. 14.2.1.1. Audience
          2. 14.2.1.2. Using the K2 Designer for Visio
            1. 14.2.1.2.1. Importing
            2. 14.2.1.2.2. Exporting
          3. 14.2.1.3. Collaboration Experience
          4. 14.2.1.4. Extensibility
          5. 14.2.1.5. When to Use It
          6. 14.2.1.6. When Not to Use It
        2. 14.2.2. K2 Web Designer for SharePoint
          1. 14.2.2.1. Audience
          2. 14.2.2.2. Using the K2 Web Designer
            1. 14.2.2.2.1. Action Menu
            2. 14.2.2.2.2. Templates
            3. 14.2.2.2.3. Wizards
            4. 14.2.2.2.4. Favorites
            5. 14.2.2.2.5. Process Templates
            6. 14.2.2.2.6. Users and Groups
          3. 14.2.2.3. Collaboration Experience
          4. 14.2.2.4. Extensibility
          5. 14.2.2.5. When to Use It
          6. 14.2.2.6. When Not to Use It
        3. 14.2.3. K2 Designer for Visual Studio
          1. 14.2.3.1. Audience
          2. 14.2.3.2. Using the K2 Designer for Visual Studio
          3. 14.2.3.3. Collaboration Experience
          4. 14.2.3.4. Extensibility
          5. 14.2.3.5. When to Use It
          6. 14.2.3.6. When Not to Use It
        4. 14.2.4. Future Design Tools
          1. 14.2.4.1. K2 Studio
          2. 14.2.4.2. K2 Web Designer 2.0
      3. 14.3. Working Collaboratively
        1. 14.3.1. Example Scenario
        2. 14.3.2. Identify Roles and the Plan
        3. 14.3.3. Manage to the Project Plan
        4. 14.3.4. Source Code Control
        5. 14.3.5. Communicate, Communicate, Communicate
      4. 14.4. Summary
  9. IV. Administration of K2 blackpearl
    1. 15. Server and Component Administration
      1. 15.1. Server Architecture
      2. 15.2. Workspace Management Console
      3. 15.3. General Workflow Server Settings
      4. 15.4. License Management
      5. 15.5. Environment Library and String Table Management
      6. 15.6. Role Management
      7. 15.7. Working Hours Management
      8. 15.8. Process Instance Management
      9. 15.9. Process Version Management
      10. 15.10. Process Error Management
      11. 15.11. Worklist Administration
      12. 15.12. SmartObject Service Management
      13. 15.13. Archiving
      14. 15.14. Workspace Web Application Management
      15. 15.15. Runtime Services Management
      16. 15.16. Workspace Application Pool
      17. 15.17. Workspace Logging
      18. 15.18. Report Administration
      19. 15.19. Report Data Source Administration
      20. 15.20. K2 SharePoint Component Administration
        1. 15.20.1. General K2 SharePoint Settings
        2. 15.20.2. K2 SharePoint Feature Management
          1. 15.20.2.1. K2 SmartObject Integration
          2. 15.20.2.2. K2 Site Administration Integration
          3. 15.20.2.3. K2 Workflow Integration ASP.NET Page Content Types
          4. 15.20.2.4. K2 Web Designer Integration
        3. 15.20.3. K2 BDC Application Management
        4. 15.20.4. K2 Tasklist Web Part Management
      21. 15.21. The Configuration Manager
      22. 15.22. Summary
    2. 16. Administering Permissions and Security
      1. 16.1. What Is Security?
        1. 16.1.1. Integrity
          1. 16.1.1.1. Data Integrity
          2. 16.1.1.2. Source Integrity
        2. 16.1.2. Confidentiality
        3. 16.1.3. Availability
        4. 16.1.4. Which Tenet of Security Is Most Important?
        5. 16.1.5. The Three "A"s
        6. 16.1.6. A Very Brief Introduction to Risk Analysis
        7. 16.1.7. The Security Policy and Regulatory and Legal Compliance
          1. 16.1.7.1. The Security Policy
          2. 16.1.7.2. Regulatory and Legal Compliance
      2. 16.2. Deploying a Secure K2 blackpearl Installation
        1. 16.2.1. Organize, Plan, Test, and Document
        2. 16.2.2. Securing the Environment
          1. 16.2.2.1. Principal of Least Privilege
          2. 16.2.2.2. Reducing the Footprint
          3. 16.2.2.3. Separation of Duties
          4. 16.2.2.4. Logging
          5. 16.2.2.5. Permissions and Privileges
          6. 16.2.2.6. Installation Privileges
          7. 16.2.2.7. Service Account Privileges
            1. 16.2.2.7.1. K2 Service Account
            2. 16.2.2.7.2. K2 Workspace Service Account
            3. 16.2.2.7.3. SharePoint Service Account
            4. 16.2.2.7.4. Reporting Service Accounts
          8. 16.2.2.8. Operating System Privileges
          9. 16.2.2.9. File and Folder Permissions
          10. 16.2.2.10. Registry Permissions
          11. 16.2.2.11. SharePoint Permissions
          12. 16.2.2.12. SQL Reporting Services Permissions
          13. 16.2.2.13. SQL Server Permissions
          14. 16.2.2.14. K2 Workspace Permissions
          15. 16.2.2.15. K2 Performance Monitoring Permissions
          16. 16.2.2.16. MSMQ Permissions
        3. 16.2.3. The Discovery Service
        4. 16.2.4. Securing K2 blackpearl Communications
      3. 16.3. The K2 blackpearl Security Landscape
        1. 16.3.1. K2 Security Framework
          1. 16.3.1.1. Security Programming and Extensibility
        2. 16.3.2. K2 Workspace Permissions
        3. 16.3.3. K2 Management Console
          1. 16.3.3.1. Server Rights
          2. 16.3.3.2. Process Rights
          3. 16.3.3.3. Process Action Rights
          4. 16.3.3.4. K2 Server Roles
        4. 16.3.4. Environment Library Templates Security
        5. 16.3.5. SmartObject Security
        6. 16.3.6. SmartBox Security
        7. 16.3.7. EventBus Security
        8. 16.3.8. Programmers and Process Designers
          1. 16.3.8.1. The K2 Object Browser
          2. 16.3.8.2. Export Permissions
          3. 16.3.8.3. Server Debugging
      4. 16.4. Secure Development Practices
      5. 16.5. Troubleshooting Security Issues
        1. 16.5.1. File and Registry Auditing
        2. 16.5.2. Log Files
        3. 16.5.3. K2 blackpearl Console Mode
        4. 16.5.4. Temporarily Add the Service Account to the Administrators Group
        5. 16.5.5. Advanced Tools
      6. 16.6. Summary
      7. 16.7. Notes
    3. 17. Administering and Creating Security Providers
      1. 17.1. The Active Directory Security Provider
        1. 17.1.1. ADUM Settings
        2. 17.1.2. Configuring Support for Multiple Domains
      2. 17.2. The SQL Security Provider
      3. 17.3. The Security Provider API
        1. 17.3.1. The Security Provider Object Model
        2. 17.3.2. A Pluggable Architecture
        3. 17.3.3. IHostableType
        4. 17.3.4. It's All About Context
          1. 17.3.4.1. The Configuration Manager
          2. 17.3.4.2. The Security Manager
          3. 17.3.4.3. The Logger
        5. 17.3.5. IHostableSecurityProvider
        6. 17.3.6. IAuthenticationProvider
        7. 17.3.7. IAuthenticationProvider Initialization
        8. 17.3.8. Authenticating Users
        9. 17.3.9. IRoleProvider
          1. 17.3.9.1. Initializing the Role Provider
          2. 17.3.9.2. IUser and IUserCollection Interfaces
          3. 17.3.9.3. IGroup and IGroupCollection Interfaces
          4. 17.3.9.4. Retrieving Users and Groups
          5. 17.3.9.5. Searching for Users and Groups
          6. 17.3.9.6. Searching for Users
          7. 17.3.9.7. Searching for Groups
          8. 17.3.9.8. How K2 Workspace Searches a Security Provider
          9. 17.3.9.9. Resolving Destination Queues
        10. 17.3.10. Remotely Invoking the Security Provider
      4. 17.4. Single Sign-On (SSO)
      5. 17.5. Building a Custom Security Provider
        1. 17.5.1. Where to Start
        2. 17.5.2. Code Organization
        3. 17.5.3. Installing the Custom Security Provider
          1. 17.5.3.1. Staging Provider Dependencies and Configuration
          2. 17.5.3.2. Staging Host Server Configuration Settings
          3. 17.5.3.3. Installing the Security Provider Library
          4. 17.5.3.4. Configuring the Security Provider
          5. 17.5.3.5. Debugging the Security Provider
          6. 17.5.3.6. Testing the Security Provider
      6. 17.6. K2 connect
      7. 17.7. Summary
    4. 18. Disaster Recovery Planning
      1. 18.1. What Is a Disaster Recovery Plan (DRP)?
        1. 18.1.1. Setting the Baseline
        2. 18.1.2. Pre-Planning/Mitigation Planning
        3. 18.1.3. Continuity Planning
        4. 18.1.4. Recovery Planning
        5. 18.1.5. Testing
      2. 18.2. Disaster Recovery and K2 blackpearl
        1. 18.2.1. Backup/Restoration of the Windows Server Machines
        2. 18.2.2. Database Disaster Recovery Options
        3. 18.2.3. Backup/Restoration of the K2 blackpearl Databases
          1. 18.2.3.1. The K2 blackpearl Databases
          2. 18.2.3.2. Understanding the SQL Server Backup Model
          3. 18.2.3.3. Performing a Database Backup Manually
          4. 18.2.3.4. Configuring Automatic Backups
          5. 18.2.3.5. Restoring a Database
        4. 18.2.4. K2 Web Components
          1. 18.2.4.1. Restoring K2 Web Components
        5. 18.2.5. K2 blackpearl Server(s)
          1. 18.2.5.1. Restoring the K2 blackpearl Server Components to a Cold Standby
          2. 18.2.5.2. Setting Up the K2 blackpearl Server Components on a Warm or Hot Standby
          3. 18.2.5.3. Restoring the K2 blackpearl Server Components to a Warm/Hot Standby
        6. 18.2.6. K2 for Reporting Services
          1. 18.2.6.1. Restoring the K2 for Reporting Services Components
        7. 18.2.7. K2 for SharePoint
        8. 18.2.8. Additional Components
      3. 18.3. High-Availability Planning
      4. 18.4. Summary
    5. 19. Logging and System Reporting
      1. 19.1. K2 blackpearl Logging
        1. 19.1.1. Installation Log File
        2. 19.1.2. Logging Framework
        3. 19.1.3. Logging Framework Configuration File
          1. 19.1.3.1. The appSettings Section
          2. 19.1.3.2. The Extensions Section
          3. 19.1.3.3. The ApplicationLevelLogSettings Section
          4. 19.1.3.4. The Category Section
          5. 19.1.3.5. Predefined and Parameterized Messages
          6. 19.1.3.6. Logging Messages: Custom Run-Time and Static Predefined Messages
        4. 19.1.4. Enabling K2 blackpearl Logging
        5. 19.1.5. Running the K2 blackpearl Server in Console Mode
        6. 19.1.6. Logging to the K2 blackpearl Server Log File
        7. 19.1.7. Viewing the K2 blackpearl Server Log File in Microsoft Excel
        8. 19.1.8. Logging to the Windows Event Log
        9. 19.1.9. Using the Archive Extension to Log to SQL Server
        10. 19.1.10. Using the MSMQ Extension
        11. 19.1.11. Extending the Logging Framework
        12. 19.1.12. Custom Logging
        13. 19.1.13. Kerberos Logging
      2. 19.2. K2 blackpearl System Reporting
        1. 19.2.1. Performance Monitor Interfaces
        2. 19.2.2. Opening the Performance Monitor
        3. 19.2.3. Using the Performance Monitor
          1. 19.2.3.1. K2 blackpearl-Specific Counters
          2. 19.2.3.2. Adding Counters to the Performance Monitor User Interface
          3. 19.2.3.3. Creating Charts, Alerts, Logs, and Reports
            1. 19.2.3.3.1. Charts
            2. 19.2.3.3.2. Alerts
            3. 19.2.3.3.3. Logs
            4. 19.2.3.3.4. Reports
      3. 19.3. Summary
    6. 20. Using the K2 Workspace and Reporting
      1. 20.1. K2 Workspace Overview
        1. 20.1.1. Working with the Worklist
          1. 20.1.1.1. Actioning a Worklist Item
            1. 20.1.1.1.1. Using Custom Forms
            2. 20.1.1.1.2. Using the Worklist Actions Menu
            3. 20.1.1.1.3. Using Batch Actions
          2. 20.1.1.2. Suspending a Worklist Item
          3. 20.1.1.3. Redirecting a Worklist Item
          4. 20.1.1.4. Releasing a Worklist Item
          5. 20.1.1.5. Delegating a Worklist Item
          6. 20.1.1.6. Viewing Process-Related Data
            1. 20.1.1.6.1. Data Fields
            2. 20.1.1.6.2. View Flow
        2. 20.1.2. Finding a Worklist Item
          1. 20.1.2.1. Sorting the Worklist
            1. 20.1.2.1.1. Searching the Worklist
            2. 20.1.2.1.2. Filtering the Worklist
        3. 20.1.3. Viewing Managed Users' Worklists
      2. 20.2. K2 Reporting
        1. 20.2.1. Saved and Published Reports
        2. 20.2.2. Standard Reports
        3. 20.2.3. Using Reports
        4. 20.2.4. Creating New Reports
        5. 20.2.5. Working with Reporting Services
          1. 20.2.5.1. Exporting K2 Reports to Reporting Services
          2. 20.2.5.2. Creating K2 Platform Reports in Visual Studio 2005
          3. 20.2.5.3. Importing Reporting Services Reports into K2 Reports
      3. 20.3. K2 Event Notifications
        1. 20.3.1. Notification Events
        2. 20.3.2. Custom Events
      4. 20.4. Summary
  10. V. Advanced K2 blackpearl Concepts and Platform Extensions
    1. 21. The K2 Event Bus
      1. 21.1. Key Features of the Event Bus
        1. 21.1.1. Open and Extensible Architecture
        2. 21.1.2. Separating Events from Actions
        3. 21.1.3. Pluggable Event Systems
        4. 21.1.4. Built-In Event Handlers
        5. 21.1.5. Pluggable Message Queuing
        6. 21.1.6. Independent Policy Management
        7. 21.1.7. Conditional Policies
        8. 21.1.8. Action Policies
        9. 21.1.9. Subscription Model
      2. 21.2. Architecture of the K2 Event Bus
        1. 21.2.1. Event Bus Data Flow
        2. 21.2.2. Event Bus Server
          1. 21.2.2.1. Event Recorder
          2. 21.2.2.2. Event Bus Engine
          3. 21.2.2.3. Event Bus Store
        3. 21.2.3. Event Recorder
          1. 21.2.3.1. System Event Recorder
          2. 21.2.3.2. Generic Client Event Recorder
        4. 21.2.4. Event Bus Engine
          1. 21.2.4.1. Event Queue
          2. 21.2.4.2. Event Store
          3. 21.2.4.3. Policy Engine
          4. 21.2.4.4. Event Administration
      3. 21.3. Exposing Process Information through SmartObjects
      4. 21.4. The Event Bus Scheduler
      5. 21.5. Event Bus Configuration Settings
        1. 21.5.1. SourceCode.EventBus.Server.Config
        2. 21.5.2. SourceCode.EventBus.Mapping.dll.config
        3. 21.5.3. SourceCode.EventBus.ClientRecorder.dll.config
        4. 21.5.4. SourceCode.EventBus.EventAdmin.dll.config
      6. 21.6. Troubleshooting the Event Bus
      7. 21.7. Walkthrough: Event Bus SMTP Sample
      8. 21.8. Summary
      9. 21.9. Notes
    2. 22. Advanced Topics in K2 blackpearl
      1. 22.1. Destination Rules
        1. 22.1.1. SmartObjects in Destinations
        2. 22.1.2. Using XML Nodes in Destinations
        3. 22.1.3. Implications of Activity Plans and Destination Rule Options
      2. 22.2. Actions and Outcomes
        1. 22.2.1. More Than Auto-Generated Outcomes
        2. 22.2.2. Rights on Actions
      3. 22.3. Advanced InfoPath
        1. 22.3.1. Multiple InfoPath Forms
        2. 22.3.2. Split and Merge
      4. 22.4. Troubleshooting
        1. 22.4.1. Logging
          1. 22.4.1.1. Modifying Logging on a K2 Server
        2. 22.4.2. Visual Studio Debugging
        3. 22.4.3. Error Repair
      5. 22.5. Summary
    3. 23. Introduction to K2 connect
      1. 23.1. K2 connect Architecture
        1. 23.1.1. K2 connect and SAP
        2. 23.1.2. K2 connect and K2 blackpearl
        3. 23.1.3. K2 connect and K2 SmartObjects
      2. 23.2. Using the K2 Service Object Designer
        1. 23.2.1. K2 Service Object Designer
        2. 23.2.2. K2 Service Object Design Canvas
      3. 23.3. Creating a Service Object with K2 connect for SAP
        1. 23.3.1. Configuring the Service Object Project
        2. 23.3.2. Configuring the GetList Service
        3. 23.3.3. Deploying the Service Object
      4. 23.4. Creating a K2 SmartObject Based on a K2 connect Service Object
      5. 23.5. Summary
  11. A. K2 blackpearl Tips and Tricks
    1. A.1. Retrieving the Value from an XML Field Element
    2. A.2. Super Simple Notes Field with History in InfoPath
    3. A.3. Retrieving Process Instance Reporting Data
    4. A.4. Activity Destination Users Based on a Repeating XML Element
    5. A.5. Differences between Stop and Start, and Sleep
    6. A.6. What Does the Client Event Option "Allow Any User to Finish This Client Event" Mean?
    7. A.7. Custom Assembly Versioning within a K2 Process
    8. A.8. Updating Batch Action/Outcome Results Back into InfoPath Form
    9. A.9. Handling Multiple Documents in the K2 blackpearl SharePoint Document Template
    10. A.10. Best Practice — Host Server Connections
      1. A.10.1. Scenario 1: Opening and Closing Multiple Connections
      2. A.10.2. Scenario 2: One Connection Performing Many Operations
      3. A.10.3. Scenario 3: Using Sessions
    11. A.11. Default Outcomes in Escalations
    12. A.12. Adding an IPC Event to a Process from a Different Solution File
    13. A.13. Asynchronous Server Code Events
      1. A.13.1. Making an Event Asynchronous
      2. A.13.2. Completing the Server Event
      3. A.13.3. Example — Using an Asynchronous Server Event
      4. A.13.4. Example Project
        1. A.13.4.1. SmartObject
        2. A.13.4.2. The Subprocess
        3. A.13.4.3. Wait for Cancel
        4. A.13.4.4. Finishing Subprocesses
        5. A.13.4.5. Cancel Parallel Paths
    14. A.14. Dynamic Escalations
    15. A.15. Looping through an Activity for Each SmartObject List Item
    16. A.16. Checking If a SharePoint Site or Workspace Exists When Calling CreateWorkspace() Methods
    17. A.17. Displaying the Name of the Process Instance Originator on Your InfoPath Form
    18. A.18. Changing the Default STMP Server Used by K2 blackpearl
    19. A.19. Obtaining the Serial Number for a Worklist Item in a K2 Process
    20. A.20. Building the URL for a SharePoint Workflow Integration Client Event
    21. A.21. Know Your SmartObjects
    22. A.22. How to Get a List of the Users and Actions Executed for a Given Process Instance
    23. A.23. Determining the Destination Users of an Activity in Process Event Code at Run Time
    24. A.24. Disabling Deployment of Workflow Reporting SmartObjects
    25. A.25. Using a SmartObject to Populate a Destination Set
    26. A.26. Using Mouse Gestures in K2 for Visual Studio to Create Activities and Events
    27. A.27. Using K2 Helper Classes to Get and Set Process and Activity XML Fields
    28. A.28. I Lost My K2 Workflow Visual Studio Project, Help
    29. A.29. Submitting an InfoPath Form Fails with a Generic Error
    30. A.30. Custom Forms and SharePoint Workflow Integrations