O'Reilly logo

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

Alfresco 3 Business Solutions

Book Description

Practical implementation techniques and guidance for delivering business solutions with Alfresco

  • Deep practical insights into the vast possibilities that exist with the Alfresco platform for designing business solutions.
  • Each and every type of business solution is implemented through the eyes of a fictitious financial organization - giving you the right amount of practical exposure you need.
  • Packed with numerous case studies which will enable you to learn in various real world scenarios.
  • Learn to use Alfresco's rich API arsenal with ease.
  • Extend Alfresco's functionality and integrate it with external systems.

In Detail

Alfresco is the renowned and multiple award winning open source Enterprise content management system which allows you to build, design and implement your very own ECM solutions. It offers much more advanced and cutting edge features than its commercial counterparts with its modularity and scalability. If you are looking for quick and effective ways to use Alfresco to design and implement effective and world class business solutions that meet your organizational needs - Your search ends with this book.

Welcome to Alfresco 3 Business Solutions - Your practical and easy to use guide which, instead of teaching you just how to use Alfresco, teaches you how to live Alfresco. It will guide you through implementing real world solutions through real world scenarios. Each ECM problem is treated as a separate case study and has its own chapter, enabling you to uncover the practical aspects of an ECM implementation. You want more than just the theoretical details - You want practical insights to building, designing and implementing nothing less than world class business solutions with Alfresco - and Alfresco 3 Business Solutions is your solution.

This practical companion cuts short the preamble and you dive right into the world of business solutions with Alfresco.

Learn all techniques, basic and advanced, required to design and implement different solutions with Alfresco in easy and efficient ways. Learn all you need to know about Document Management, Records Management- the lot. Connect Alfresco with directory servers. Learn how to use CIFS and troubleshoot all types of problems. Migrate data when you have an existing network drive with documents and want to merge them into Alfresco. Implement Business Process Design Solutions with Swimlane diagrams. Easily extract content from Alfresco and build mashups in a portal like Liferay. Gain insights into mobile access and email integration.

This book will teach you to implement all that and more, in real world environments.

Table of Contents

  1. Alfresco 3 Business Solutions
    1. Alfresco 3 Business Solutions
    2. Credits
    3. About the Author
    4. About the Reviewers
    5. www.PacktPub.com
      1. Support files, eBooks, discount offers, and more
        1. Why Subscribe?
        2. Free Access for Packt account holders
    6. Preface
      1. What this book covers
      2. What you need for this book
      3. Who this book is for
      4. Conventions
      5. Reader feedback
      6. Customer support
        1. Errata
        2. Piracy
        3. Questions
    7. 1. The Alfresco Platform
      1. Platform overview
      2. Repository concepts and definitions
        1. Repository
        2. Stores
          1. The Content Store
            1. Content Store policies
          2. The AVM Store
          3. Store reference
        3. Nodes
          1. Root node
          2. Node reference
          3. Node properties
          4. Node property sheets
          5. Node associations
          6. QName
        4. Permissions
          1. User groups
          2. Roles
          3. Permission groups
          4. Owner authority
          5. Permission example
        5. Multi-Tenant
      3. Core platform
        1. Open source libraries
        2. Services and components
        3. Content rules
        4. Event model
        5. Metadata extraction
        6. Content transformation
        7. Alfresco Management Beans (JMX)
      4. Application Programming Interfaces (APIs)
      5. Subsystems
      6. Bootstrap
        1. Patches
        2. Importers
      7. Extension modules
      8. Third-party extension modules
      9. User interface clients
        1. Alfresco Explorer
        2. Alfresco Share
        3. Alfresco SharePoint
        4. Alfresco Mobile
        5. Alfresco CIFS
      10. The Alfresco installation directory structure
        1. The alf_data directory
          1. The contentstore directory
            1. File versioning
          2. The contentstore.deleted directory
          3. The audit.contentstore directory
          4. The lucene-indexes and backup-lucene-indexes directories
          5. The mysql directory
          6. The oouser directory
        2. The amps directories
        3. The tomcat directory
      11. Getting the Alfresco source code
      12. The Alfresco database
        1. DB schema
        2. Significant tables
          1. ALF_NODE
          3. ALF_NODE_ASPECTS
          4. ALF_QNAME
          5. ALF_APPLIED_PATCH
        3. Example queries and update statements
          1. Querying for number of nodes of a certain type
          2. Querying for number of nodes stored in a particular month
          3. Running a patch again
      13. Summary
    8. 2. The Alfresco APIs
      1. Application Programming Interfaces (APIs)
        1. In-process APIs
          1. The Java Foundation Services API
            1. Configuration and Transaction Management
            2. Using the Node Service and the Content Service
            3. Using the File Folder service
            4. Using the Search Service
            5. Using the Permission Service
            6. Using the Dictionary Service
            7. Logging
          2. Event management API
          3. Metadata Extraction API
          4. Content Transformation API
          5. The JavaScript API
            1. JavaScript event handlers
            2. Debug logging
            3. JavaScript or Java?
        2. Client-server APIs
          1. CMIS API
          2. Repository API
          3. Custom APIs
      2. Bootstrap APIs
        1. Patches
        2. Importers
      3. Summary
    9. 3. Setting Up a Development Environment and a Release Process
      1. Setting up a development environment
        1. Alfresco Extension projects
          1. Alfresco Explorer and repository extensions
          2. Alfresco Share UI extensions
            1. alfresco/site-data
            2. alfresco/site-webscripts
            3. META-INF
        2. Project directory structure
          1. _alfresco/config
            1. alfresco/extension
            2. alfresco/module
            3. META-INF
          2. _alfresco/source
          3. _share/config
        3. Building and deploying
          1. The Build file
            1. Ant targets for the alfresco.war AMP Extension
            2. Ant targets for the share.war JAR extension
          2. Using the build file to deploy extensions
            1. Deploying the AMP extension
            2. Deploying the Share JAR extension
          3. Debugging extensions
            1. Alfresco Explorer and repository debugging
            2. Alfresco Share debugging
      2. Setting up a continuous integration solution
      3. Setting up a release process
        1. Release notes template
        2. Updating Change Log
        3. Training
      4. Summary
    10. 4. Authentication and Synchronization Solutions
      1. Authentication and synchronization concepts
        1. Basic authentication
        2. NTLM authentication
          1. Alfresco CIFS and NTLM authentication
          2. Alfresco NTLM passthru authentication
        3. Kerberos authentication
          1. User and service login via KDC AS
          2. Accessing Alfresco via KDC TGS
        4. LDAP authentication
          1. Checking what SASL mechanisms the LDAP server supports
        5. LDAP synchronization
        6. Alfresco authentication and synchronization subsystems
        7. Alfresco authentication and application zones
      2. Setting up authentication and synchronization with Remote Directory servers
        1. Configuring authentication and synchronization against OpenLDAP
          1. Configuring user authentication with OpenLDAP
          2. Configuring user and group synchronizing with OpenLDAP
        2. Configuring authentication and synchronization against Microsoft Active Directory
          1. Configuring multiple LDAP authentication subsystems
          2. Moving OpenLDAP subsystem configuration to its own directory
          3. Configuring authentication and synchronization with Active Directory
          4. Customizing group imports
        3. Accessing via the CIFS interface
          1. Implementing a custom authenticator for CIFS authentication against an LDAP server
            1. Adding a sambaSamAccount to LDAP structure
            2. Generating MD4 passwords
            3. Building a custom NTLM authenticator
            4. Custom authentication subsystem configuration
            5. Deploying the needed classes for the custom authenticator
            6. Testing the new custom authenticator
        4. Making authentication more secure and using SSO
          1. Troubleshooting NTLM authentication and SSO
      3. Using directory servers in a Development Environment
      4. Summary
    11. 5. File System Access Solutions
      1. File access concepts
        1. CIFS protocol overview
        2. CIFS Transport—NetBIOS over TCP/IP (NBT)
          1. Naming service
          2. Communication services
            1. Session service
            2. Datagram service
        3. CIFS transport—TCP/IP (Native SMB)
        4. CIFS dialect negotiation
        5. CIFS authentication and security
        6. Next generation CIFS—SMB2
      2. Alfresco CIFS server
        1. Alfresco CIFS server on Windows
        2. Alfresco CIFS server on Linux
      3. Alfresco CIFS server configuration
        1. Alfresco file server subsystem
        2. Windows Vista server, Windows 7, and XP clients configuration
        3. Windows 2003 Server and Windows 7 client configuration
        4. Windows 2008 Server, Active Directory, and Windows 7 client configuration
        5. Linux server and Windows 7 client configuration
      4. Alfresco WebDAV
        1. WebDAV clients
        2. Windows built-in WebDAV clients
          1. Web Folders (XP only)
          2. WebDAV Mini Redirector (XP, Vista, and Win7)
      5. Troubleshooting Alfresco CIFS
        1. General
          1. Nothing happens in Alfresco when trying to log in via CIFS
          2. Server says NTLMv2 is not valid for authentication
          3. SMBException: invalid parameter and access denied
          4. NetBIOS DLL is not accessible
          5. Turning on debug logging for SMB
          6. Checking ports from server
          7. Checking ports from client
          8. Checking that CIFS server NetBIOS name is ok
          9. Checking that CIFS server NetBIOS name is resolvable from client
          10. Does any debug logging show up during connection attempts?
          11. Does the client use the correct authentication method?
          12. Are you running in a Citrix environment?
      6. Summary
    12. 6. Document and Records Management Solutions
      1. Out of the box folder hierarchy
        1. The Data Dictionary top folder
      2. Designing document management solutions
        1. Document Folder Template
          1. Folder name
          2. Folder title
          3. Folder permissions
          4. Rules
          5. Metadata
          6. Document versioning
          7. Processes
      3. Designing the Best Money document management solution
        1. Meetings and Press folder hierarchy
          1. The Meetings folder hierarchy
          2. The Press folder hierarchy
        2. Meeting folder/space hierarchy template
      4. Implementing the Best Money document management solutions
        1. Setting up users and groups
          1. Using a script to set up users and groups
        2. Setting up the folder hierarchy
          1. Using CIFS to set up folders
          2. Using the Alfresco user interfaces to set up folders
          3. Using scripts to set up folders
            1. Updating folder icons
            2. Adding groups of folders to other folders
            3. Importing folders from an Excel file
            4. Cleanup folders
          4. Setting up folder permissions
          5. Setting up business rules for folders
            1. Defining the Apply Best Money Document Type rule
            2. Defining the Apply Versioning rule
            3. Defining the Check Naming Convention rule
            4. Defining the Extract Meeting Filename Metadata rule
            5. Linking to the rules
            6. Error handling
        3. Setting up space templates
        4. Configuring details list view for folder and file display
        5. Configuring Google-Like search
        6. Setting up document review periods
          1. Adding the reviewable aspect
          2. Setting a review period for a folder
          3. Creating script to check folder review periods
          4. Setting up a scheduler that runs review folder content script
        7. Exporting and importing folders, users, and groups
          1. Copying folder hierarchies between Alfresco boxes
          2. Copying users and groups between Alfresco boxes
      5. Introduction to Records Management
        1. Alfresco records management
      6. Summary
    13. 7. Content Model Definition Solutions
      1. Meta Model XML schema
        1. model
        2. model.imports
        3. model.namespaces
        4. model.data-types
        5. model.constraints
        6. model.types
          1. model.types.type.properties
          2. model.types.type.associations
          3. Type definition examples
        7. model.aspects
      2. Modeling tips and tricks
        1. Not changing the out of the box models
        2. Starting small
          1. Performance
          2. Manageability
          3. Changeability
        3. Defining a new custom type for a domain
        4. When to use a type and when to use an aspect
      3. Design patterns
        1. Domain document root type
          1. Problem
          2. Solution
          3. Diagram
          4. Definition example
        2. Composite type
          1. Problem
          2. Solution
          3. Definition example
        3. Multiple types inheritance
          1. Problem
          2. Solution
          3. Definition example
        4. Configuration object
          1. Problem
          2. Solution
          3. Definition example
          4. Code example
      4. Defining a new custom content model
        1. The model definition
        2. Registering the model with the repository
        3. Configuring property sheets for UI display
          1. Alfresco Explorer
            1. Displaying properties in content details pages
            2. Displaying types in add and create content wizards
            3. Displaying types and aspects in rules wizards
            4. Displaying properties in advanced search
            5. Registering the property sheets and the resource file
          2. Alfresco share
            1. Displaying properties in metadata pages
            2. Displaying aspects and types
            3. Displaying properties in advanced search
      5. Summary
    14. 8. Document Migration Solutions
      1. Document migration strategies
        1. General migration strategies
          1. Document staging area
          2. Preserving Modified Date on imported documents
          3. Post migration processing scripts
            1. Search restrictions when running post migration scripts
            2. Unwanted Modified Date updates when running scripts
            3. Versioning problems when running post migration scripts
            4. Post migration script to extract legacy meeting metadata
        2. Importing documents via CIFS
          1. Pros and cons with CIFS import
        3. Importing documents via external tool
          1. Pros and cons with tool import
        4. Importing documents via ACP file
        5. Common steps during document migration
      2. Planning document migration
      3. Implementing document migration
        1. Using Alfresco bulk filesystem import tool
          1. Running Alfresco bulk import tool
          2. Running Alfresco bulk import tool and applying extra metadata
        2. Using an ACP Generator tool
      4. Summary
    15. 9. Business Process Design Solutions
      1. Designing business processes with Swimlane diagrams
        1. Introduction to Swimlane diagrams
          1. Subprocesses
          2. Task metadata
          3. Process phases
          4. Task naming convention
      2. Designing the material production process
        1. Job process Swimlane diagram
        2. Sign-off process Swimlane diagram
        3. Studio process Swimlane diagram
        4. Work process Swimlane diagram
      3. Summary
    16. 10. Business Process Implementation Solutions: Part 1
      1. Implementing the marketing production workflow
        1. Implementing the Work subprocess
          1. Work process—workflow definition (jPDL)
          2. Work process—workflow content model
          3. Work process—property files for UI labels
          4. Work process—using dynamic descriptions and setting task due date
          5. Work process—defining the job data
          6. Work process—task property sheets
          7. Work process—bootstrapping UI property files and property sheets configuration
            1. Work process—testing it
            2. Running the work process from the Alfresco Share UI
        2. Summary
    17. 11. Business Process Implementation Solutions: Part 2
      1. Completing the implementation of the marketing production workflow
        1. Implementing the Studio subprocess
          1. Studio process—workflow definition (jPDL)
          2. Studio process—workflow content model
          3. Studio process—property files for UI labels
          4. Studio process—task property sheets
          5. Studio process—bootstrapping UI property files and property sheets configuration
          6. Studio process—testing it
        2. Implementing the Sign-off subprocess
          1. Sign-off process—workflow definition (jPDL)
          2. Sign-off process—workflow content model
          3. Sign-off process—create and bootstrap the e-mail template
          4. Sign-off process—property files for UI labels
          5. Sign-off process—task property sheets
          6. Sign-off—bootstrapping UI property files and property sheets configuration
          7. Sign-off process—testing it
        3. Implementing the Job process
          1. Job process—workflow definition (jPDL)
          2. Job process—workflow content model
          3. Job process—property file, property sheets, and bootstrapping
          4. Job process—testing it
      2. Extending the workflow solution
        1. Adding e-mail notification
        2. Using customized task dashlets
        3. Management dashlets
          1. All assigned tasks for all jobs dashlet
          2. All job workflows dashlet
        4. Exporting the task summary list in an Excel spreadsheet
        5. Material folder link
      3. Summary
    18. 12. Enterprise Application Integration (EAI) Solutions
      1. Introducing portlets
        1. Portlet standards
        2. Portlet lifecycle
        3. Portlet modes and window states
        4. Portlet implementation and deployment
      2. Implementing portlets that display Alfresco content
        1. Portal architecture
        2. Alfresco portlet implementation approaches
        3. Implementing the "recently added documents" portlet
          1. Implementing the "recently added documents" web script
          2. Implementing a Java-based "recently added documents" portlet
            1. Tools for calling the web service and parsing the response
            2. Creating the portlet class
            3. Creating the standard portlet deployment descriptor
            4. Creating the Liferay portlet deployment descriptor
            5. Building and testing the portlet
          3. Implementing a GWT/GXT-based "recently added documents" portlet
            1. Creating the portlet class
            2. Create the GWT module class
            3. Updating the "recently added documents" web script
            4. Creating the standard portlet deployment descriptor
            5. Creating the Liferay portlet deployment descriptor
            6. Building and testing the portlet
      3. Summary
    19. 13. Types of E-mail Integration Solutions
      1. E-mail integration solutions
        1. E-mail client talking directly to Alfresco via the IMAP protocol
        2. E-mail client talking to Alfresco through custom built plugin and Web Scripts
        3. E-mail server talking to Alfresco through custom module and Web Scripts
      2. Implementing e-mail management solutions
        1. Implementing e-mail management solutions with Alfresco IMAP
          1. Configure Alfresco to enable the IMAP server
          2. Setting up an IMAP account in Outlook 2007
          3. Drag-and-drop e-mail into Alfresco folder in Outlook 2007
          4. Viewing the e-mail from Alfresco Explorer
          5. E-mail attachment extraction
          6. Viewing document metadata from the e-mail client
          7. Dragging-and-dropping e-mails into Alfresco Share site
          8. How to use Mount Points
      3. Summary
    20. 14. Mobile Phone Access Solutions
      1. Alfresco mobile web application for iPhone
        1. Installing the Alfresco mobile web application
        2. Accessing the Alfresco mobile web application
      2. A custom mobile application solution for smartphones
        1. Mobile application architecture overview
        2. Mobile application feature overview
          1. User authentication
          2. Folder and document browsing
          3. Document search
        3. Setting up the mobile Grails application
        4. Configuring the mobile Grails application
        5. Implementing the CMIS service
          1. Fetching the folder root node reference from the CMIS service document
          2. Authenticating the user with Alfresco
          3. Fetching child content for a folder via CMIS
          4. Searching the Alfresco repository via CMIS
          5. Implementing the helper methods for the CMIS service
        6. Implementing UI controllers
        7. Implementing the Groovy Server Pages (GSP)
        8. Implementing an authentication filter
        9. Running the mobile application
      3. Content creation with MobileX
      4. Using the Apache chemistry API
      5. Summary