spine=.816"
Wrox Programmer to Programmer TM
Social Computing with Microsoft SharePoint 2007 ®
®
®
Serving as an introduction to social computing applications, the book answers fundamental questions such as what are social computing applications, how can these applications be used in my organization, how do I manage a social computing project, and what are the major components and applications that currently exist? The authors walk you through the necessary steps for adopting social computing applications and they prepare you for the pitfalls you may face—and explain how to avoid them. You’ll discover that social computing applications can be written on any framework, or even on their own, and you’ll gain an understanding of the landscape of social computing as it relates to SharePoint 2007. With a strong comprehension of how to use SharePoint 2007 with social computing, you can promote collaboration and interaction between people in an organization through the use of blogs, wikis, RSS, mashups, and more.
What you will learn from this book
Enhance Your Knowledge Advance Your Career
Who this book is for This book is for anyone who is interested in using the concepts, applications, and implementations of social computing. Experience working with social computing is not necessary.
®
● How to use content tagging to effectively build solutions ● The benefits of using wikis ● Why your company should have a blog and how you can create it ● How to incorporate SharePoint 2007 with podcasting ● Various ways to use mashups ● The importance of using social computing search in order to have a successful application
Schwartz Ranlett Draper
Social Computing with Microsoft SharePoint 2007
Social computing is a fast-moving and constantly evolving technology that aims to increase communication, encourage collaboration, and enhance productivity among people and resources. This book covers the major concepts, applications, and implementations of social computing and shows you how they are built with SharePoint 2007 today.
Wrox Programmer to Programmer TM
Social Computing with Microsoft SharePoint 2007 ®
®
Implementing Applications for SharePoint to Enable Collaboration and Interaction in the Enterprise
Wrox guides are crafted to make learning programming languages and technologies easier than you think. Written by programmers for programmers, they provide a structured, tutorial format that will guide you through all the techniques involved.
www.wrox.com Recommended Computer Book Categories
$49.99 USA $59.99 CAN
Microsoft SharePoint Server Social Computing
ISBN: 978-0-470-42138-3
Brendon Schwartz, Matt Ranlett, Stacy Draper
Updates, source code, and Wrox technical support at www.wrox.com
tlf
spine=.816"
Programmer to Programmer™
Social Computing with Microsoft SharePoint 2007 ®
Get more out of WROX.com
®
Social Computing with Microsoft SharePoint 2007 978-0-470-42138-3 Through real world examples, this book describes the fundamentals of Social Computing using SharePoint Server and discusses the different productivity and communication product enhancements, including blogs, wikis and technologies such as RSS and Mashups.
Professional Microsoft Office SharePoint Designer 2007 978-0-470-28761-3 Packed with step-by-step examples, sample code, and helpful screen shots, this resource begins with an overview of SharePoint Designer and SharePoint technology and then quickly moves on to teach you how to use SharePoint Designer to customize various aspects of your sites.
Real World SharePoint 2007: Indispensable Experiences from 16 MOSS and WSS MVPs
Interact
Chapters on Demand
Take an active role online by participating in our P2P forums
Purchase individual book chapters in pdf format
Wrox Online Library
Join the Community
Hundreds of our books are available online through Books24x7.com
Sign up for our free monthly newsletter at newsletter.wrox.com
Wrox Blox
Browse
Download short informational pieces and code to keep you up to date and out of trouble!
Ready for more Wrox? We have books and e-books available on .NET, SQL Server, Java, XML, Visual Basic, C#/ C++, and much more!
978-0-470-16835-6 This anthology of the best thinking on critical SharePoint 2007 topics is written by SharePoint MVPs — some of the best and most recognized experts in the field. Some of the topics they cover include: Branding, Business Data Connector, Classified Networks, Forms-based authentication, Information Rights Management, and Zones and Alternate Access Mapping.
Enhance Your Knowledge Advance Your Career
Professional SharePoint 2007 Development
978-0-470-11756-9 A thorough guide highlighting the technologies in SharePoint 2007 that are new for developers, with special emphasis on the key areas of SharePoint development: collaboration, portal and composite application frameworks, enterprise search, ECM, business process/workflow/electronic forms and finally business intelligence.
Professional SharePoint 2007 Web Content Management Development 978-0-470-22475-5 Use this book to learn such things as optimal methods for embarking on web content management projects, ways to implement sites with multiple languages and devices, the importance of authentication and authorization, and how to customize the SharePoint authoring environment.
Beginning SharePoint 2007 Administration: Windows SharePoint Services 3.0 and Microsoft Office SharePoint Server 2007 978-0-470-12529-8 SharePoint MVP Göran Husman walks you through everything from planning and installation to configuration and administration so you can begin developing a production environment.
Beginning SharePoint 2007: Building Team Solutions with MOSS 2007
Contact Us. We always like to get feedback from our readers. Have a book idea? Need community support? Let us know by e-mailing
[email protected]
978-0-470-12449-9 This book provides detailed descriptions and illustrations of the functionality of SharePoint as well as real-world scenarios, offering coverage of the latest changes and improvements to Microsoft Office SharePoint Server 2007.
Schwartz ffirs.tex V3 - 12/26/2008
3:42pm
Social Computing with Microsoft® SharePoint® 2007 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxv Chapter 1: Social Computing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 Chapter 2: Building Effective Collaboration Sites . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 Chapter 3: Content Tagging . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 Chapter 4: Wikis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79 Chapter 5: Blogs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121 Chapter 6: RSS and Atom . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163 Chapter 7: Social Networking . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187 Chapter 8: Podcasting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215 Chapter 9: Mashups . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 247 Chapter 10: Presence and OCS/Live . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 277 Chapter 11: Interactive Experience, Video, and Communication . . . . . . . . . . . . . . . . . . . . . . . 303 Chapter 12: Search . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 329 Appendix A . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 361 Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 369
Page i
Schwartz ffirs.tex
V3 - 12/26/2008
3:42pm
Page ii
Schwartz
ffirs.tex V3 - 12/26/2008
Social Computing with Microsoft® SharePoint® 2007
3:42pm
Page iii
Schwartz ffirs.tex
V3 - 12/26/2008
3:42pm
Page iv
Schwartz ffirs.tex V3 - 12/26/2008
Social Computing with Microsoft® SharePoint® 2007 Implementing Aplications for SharePoint to Enable
Brendon Schwartz, Matt Ranlett, Stacy Draper
Wiley Publishing, Inc.
3:42pm
Page v
Schwartz ffirs.tex
V3 - 12/26/2008
Social Computing with Microsoft® SharePoint® 2007: Implementing Applications for SharePoint to Enable Published by Wiley Publishing, Inc. 10475 Crosspoint Boulevard Indianapolis, IN 46256
www.wiley.com Copyright © 2009 by Wiley Publishing, Inc., Indianapolis, Indiana ISBN: 978-0-470-42138-3 Manufactured in the United States of America 10 9 8 7 6 5 4 3 2 1 Library of Congress Cataloging-in-Publication Data is available from the publisher. No part of this publication may be reproduced, stored in a retrieval system or transmitted in any form or by any means, electronic, mechanical, photocopying, recording, scanning or otherwise, except as permitted under Sections 107 or 108 of the 1976 United States Copyright Act, without either the prior written permission of the Publisher, or authorization through payment of the appropriate per-copy fee to the Copyright Clearance Center, 222 Rosewood Drive, Danvers, MA 01923, (978) 750-8400, fax (978) 646-8600. Requests to the Publisher for permission should be addressed to the Permissions Department, John Wiley & Sons, Inc., 111 River Street, Hoboken, NJ 07030, (201) 748-6011, fax (201) 748-6008, or online at www.wiley.com/go/permissions. Limit of Liability/Disclaimer of Warranty: The publisher and the author make no representations or warranties with respect to the accuracy or completeness of the contents of this work and specifically disclaim all warranties, including without limitation warranties of fitness for a particular purpose. No warranty may be created or extended by sales or promotional materials. The advice and strategies contained herein may not be suitable for every situation. This work is sold with the understanding that the publisher is not engaged in rendering legal, accounting, or other professional services. If professional assistance is required, the services of a competent professional person should be sought. Neither the publisher nor the author shall be liable for damages arising herefrom. The fact that an organization or web site is referred to in this work as a citation and/or a potential source of further information does not mean that the author or the publisher endorses the information the organization or web site may provide or recommendations it may make. Further, readers should be aware that Internet web sites listed in this work may have changed or disappeared between when this work was written and when it is read. For general information on our other products and services please contact our Customer Care Department within the United States at (877) 762-2974, outside the United States at (317) 572-3993 or fax (317) 572-4002. Trademarks: Wiley, the Wiley logo, Wrox, the Wrox logo, Wrox Programmer to Programmer, and related trade dress are trademarks or registered trademarks of John Wiley & Sons, Inc. and/or its affiliates, in the United States and other countries, and may not be used without written permission. Microsoft and SharePoint are registered trademarks of Microsoft Corporation in the United States and/or other countries. All other trademarks are the property of their respective owners. Wiley Publishing, Inc., is not associated with any product or vendor mentioned in this book. Wiley also publishes its books in a variety of electronic formats. Some content that appears in print may not be available in electronic books.
3:42pm
Page vi
Schwartz
ffirs.tex V3 - 12/26/2008
3:42pm
To my wife, Heidi, the center of my life and family, you are my light at all times and my eternal true love. I am forever grateful for having you. Thank you, my princess. To my parents, Richard and Sandie Schwartz. Dad, you are my rock and my hero. Thank you for my strength. Mom, your unconditional love has taught me to be patient, and you taught me to think outside of conventional wisdom. To my grandmother, Angie, I love you with all my heart. To my late grandfather, Werner Buschmann, you are always with me. — Brendon Schwartz To Kim, whose love and support has encouraged and inspired me to always reach for more. — Matt Ranlett To my dearest macarena and delight of my life, Alicia. Thank you for all your patience and tolerance. Now what do you say we have some family fun this weekend? — Stacy Draper
Page vii
Schwartz ffirs.tex V3 - 12/26/2008
3:42pm
Page viii
Schwartz
f01.tex
V3 - 12/26/2008
3:45pm
About the Author Brendon Schwartz is a senior software engineer at Telligent. He currently specializes in social computing, SharePoint integration, and enhancing Community Server Evolution. He has specialized in social computing applications and SharePoint as a consultant for Fortune 100 and Fortune 500 companies. He was an architect on one of the largest hosted solutions of a SharePoint project customized for social computing. A Microsoft MVP for Microsoft Office SharePoint Server and past ASP.NET MVP, Brendon is also a co-author of Professional SharePoint 2007 Development from Wrox Press. He has also contributed to other Wrox titles such as Professional SharePoint 2007 Web Content Management Development: Building Publishing Sites with Office SharePoint Server 2007 and Professional Microsoft SharePoint Workflow Programming. Brendon has become a seasoned conference speaker, authored several magazine articles, and is co-founder of the Atlanta .NET Regular Guys, which is hosted at DevCow (www.devcow.com). Brendon has a wonderful family with his wife, Heidi Schwartz, and their three cats. He enjoys spending time with his family and looking at the future of social computing. Brendon hosts and runs a number of community-related web sites and is a leader in the Atlanta user group community. You can find his blog at http://blogs.sharepointguys.com/brendon. Matt Ranlett, a SharePoint Server MVP and principal consultant with Intellinet, has been a fixture of the Atlanta .NET developer community for many years. A founding member of the Atlanta Dot Net Regular Guys (www.devcow.com) and the SharePoint Guys (www.sharepointguys.com), Matt has formed and leads several Atlanta area user groups. Despite spending dozens of hours after work on local and national community activities such as the Free Training 1, 2, 3! series (www.freetraining123.com), helping to organize four Atlanta code camps, having served two years on the INETA board of directors as the vice president of technology, and appearing in several podcasts, Matt recently found the time to get married to a wonderful woman named Kim, whom he helps to raise three dogs and their son Parker, born in early May 2008. Stacy Draper has been working with Internet and web-based technologies since 1993, giving him a wealth of experience that he shares with clients every day. In 1998, he founded Wild Wires, LLC to enable him to continue to expand his experience and share that knowledge through writing and speaking engagements. Since 2003, Stacy has concentrated his focus on Microsoft’s SharePoint Products and Technologies. In 2006 and 2007, he was awarded Microsoft’s Most Valuable Professional designation, recognizing his community involvement and evangelism for Microsoft Office SharePoint Server (MOSS). Stacy has presented sessions and run demonstrations for the keynotes of VSLive and DevConnections and moderated a Birds of a Feather session at Tech-Ed. He is also the co-author of SharePoint 2003 Advanced Concepts: Site Definitions, Custom Templates, and Global Customizations and SharePoint 2003 Advanced Concepts: Site Definitions, Custom Templates, and Global Customizations. He publishes irregularly on SharePoint topics on his blog: www.wildwires.com/blog/.
Page ix
Schwartz f01.tex
V3 - 12/26/2008
3:45pm
Page x
Schwartz
f02.tex
V3 - 12/26/2008
3:46pm
Credits Acquisitions Editor Katie Mohr
Vice President and Executive Group Publisher Richard Swadley
Development Editor Ed Connor
Vice President and Executive Publisher Barry Pruett
Technical Editor Andrew Edney
Associate Publisher Jim Minatel
Production Editor Dassi Zeidel Copy Editor Publication Services, Inc. Editorial Manager Mary Beth Wakefield Production Manager Tim Tate
Project Coordinator, Cover Lynsey Stanford Proofreader Nancy Hanger, Windhaven Indexer Ted Laux
Page xi
Schwartz f02.tex
V3 - 12/26/2008
3:46pm
Page xii
Schwartz f03.tex
V3 - 12/26/2008
3:46pm
Acknowledgments This book has been a collaboration effort from the start and pulled together with hard work and dedication. I would like to thank my family first and foremost — my wife, Heidi Schwartz; my mom and dad, Richard and Sandie Schwartz; my sisters, Elise Ackerman and Adair Schwartz. Without their help, this book would never be possible. In addition, my wife Heidi’s family — her mom and dad, Gale and Marvin York — has been wonderful and supportive. A special thanks to Matt Ranlett, who has always been by my side to help accomplish the vision of any crazy idea and for bringing his own vision to everything we do and working together as team for many years. You will see that the effort and dedication he put into the book is what has made it the great book it is. A big thank you for the tremendous effort from the staff at Wrox for keeping this project on track, even with tight timelines. We pushed them to the limit, and they had no problems responding. I would especially like to thank Katie Mohr for having the vision to help me pull this book outline together and working her team to understand the importance of the book. Thanks to Ed Connor for taking all of the material and quickly getting it all ready for the final publishing. This book took a monumental effort from many people who helped work on these chapters. Without them, this book would not have happened. They are the reason we were able to keep the book together. Thanks to Paul Galvin, Derrick Hadzima, Pirooz Javan, Nelson Puello, Oscar Medina, and Eric Perry. Thank you to the SharePoint Product team for their insight and guidance, especially Lawrence Liu, who is now a fellow team member at Telligent. Thanks to all of our fellow SharePoint MVPs, especially Bob Fox. You will see some of his contributions directly in the book. — Brendon Schwartz This book has been a labor of laughter and tears when the original concept of social computing and Enterprise 2.0 took off in our minds and eventually took over our lives as we struggled to write the story down. I’d like to thank the people who have helped me get these ideas out of my head and onto paper. First and foremost is my beautiful wife, Kim, who left me alone and took care of our newborn son while I struggled to focus on writing about wikis and blogs. Without her infinite patience, this book would surely still be in outline form somewhere in the digital ether. I’d like to thank my son Parker for those days and nights where he was quiet and playful. Kim and I have been blessed with a beautiful, even-tempered baby boy. Among my greatest challenges while writing this material was fighting the urge to go play with the baby rather than work. I’d like to thank my brother, Brendon Schwartz, in all of my SharePoint efforts these past several years. This book and the entire concept of social computing as something valuable to business began with him and then spread to me much like a rash. Without his dedicated management of this project and his constant resourcefulness, I’d probably still be treating SharePoint like an online file cabinet. Our co-author Stacy and the consultants we worked with, such as Paul Galvin, Pirooz Javan, Nelson Puello, Oscar Medina, Derrick Hadzima, and Eric Perry, were the source of numerous conversations that stimulated our minds and directed the course of this book. Finally, I’d like to thank my family for setting such great examples of how hard work can pay off and inspiring me to reach for excellence in my chosen field. — Matt Ranlett
Page xiii
Schwartz f03.tex
V3 - 12/26/2008
Acknowledgments Here is a little more about the other authors that have contributed to this book. Paul Galvin has been working professionally in the IT consulting world since 1991, but he started off with the Timex Sinclair 1000 somewhere around the age of ten, learning to program its peculiar form of BASIC. Paul began to focus on Microsoft technology by diving into BizTalk Server 2004 and was amazed and excited by the improvements in 2006. He thought his career-providing integration solutions with BizTalk would never end. That abruptly changed when he went to work at Conchango the first business day of 2007. He was placed into the collaboration group that used SharePoint to deliver business solutions and never looked back. EMC acquired Conchango in the summer of 2008, where Paul continues to work as a solutions architect focusing on SharePoint. Microsoft awarded Paul with MVP for SharePoint in July 2008. He lives in northern Bergen County, New Jersey, just a few miles west of Manhattan, with his wife and son. Derrick Hadzima is a MCTS for WSS 3.0 and MOSS 2007 out of Denver, Colorado. He holds a bachelor of science in mathematics from Adams State College and a master of science in computer information systems from Regis University. He spends most of his time generating solutions in the custom development and portals space for Slalom Consulting. When not at work, he enjoys spending time with his wife, Sheila, and son, James; snowboarding; and playing golf. Pirooz Javan has been working with computers for over 15 years. In 1999, he started his first company providing IT services, growing it into a Microsoft Gold Certified Partner. In 2002, he started working with SharePoint Product Technologies and has been involved in countless projects varying in size. His focus has been on enterprise deployments, architecture, and solution building with SharePoint. He has been a speaker at user group meetings, conventions, and seminars on collaboration with SharePoint. Pirooz holds a bachelor of science in systems engineering from George Mason University. Nelson Puello is a consultant based out of Atlanta, Georgia, who specializes in collaboration and messaging technologies. With 15 years of IT experience, Nelson first began his career as a database developer in his native Dominican Republic, where he had earned a bachelor’s degree in systems engineering. In the mid-1990s, Nelson moved to the Unites States, where he earned a master’s degree in communications and met his wife, Kerry. Today, Nelson architects global collaboration solutions for his clients using Microsoft Office SharePoint Server, Exchange Server, and Office Communications Server. Nelson and his wife enjoy raising their four children, Elisa, Sophia, Alex, and Claire. Oscar Medina is a passionate software engineer with over 12 years of experience in building complex solutions on the Microsoft platform. Oscar has been deeply involved with SharePoint since its first version. He has helped large corporations in the planning, design, customization, integration, and implementation of MOSS 2007 while at Microsoft Consulting Services Northern California Region. Lately, he spends most of his days and some late nights exploiting SharePoint capabilities and blogging about it when he has time. You can read his blog at www.sharepointace.com/blog. When not at work, he takes on dual roles as a proud father of his three-year-old daughter, Adriana, and husband of Marisa, a research scientist. Eric Perry has been working with computers since the TI-99 and Apple II days. He currently specializes in architecting and implementing enterprise solutions using Microsoft technologies. He has spent the last several years implementing these solutions for logistic providers and customs agencies worldwide. Eric enjoys working out of south Florida, where he lives with his wife, Heather; daughter, Katrina; and son, Aaron.
xiv
3:46pm
Page xiv
Schwartz
f04.tex V2 - 12/26/2008
3:48pm
Foreword This is the book that I would have written, likely in collaboration with Brendon and Matt, if I had had just a bit more time this past year. What’s so exciting about SharePoint’s social-computing capabilities is that they are an integral part of a robust and extensible platform that addresses a broad range of business and IT problems. Organizations deploy SharePoint as the foundation of their business productivity infrastructure. Given that social computing is a natural evolution and extension of collaborative computing, it must not be viewed, managed, or used as a separate set of features. Blogs, wikis, and discussions (often referred to as social media) complement the document sharing and management capabilities of a SharePoint team site. User profiles and colleagues lists accommodate the humancentric nature of how work actually gets done within an organization — that is, by way of people’s connections with others. Brendon and Matt have been longtime Microsoft Most Valuable Professionals (MVPs). Not only are they widely recognized as thought leaders and expert practitioners of SharePoint and other Microsoft products and technologies, but they also exemplify how social-computing capabilities can be used to share knowledge more efficiently and to enhance the community experience significantly through their blogs and contributions to online forums. If you want to learn about how to leverage SharePoint’s social-computing capabilities to address a multitude of common business problems and usage scenarios, this is the definitive book for you to read and reread! If you want to learn about customizing and extending SharePoint as a platform to implement useful social-computing applications, this is still the best book available for you. However, don’t rely on just this one book to educate yourself about social computing or SharePoint. There is plenty of up-to-date and relevant information that you can easily find on the Worldwide Web, starting with the SharePoint Community Portal at http://MSSharePointCommunity.com. — Lawrence Liu Lawrence Liu is director of Platform Strategy at Telligent. He spearheads Telligent’s Platform Strategy with the primary objective of keeping Telligent on track as an industry leader with the most robust and extensible social software platform; adopting the relevant technology standards and policies; and providing best-of-breed and innovative features and capabilities. Prior to joining Telligent, Lawrence was with the Microsoft SharePoint product group for 3 years as the Worldwide Community Lead and Senior Technical Product Manager for Social Computing and Accessibility, where he led the SharePoint MVP program, established the Platform+Partners strategy, and founded the open source Community Kit for SharePoint project.
Page xv
Schwartz f04.tex
V2 - 12/26/2008
3:48pm
Page xvi
Schwartz ftoc.tex V3 - 12/27/2008
5:39am
Contents
Acknowledgments Foreword Introduction Chapter 1: Social Computing History of Social Computing Social Computing Concepts User Profiles Social Applications on the Internet Today
Social Computing for the Enterprise Enterprise Software Platform Building a YouTube.com-Style Media Site Web 2.0 Enterprise 2.0 The Business Value of Social Computing Enabling Technologies of Social Computing Software Services
Summary
Chapter 2: Building Effective Collaboration Sites What Is a Collaboration Site? What Makes an Effective Site? Get Feedback from Users Site Usage Data Central Administration Setup Shared Service Provider (SSP) Administrator Setup Site Collection Administrator Setup
Preplanning Stage Be Realistic Involve the Business Users Early Set Up a SharePoint Environment for Users to Use Include the Right People Early Build Wireframes and Use Cases
xiii xv xxv 1 1 2 8 10
11 13 13 14 16 17 18 23
23
25 25 26 26 27 27 28 29
30 30 31 32 32 35
Page xvii
Schwartz ftoc.tex V3 - 12/27/2008
Contents Find Good Testers Plan for Changes
Site Structure Site Security Site Hierarchy
Governance Managing Content Growth
End-user Support and Training User Adoption Curve Milestone One Milestone Two Milestone Three Milestone Four
Summary
37 38
38 38 40
42 43
44 45 46 47 47 47
47
Chapter 3: Content Tagging
51
What is Content Tagging?
51
Content Tagging by Example: delicious.com and wordle.net Content Tagging by Example: Rating MSDN Articles
Why Should Organizations Embrace Content Tagging? Content Tagging Brings Value
Organizational Challenges to Content Tagging Folksonomies Are Scary
Tagging Content in SharePoint Extending OOB Content Tagging Poor Man’s Tagging: Site Columns Extending Poor Man’s Tagging: Choice Columns Summary: OOB Support CodePlex CodePlex Content Tagging Solutions Vendor Offerings
You Try It You Try It: Poor Man’s Tagging You Try It: CKS Tag Cloud You Try It: Summary
Success Factors for Content Tagging in Organizations Walk before You Run Market the Solution Build, Buy, or Both
Summary
xviii
52 55
56 57
58 58
59 62 63 64 65 65 69 70
71 71 73 75
75 75 76 76
76
5:39am
Page xviii
Schwartz
ftoc.tex V3 - 12/27/2008
5:39am
Contents Chapter 4: Wikis Wikis Wikis Raison d’ˆetre Common Wiki Features Pros and Cons of Wikis Wikis in SharePoint
Success Factors for Wikis in Organizations Enterprise and Community Contributions Summary
79 80 81 81 85 87
113 116 119
Chapter 5: Blogs
121
What is a Blog?
121
Postings or Articles Comments Categories or Tags RSS
History Reasons for Corporate Blogging Public-Facing Blogs Internal Blogs
SharePoint Blogs You Try It Create a SharePoint Blog Site Basic Blog Settings Customizations Posting to a Blog Enriching the Comment Experience Blog Permissions
Enterprise and Community Contributions Open Source Enterprise
Summary
121 121 122 123
123 124 124 129
129 130 130 134 136 143 144
157 157 160
160
Chapter 6: RSS and Atom
163
What Are RSS Feeds?
163
Why You Need RSS? What Does RSS Mean?
History of RSS Structure of an RSS Feed
164 164
165 165
xix
Page xix
Schwartz ftoc.tex V3 - 12/27/2008
Contents RSS Specification Versions Differences on Atom and RSS
SharePoint Search Results and RSS Syndicating SharePoint Lists Using RSS Changing RSS Subscription Settings
Applications to View RSS RSS Capabilities in Outlook 2007
Email versus RSS You Try It Bringing SharePoint List RSS Subscriptions to the Desktop Importing Existing Subscriptions Managing Feed Properties Subscribing to a SharePoint RSS Feed Windows Vista Gadget Feed Headlines Viewing People Search Results RSS Feed Subscription Success Factors for RSS in Organizations Enterprise and Community Contributions RSS FeedReader by Tim Heuer Web Config File Web Part Properties
Summary
Chapter 7: Social Networking
168 171 175
176 176
178 178 178 179 180 180 183 183 183 184 184 184 186
186
187
The History of Social Networking The Business Value Proposition Social Networking in SharePoint
188 192 194
Configure the My Inbox Web Part
204
Training Your Users You Try It
Summary
Chapter 8: Podcasting History Determine Your Audience Provide Content and Information Relevant to the Listeners Creating an Archive
You Try It Configure IIS Identify Content and Audience Record Content
xx
166 166
205 206
214
215 215 217 218 219
221 221 222 222
5:39am
Page xx
Schwartz
ftoc.tex V3 - 12/27/2008
5:39am
Contents Create the RSS Feed File Publish the Two Files to a Server Spread the Word and Subscribe
Podcasting in SharePoint Getting It All to Work Success Factors for Podcasting In Organizations Enterprise and Community Contributions
Summary
Chapter 9: Mashups Reasons to Assemble Data Example Sites
Mashups in SharePoint Connecting SharePoint Web Parts Visualization on the Web Page Viewer Web Part Content Editor Web Part XML Web Part Data View Web Part Power Query Web Part
Sources of Data Pulling Data from SharePoint Data in Other Systems
Enterprise and Community Contributions Office Business Application Composer You Try It Step One: Attaching a Sample Database Step Two: Configuring the BDC Meta Man Step Three: Creating an Application Definition File Step Four: Uploading the Application Definition File Step Five: Creating a Mashup with BDC Web Parts
Success Factors for Mashups in Organizations Summary
Chapter 10: Presence and OCS/Live Office Communications Server and Presence Integration with Microsoft Office Outlook Calendar Telephone Systems Integration Voice Mail Integration Microsoft Office Integration
223 226 226
228 228 242 244
245
247 248 249
255 256 257 258 258 258 258 258
259 259 263
264 266 267 267 268 268 271 271
273 276
277 278 278 278 279 279
xxi
Page xxi
Schwartz ftoc.tex V3 - 12/27/2008
Contents Integration with Other Organizations Integration with Third-party Instant Messaging Applications
Presence States of Presence in Office Communicator 2007 Access Levels The Presence Button and What It Says About You
OCS/Live Integration with SharePoint Integration Benefits
Other SharePoint Features that Complement Presence Availability Web Part
You Try It
279 280
280 281 282 283
285 286
287 287
288
Enabling Presence from Windows Live Messenger in SharePoint Using OCS with Office and SharePoint
288 292
Success Factors for Presence and OCS/Live in organizations
300
Online Communications Etiquette User Adoption
Summary
Chapter 11: Interactive Experience, Video, and Communication Interactive Media Microsoft RoundTable Virtual Worlds
Discussion Forums Participation Moderation Discussion Technologies Discussion Forums in SharePoint You Try It
Embedded Chat Community Chat Offerings
Photo Stitching Digital Photo Stitching Technology Business Uses for Photo Stitching
Videos Videos Have Business Value Video Techniques
Social Communication Micro-blogging Targeting Content Key Performance Indicators
Summary
xxii
300 300
300
303 303 304 304
306 306 307 307 309 310
315 316
317 317 318
319 319 320
320 321 323 326
326
5:39am
Page xxii
Schwartz ftoc.tex V3 - 12/27/2008
5:39am
Contents Chapter 12: Search What Is Social Search? Social Search Examples
Search Fundamentals Relevance and Ranking Algorithmic Search versus Social Search
329 330 330
332 332 332
Social Search Weaknesses SharePoint Search Fundamentals
335 335
SharePoint Search Architecture SharePoint Search Core Features Executing Search Queries
335 337 343
SharePoint and Social Search Supporting Functionality Gaps Walk-through: Create Department Contacts List Benefits Success Factors for Search in Organizations
Enterprise and Community Contributions SharePointPedia CodePlex Faceted Search CodePlex Wildcard Search
Summary
Appendix A: Installation Instructions for SharePoint Solutions Web Sites and Software Mentions
Index
345 345 348 348 357 357
358 358 358 358
359
361 362
369
xxiii
Page xxiii
Schwartz ftoc.tex V3 - 12/27/2008
5:39am
Page xxiv
Schwartz f05.tex
V3 - 12/26/2008
3:53pm
Introduction This book is an introduction to social computing applications. It answers some of the questions like: T
What are social computing applications?
T
How can these applications be used in my organization?
T
What are the major components and applications already built today?
You will notice that there are not many code examples in this book. This is on purpose as the book was intended to introduce you to social computing and give an overview of the concepts. Social computing is a fast-moving technology, and many of the concepts grow or change every year. Use this book as part of your research for how you will implement any of the social computing applications, but also use online research for keeping updated on new changes to this exciting area of software today. Although social computing applications can be written on any framework or even on their own, we have taken a unique approach to help you understand the landscape of social computing as it relates to SharePoint 2007. Each chapter introduces you to the concept of the chapter, for example, the RSS chapter gives a brief overview of what RSS is and the history behind it. Then the chapter provides a section of how this is possible with SharePoint 2007. Finally, if there are any extensions that would make it easier to work with social computing and SharePoint, such as open source code or products you can buy, we briefly discuss these options so you are aware of them for your organization.
Who This Book Is For This book was written for anyone who is approaching social computing applications for an enterprise. This would include developers, managers, directors, and even C-level executives. This book is designed to help decision makers learn about the concepts and understand how they might implement them in their own company. Although this book does reach out to developers, most of the chapters give examples with either built-in options and configuration or show how to use code already installed on SharePoint. Anyone interested in social computing and the topics covered in each chapter could read this book to get an understanding of what each concept has. The You Try It sections do require having SharePoint 2007 and some of the features installed to actually attempt them. If you are not an IT professional or developer, this is the perfect opportunity for you to start a discussion with your technology group to try out some of these wonderful tools. The book is designed to allow the reader to start from not knowing about social computing to being able to have an understanding of the concepts and how he or she would use them in his or her company. To accomplish this, you can read the book from front cover to back, or you can pick the specific chapter that your organization is interested in. Because so many people want to know exactly what the topics are and what they are about, we have organized the book into chapters that work together, but stand alone and
Page xxv
Schwartz f05.tex
V3 - 12/26/2008
Introduction provide complete coverage of a topic. We have also used a very simple and direct naming of each chapter so you can quickly recognize what the chapter is about and what it covers.
What This Book Covers This book covers the major concepts, applications, and implementations of social computing and shows how they are built with SharePoint 2007 today. As you noticed earlier, this is a fast-moving area of computing. Where SharePoint 2007 does not have the capability today, we made sure and explained how you could extend SharePoint 2007 with open source or products you can purchase. We did not cover every product on the market, but we gave you any idea of what you can look for when you are trying to extend SharePoint.
How This Book Is Structured The first two chapters provide the introduction for people new to social computing and how people will have to manage a social computing project. The following chapters break out each concept into a chapter to make it easy to get up to speed and understand what the topic is about. Chapter 1 provides the introduction to what social computing is and the concepts behind social computing applications and discusses some of the technologies your organization might use to implement these concepts. Chapter 2 describes how to build a successful project around social computing. This chapter takes you through steps that can make your team more successful, discusses the adoption of the application, and points out pitfalls that may get in your way to avoid them. Chapter 3 discusses content tagging as one of the fundamental pieces of social computing. This chapter shows what content tagging is and how to use it to effectively build a solution with more visibility. Chapter 4 demonstrates how to use wikis to build solutions for your organization and gives you hands-on examples of what the wiki can do for your company. Chapter 5 covers the popular topic of blogs. This chapter shows you how to set up your own blog for your organization as well as discuss why you would even want a blog. Chapter 6 delves into RSS and shows you what the XML is all about. This chapter covers what RSS is and how to consume it in your organization to successfully increase communication. Chapter 7 gives an overview of social networking and SharePoint 2007 My Sites and what is required for social computing in a company. Chapter 8 demonstrates what podcasting is and how you might implement this concept in your organization. Podcasting is a fast-growing concept that many people are using for communication and entertainment. This chapter will show how to use SharePoint 2007 to enhance the communication in your organization. Chapter 9 explains what mashups are and how you might use them today. Mashups are still growing in organizations and still need some customizations to make them powerful, but you will understand the concepts and an overview of how to create these powerful applications.
xxvi
3:53pm
Page xxvi
Schwartz f05.tex
V3 - 12/26/2008
3:53pm
Introduction Chapter 10 covers presence and OCS/Windows Live as a central part of social computing. This chapter helps to understand how you might enhance your projects just by including a valuable part of social computing and being connected to other people. Chapter 11 discusses some of the forward-looking technologies such as interactive media, video, and communication. These technologies are still being transformed from the general use applications to powerful implements that include pieces of many of the social computing concepts. Chapter 12 talks about social computing search and how to use search to find the information you are looking for. In social computing applications, finding data is critical to the success of the application, and this chapter introduces how to accomplish that with SharePoint 2007.
What You Need to Use This Book This book has both concepts and examples for the user to work with. There is no need for software for the concepts described in the chapters, but the examples will require Windows SharePoint Services v3 (WSS) or Microsoft Office SharePoint Server (MOSS). Some of the examples will require MOSS to complete them. This book does not require, but assumes you will have SharePoint SP1 or higher installed on your machines. To perform the samples and examples, you will need the following: T
Windows Server 2003 SP1
T
Visual Studio 2005 or above
T
Windows SharePoint Services v3 (partial examples)
T
Microsoft Office SharePoint Server 2007 (full examples)
To build software for SharePoint, you will need to have Windows Server 2003. The client machines that connect to SharePoint can be Windows XP or above.
Conventions To help you get the most from the text and keep track of what’s happening, we’ve used a number of conventions throughout the book. Examples that you can download and try out for yourself generally appear in a box like this:
Example title This section gives a brief overview of the example.
Source This section includes the source code. Source code Source code Source code
xxvii
Page xxvii
Schwartz
f05.tex
V3 - 12/26/2008
Introduction Output This section lists the output: Example output Example output Example output
As for styles in the text: T
We highlight new terms and important words when we introduce them.
T
We show keyboard strokes like this: Ctrl+A.
T
We show file names, URLs, and code within the text like so: persistence.properties.
T
We present code in two different ways: We use a monofont type with no highlighting for most code examples. We use gray highlighting to emphasize code that’s particularly important in the present context.
Source Code As you work through the examples in this book, you may choose to type in all the code manually or use the source code files that accompany the book. All of the source code used in this book is available for download at www.wrox.com. Once at the site, simply locate the book’s title either by using the Search box or one of the title lists and click the Download Code link on the book’s detail page to obtain all the source code for the book. Because many books have similar titles, you may find it easiest to search by ISBN; this book’s ISBN is 978-0-470-42138-3. Once you download the code, just decompress it with your favorite compression tool. Alternately, you can go to the main Wrox code download page at www.wrox.com/dynamic/books/download.aspx to see the code available for this book and all other Wrox books.
Errata We make every effort to ensure that there are no errors in the text or in the code. However, no one is perfect, and mistakes do occur. If you find an error in one of our books, like a spelling mistake or faulty piece of code, we would be very grateful for your feedback. By sending in errata, you may save another reader hours of frustration. At the same time, you will be helping us provide even higher quality information. To find the errata page for this book, go to www.wrox.com and locate the title using the Search box or one of the title lists. Then, on the book details page, click the Book Errata link. On this page, you can view all errata that has been submitted for this book and posted by Wrox editors. A complete book list, including links to each book’s errata, is also available at www.wrox.com/misc-pages/booklist.shtml.
xxviii
3:53pm Page xxviii
Schwartz f05.tex
V3 - 12/26/2008
3:53pm
Introduction If you don’t spot your error on the Book Errata page, go to www.wrox.com/contact/techsupport.shtml and complete the form there to send us the error you have found. We’ll check the information and, if appropriate, post a message to the book’s errata page and fix the problem in subsequent editions of the book.
p2p.wrox.com For author and peer discussion, join the P2P forums at p2p.wrox.com. The forums are a web-based system for you to post messages relating to Wrox books and related technologies and interact with other readers and technology users. The forums offer a subscription feature to email you topics of interest of your choosing when new posts are made to the forums. Wrox authors, editors, other industry experts, and your fellow readers are present on these forums. At http://p2p.wrox.com, you will find a number of different forums that will help you not only as you read this book, but also as you develop your own applications. To join the forums, just follow these steps:
1. 2. 3.
Go to http://p2p.wrox.com, and click the Register link.
4.
You will receive an email with information describing how to verify your account and complete the joining process.
Read the terms of use, and click Agree. Complete the required information to join as well as any optional information you wish to provide, and click Submit.
You can read messages in the forums without joining P2P, but, in order to post your own messages, you must join. Once you join, you can post new messages and respond to messages other users post. You can read messages at any time on the Web. If you would like to have new messages from a particular forum emailed to you, click the Subscribe to this forum icon by the forum name in the forum listing. For more information about how to use the Wrox P2P, be sure to read the P2P FAQs for answers to questions about how the forum software works as well as many common questions specific to P2P and Wrox books. To read the FAQs, click the FAQ link on any P2P page.
xxix
Page xxix
Schwartz f05.tex
V3 - 12/26/2008
3:53pm
Page xxx
Schwartz c01.tex
V3 - 12/26/2008
11:38am
Social Computing If you are reading this book, then you are either interested in or have heard about software referred to as social. Social computing applications are those built on the various supporting technologies and concepts that are designed to enhance a person’s experience on the computer by including the interactions and experiences of multiple users. A number of different categories of social applications have been identified by the continuing Web 2.0 trend, including social media, social bookmarking, and social networks. Nowhere has this trend toward social applications been more apparent than on the Internet. Each of the different social application categories have been exemplified by numerous web sites that are very popular today in both the mainstream media and countless individuals’ personal use. Some of the best-known public sites are Facebook, MySpace, YouTube, and LinkedIn. Web sites are only one example of social computing applications. There are many types of social computing applications that can be built. When building a social computing application, it is important to think of the audience the application is being created for. The problems solved by an Internet site or public-facing corporate web site are going to be very different than the problems solved for employees of a company using internally available resources. This could mean that most people using a web site such as Facebook on their own time will be using it for personal use or relaxation. When a user is at work, he or she is usually trying to accomplish a work task that a social application can assist with. Because most people want to get their work done during the working hours so they can go home to enjoy their personal time, make sure to keep this in mind when creating new social applications. When getting requirements from business units, requests such as wanting a site like Facebook may cause application designers to mix application features designed for work and application features designed for leisure. This book will talk about the concepts and technologies that can be used with SharePoint to bring the benefits of social computing applications to enterprise users.
Histor y of Social Computing The principles and ideas of social computing have been around for a long time. In fact, they have taken on different names throughout the years. As early as the 1980s, things like discussion forums (known then as bulletin board systems) and email provided ways for people outside of
Page 1
Schwartz c01.tex
V3 - 12/26/2008
Chapter 1: Social Computing military and universities to interact with each other. Social computing has actually almost always started as a tool that people saw as only being useful for goofing off or having fun. Originally, email was thought of as a way for people to communicate with their friends and did not provide a critical business value. During the rise of the personal computing era, people within companies started to get desktop computers, and companies began to see this as a valuable tool for increasing business communication with remote offices and customers. However, many companies originally didn’t see the value of allowing their employees to be on the Internet, for example, chatting with friends or surfing personal web sites, such as those found on www.geocities.com, one of the first freely available web page hosting sites. Another problem during this time was the cost of sending all of this information through the Internet. The cost of providing Internet to all households and employees was still a large price to pay. Most social computing applications rely heavily on transferring larger than normal amounts of data. During the mid-1990s, many users still had 56K modems or less. (In most cases, it was much less.) This made it initially difficult to have large web sites that were very interactive with rich media or continuously manage instant messaging. AOL was one of the first to provide this service to the mass public, but it took much longer to finally adopt these standards within companies. As the close of the 1990s came, Internet bandwidth and the number of computers were no longer a problem. As the number of connected machines increased, popular new tools like instant messaging and interactive web site portals started to show up. During the dot-com days, many companies started to push the limit of what could be done with web sites. There were many investors for technology firms who were hoping to get rich, and this helped move the web portal and space. New applications like wikis and blogs started to show up for people to use. Sites like Wikipedia and WordPress quickly became popular as more users began to share their thoughts, ideas, and experiences. The beginning of the new century was the start of a sea change that was to bring social computing to the forefront of many computer users’ daily experiences. More and more people started to use the social computing tools that have grown into what we know today.
Social Computing Concepts In order to build social computing applications, it is good to know what types of features define social applications. There are many types of social computing applications that have been implemented today, but each one can usually be assigned to a general category that has similar traits. These general categories can be viewed as the social computing concepts. Each category has a different focus in terms of the way the data is displayed and how users interact with that data. It is important to keep in mind that hundreds of social computing applications have been created, and more are arriving almost daily. Just because there is an existing implementation of one of these concepts available on the Internet doesn’t mean that a totally different implementation might not work better for the business. Part of the process of building the right social computing applications for an organization is determining the right need and building an application that best solves that need. There are four major areas that the concepts can be broken into; however, these groupings are not hard and fast as many applications span across multiple social concepts. These four areas are:
2
T
Social media: This is the use of bringing interactive media together with user profiles.
T
Social bookmarking: This concept allows users to save content to review later and share with other users.
11:38am
Page 2
Schwartz c01.tex
V3 - 12/26/2008
11:38am
Chapter 1: Social Computing T
Social networks: This concept focuses on building groups of users that are connected by a shared interest or goal.
T
Social communication: This concept allows users to communicate ideas and information while maintaining a context about each message.
Social Media Media has always been a popular form of communication, beginning with the invention of the radio and television to media streaming over the Internet onto a personal computer. Most of the common forms of media do not include direct interaction on the part of the users, yet social applications rely on users participating in the application. The concept of building applications that use social interaction and media is the blend of these two ideas, and it has been a very popular success. The major features frequently seen in social media applications include: T
Streaming or downloadable video or audio files: These media files make up the heart of a social media application, and the continual presence of new media files is generally why users return to the application.
T
Ability to rate and comment upon content: The ability to communicate one’s impression of a media file is the soul of a social media site. Users rate the content to help other users find the best content. User comments generate an open conversation about the media content in question in a way that is impossible to replicate with a standard television or radio experience.
T
Number of views: Tracking the number of unique views of a media file helps the social application rate the item’s popularity and potentially elevate the most popular items to the most visible locations.
T
User profile and link to profile page: Users of a social application take advantage of the user profile to identify themselves and their activities in the social application.
T
Metadata about the media: Metadata about the media, such as the time a media file was uploaded to the site or the geographic location a photograph was taken, help provide users with additional context for relating to the media file.
T
Subscribe for updates: By using a subscription technology such as email or RSS, the social application reminds the user to come back and continue to participate in the conversation and the social experience.
An excellent example of a social media application would be the popular web site YouTube, as shown in Figure 1-1 below. Although the example shows YouTube, which supports video content almost exclusively, applications for audio such as Microsoft’s Zune Social and image applications such as Flickr should also be included in the category of social media applications. These sites take media and allow users to interact with that media. The most common social user interactions are the popularity counters as well as the comments and ratings systems.
Social Bookmarking With all of the information users deal with today, it can be difficult for a user to find the right information he or she is looking for. Social bookmarking applications allow users to work together to mark items as
3
Page 3
Schwartz c01.tex
V3 - 12/26/2008
Chapter 1: Social Computing useful and save it to a central location where other users can benefit from the discovery. These sites usually allow users to group bookmarks into categories and will frequently identify the most popular bookmarks for all users to see.
Figure 1-1
4
11:38am
Page 4
Schwartz c01.tex
V3 - 12/26/2008
11:38am
Chapter 1: Social Computing The social bookmarking concept is typified by including some common features such as: T
Availability of link information (title, link, and so forth): Much like a media file is the core of a social media site, the link of bookmark information is the core of a social bookmarking site
T
Ability to categorize and comment on a link: Again, like a social media site allows comments and tagging for media files, a social bookmarking site frequently allows the bookmarking user to categorize and comment on the link information.
T
Track the number of people saving the bookmark: In order to elevate the most requested bookmarks, the system must track each bookmark’s relative popularity
T
User profile and link to profile page: Users of a social application take advantage of the user profile to identify themselves and their activities in the social application.
T
Subscribe for updates: By using a subscription technology such as email or RSS feeds, the social application reminds the user to come back and continue to participate in the conversation and the social experience.
One of the most common sites for viewing links of content that has been saved and marked with reference tags is on del.icio.us (http://delicious.com), as seen in Figure 1-2. This image illustrates how delicious tracks links, popularity counters, and categories or tags for each link.
Social Networks Social networks are the most popular type of social applications. Social networks were thrust into the spotlight when sites such as Facebook and MySpace achieved their legendary levels of popularity. These applications are primarily used as content management systems, which help users keep up with friends, coworkers, and even potential sale leads or new jobs. Social networking sites rely heavily on the user profile data. This might include information a user enters about himself or herself, such as interests, age, location, or work history. This data can allow the system to match people based on common information in their profiles. It is critical to have accurate and consistent data to make these matches in the profiles. In the MySpace profile of Tom below, Figure 1-3, it’s possible to see that Tom’s profile includes basic information about him and his interests, which have enabled him to become one of the most heavily ‘‘friended’’ people on earth with over 247 million MySpace friends! To help drive traffic to the site and keep users interested, many social networking sites on the Internet have a developer kit and API for building mini-social applications or extending the sites themselves. This can allow other applications, such as independent web sites or even SharePoint, to integrate to the user profile stores of the social networking sites. Some common application characteristics that typify the concept of a social networking application include features such as: T
User profile picture: How can you be sure if the John Smith asking to be your friend is the John Smith you know? Look at his profile picture and see it that’s the right John Smith!
T
Detailed user profile information: Social Networks rely on user profiles to help match one user to another. The ability to store rich user profile information in a social networking site is a must.
5
Page 5
Schwartz c01.tex
V3 - 12/26/2008
Chapter 1: Social Computing T
List of friends and colleagues: It can’t be considered a social network if every user is an island unto themselves. Social networks work to connect users with each other, and maintaining the list of relationships is an easy way to browse through these social connections.
T
Activity or change log: The activity or change log keeps track of everything a user does inside of the social application and allows the user’s friends to read and react to those changes. For example, if a Facebook user posts a new profile picture, friends of the Facebook user can make comments about the new photograph.
T
Threaded or unthreaded discussion board: The discussion board allows users to talk back and forth to each other.
T
Subscribe for updates: By using a subscription technology such as email or RSS feeds, the social application reminds the user to come back and continue to participate in the conversation and the social experience.
Figure 1-2
6
11:38am
Page 6
Schwartz c01.tex
V3 - 12/26/2008
11:38am
Chapter 1: Social Computing
Figure 1-3
Social Communication Inside of the general social computing concept, there is a category of applications designed specifically to enable and enhance one-to-one or one-to-many communication. This is different from social media because the communication itself is not based on a media file. Some examples of social communication applications include Twitter and FriendFeed. Social communication applications are distinct from instant messaging applications in that conversations are normally not private. These applications create a publicly searchable stream or feed of all incoming communications to an individual user that anyone can reply to or comment on. Figure 1-4 demonstrates this public communication feed on the Twitter web site. Applications that implement the concept of social communication can usually be identified by the presence of the following features: T
Visible username
T
Feed of personal communications
7
Page 7
Schwartz c01.tex
V3 - 12/26/2008
Chapter 1: Social Computing T
List of friends and colleagues who subscribe to communications from the user and who the user subscribes to
T
User profile and link to profile page
T
Current or last status posting
T
Ability to mark items as favorites
Figure 1-4
User Profiles Each of the four major categories of social computing applications defined above contain a common element, the user profile. A central piece of any social application, the ability to store information about a user is critical to an application, which allows people to interact with each other. SharePoint is no different from any other social application in that a user’s profile is an important piece of the application. SharePoint already supports a central location to store this user profile information. Windows SharePoint Services (WSS), the free version of SharePoint, offers the User Information List.
8
11:38am
Page 8
Schwartz c01.tex
V3 - 12/26/2008
11:38am
Chapter 1: Social Computing Microsoft Office SharePoint Server (MOSS), both the Standard and Enterprise versions, offer the Shared Service Provider’s (SSP) Profile Store. The premium versions of SharePoint offer application developers the opportunity to build more robust and scalable applications for large enterprises based on the Shared Services Profile. The User Information List is better suited to smaller team-sized applications as the list itself is a little more restricted than the SSP’s profile store. For example, the User Information List does not allow the user to change the visibility of the individual profile data elements. As the center of these social applications, the user profiles enable the application to provide robust and dynamic data to its users. These features sets include the application personalization system, people search, user profile page, and the social aspect of SharePoint’s collaboration features. Personalization is the ability for a user to change aspects of what he or she sees or the locations of where the items will appear. The most common and recognizable area where SharePoint provides the flexibility of personalization to the user is the Web Part framework. The Web Part framework in SharePoint allows administrators to determine what pieces of the user interface the end user can arrange for a more productive environment for him or her to work in. In addition to being able to move the user interface elements, many of the Web Parts have properties that either a site administrator or even the end user can set. This personalization allows the user to adjust an application to optimize it for his or her personal work style. One of the most powerful aspects of a social application is the ability to surface or display and present information that would normally be lost or only occur in a person-to-person interaction. Once the users have entered data into their user profiles, they are able to create connections to other people within the application. SharePoint allows the surfacing some of this data through the use of people search. Using the user profiles as the source location of searched data, SharePoint can find people who have similar projects, managers, or even groups they work in. Search can be very powerful, but, in order to allow search to have a way to display the results, the user profile information needs a way to surface that data. The most common way is with a user profile page that displays the user profile information in a structured manner. The user profile page is a central location from which a user performs the actions on his or her profile. In many cases, the profile pages also let users review actions they have performed, such as adding content and commenting on or tagging content. These are usually contained in rollups that are specific to the user and sorted or filtered based on date. As can be seen in Figure 1-5, a common Facebook page will contain a profile picture as well as information specific to the user. In the business world, this would be equivalent to a dashboard into the current application. Although Figure 1-5 was of a Facebook site, the same kind of information can be stored in SharePoint. In fact, SharePoint provides a set of pages called a My Site for managing user profiles. These pages allow users to manage their own personal data as well as view data from other users. With SharePoint, users can get to the My Site page from many links. Some of which are located directly in the collaboration features such as discussion boards. Collaboration features that are augmented by the user profile store allow users to work together in a forum that builds on interaction. Some prime examples of familiar features include discussion boards, surveys, and announcements. Each one of these features uses the user profile differently, but each stores information about the user as he or she performs an action. For example, the discussion board in SharePoint can display the users profile picture that is stored in the user profile store next to each post by that user. By using the rich data available in a user’s profile, social application users can quickly determine who has performed an action or view more information about the person, perhaps to ask a follow-up question.
9
Page 9
Schwartz c01.tex
V3 - 12/26/2008
Chapter 1: Social Computing
Figure 1-5 The user profile store provides the storage of individual data as well as enabling rich applications to be built. This is why the user profiles are the center of most social applications. It provides the data needed to display and connect users without requiring the user to reenter personal data every time they perform an action.
Social Applications on the Internet Today Dozens of social applications are available on the Internet today. In fact, there are so many social applications that a social application called FriendFeed was created to pull the various updates from all of these disparate social applications into a single content stream. Figure 1-6 is the list of 43 social applications that FriendFeed allows content to be pulled from, and this list of social applications is far from an exhaustive list of social web sites! FriendFeed breaks down the four major categories of social applications a bit differently from the way this book does it, but it is possible to recognize that social media includes the video, photo, and music sites while the bookmarking and news lists both fall into the social bookmarking category. Conspicuously absent from the FriendFeed list of supported applications are some of the world’s most popular social networking applications such as MySpace and Facebook.
10
11:38am
Page 10
Schwartz c01.tex
V3 - 12/26/2008
11:38am
Chapter 1: Social Computing
Figure 1-6
Social Computing for the Enterprise Social computing has the capability to enhance and increase productivity in an organization. When extending an organization’s capabilities around social computing, make sure there are business reasons that drive the addition of software. It is important to make sure the solution is actually enhancing the user’s experience and not just creating more work for him or her to maintain. Some of the common business problems that can be solved will be centered around communication and collaboration. These two areas are the primary focus of answering questions like ‘‘How will a blog help me?’’ and ‘‘Why do my developers want a wiki?’’ The two major areas that enterprise social computing provides key values include improved communication and building collaboration.
Improved Communication Many companies struggle to get information out to all of their employees in meaningful and fast ways without creating too much of a burden of time on the individual employee. The improved communication
11
Page 11
Schwartz c01.tex
V3 - 12/26/2008
Chapter 1: Social Computing aspects of a social computing solution will increase the speed at which an organization can accomplish tasks. An example of this might be something as simple as using an RSS feed to pull down information about company news only when an employees is ready to read it. This improved communication usually works well with internal PR/PA groups and resonates well with upper management looking to streamline its corporate communications divisions. Strategies for building a good communications plan using social computing techniques frequently plan to implement technologies such as tagging, rating, and improved search. This can hold true with people or documents from a social computing view as the application centers around people and the content they create. This is a fundamental difference from traditional enterprise content management (ECM) systems that are centered on documents. SharePoint’s key is the ability to provide both of these capabilities and allow the customer to pick what is most important to him or her: documents, people, or both. SharePoint doesn’t force its users to exclude one way of doing something just because it is using another. The most frequently cited example of this combined approach in SharePoint is focused on being able to search for an employee who is hard to find today or finding out who has edited a document. Additional business value can be discovered as users solve the problems they have today with actual Web 2.0 concepts, not just sample implementations.
Building Collaboration Building collaboration is the other major aspect of enterprise social computing. Enhancing collaboration has been a central tenet of SharePoint ever since its inception as a product. For users of SharePoint 2003, this could be seen with the early value of having a Team Site in SharePoint, allowing a team to have a single point for work. Collaboration and communication are closely tied together and can increase value when used together. For instance, a SharePoint 2007 Team Site might have a set of announcements for the team. By using RSS feeds, SharePoint allows team members to read the announcement during their day without filling their email system and causing fragmentation in their work environment. Some of the key technologies that are used for building a more collaborative environment tend to include blogs, wikis, and discussion boards. The real value is the ability for multiple people to provide feedback to each other and work on the same set of information without waiting for a strict workflow process. For example, take an internal instructional document for a software company’s product that is designed to help the company’s software engineers work more effectively. In general, there are many engineers working on a single document. Because this is a single document, there are a number of options that can be considered to enhance the collaboration experience. First and most obvious, the document can be stored in a SharePoint library. This library could require version control and enforce document checkout any time the document is going to be worked on. By checking out the document, the user is preventing other people from adding information directly to the document while it is in use, which could cause one person’s changes to be overwritten. Unfortunately, this process of only allowing a single user at a time does slow down the overall progress of work. To share the document, it could be emailed to each person on a routing list for review, but this would require high amounts of duplication and disk space while minimizing the ability to collaborate quickly with other members. In this example case, a better collaboration tool such as a wiki could allow a secure, version-controlled, and collaborative environment for each of the users to work in. This would provide the most up-to-date living document and take some of the burden or extra work off the employees responsible for these documents. Learn more about wikis in the enterprise in chapter 4.
12
11:38am
Page 12
Schwartz c01.tex
V3 - 12/26/2008
11:38am
Chapter 1: Social Computing
Enterprise Software Platform There are many situations where another implementation of a social computing tool could be used, but the real value in the enterprise is having a powerful and extendable platform such as SharePoint that can leverage existing resources to create better tools for the organization. To build connected social computing applications, the enterprise needs a platform that enables quick development of these powerful applications. The platform used in this book focuses on Microsoft Office SharePoint Server 2007. SharePoint 2007 can be used as a platform for building social applications by enhancing the out-of-the-box functionality or creating custom add-ons. This rich platform contains the entry points needed to enhance applications where necessary. SharePoint includes direct access to data for developers through an easy-to-use object model as well as remote access with a multitude of web services.
Building a YouTube.com-style Media Site Before looking at additional concepts and definitions, look at the concepts of building an application that provides social feedback to the users of the site and see how it would provide benefits in an organization. Many organizations have training videos, videos from presidents or CEOs, or even employees providing direction on a single subject. These videos can be difficult for users to watch and especially hard to find, depending on where they are located. If they are located on a single user’s machine, the user will need to email the videos or upload them to a file share that has proper rights for the users that will need to use them. SharePoint 2007 can help resolve these issues. The first step is open a SharePoint site and follow these steps to create a video subsite. Chapter 11 will go into more depth on interactive media, but, for now, these will create a simple YouTube-style site.
1. 2. 3. 4. 5. 6.
Click View All Site Content, and then select Create. Under the Web Pages section, select Sites and Workspaces. Enter the title, description, and URL name. In the Template Selection area, select the Collaboration tab. Then select Blank Site. Keep the remaining options the same, and click Create. In the new blank site, follow the same steps, but, this time, create a picture library named Video Links, and add the following fields: T
7. 8.
Video URL: This will be used when the user clicks the URL to view the video.
Once again, click Create. This time, create a new document library named Videos. Now upload the videos, add the video links, and place the video links on the default.aspx page of the site. The site might look very similar to Figure 1-7 below.
You will probably not want to upload large video files to the document libraries. In fact, you might want to have them on a streaming media server in a production environment.
13
Page 13
Schwartz c01.tex
V3 - 12/26/2008
Chapter 1: Social Computing
Figure 1-7 A few items will need to be added over time to this, such as the user who uploaded it and information like ratings, comments, keywords, and many other social computing concepts. This small sample illustrates how quickly a site can be set up for these possibilities in a very short time.
Web 2.0 Recently, people have been grouping some common industry buzzwords together as a single term. Terms such as Web 2.0 are often referenced when talking about rich social and interactive web sites. This does not mean that Web 2.0 is the same as social computing applications. There is actually a reason why there are two different terms. The most common usage of the term Web 2.0 refers to slick-looking web sites that use new web technologies in order to provide a better user experience. These sites will use technologies such as AJAX, JavaScript, Flash, and Silverlight to enhance their look and interaction. In addition to the technologies the sites use, the sites frequently have a distinct visual look that includes rounded corners. Web 2.0 will usually refer to the common implementations seen on the web. These implementations might include blogs, wikis, mashups, social networking site, and more. While most people think the site must have round borders and a shiny interface like Figure 1-8 to make a site a Web 2.0 site, but this is becoming less and less true. There are still certain design elements such as larger text and cute buttons, but none of them is required to have a Web 2.0 site.
Blogs One of the most popular concepts in the Web 2.0 space is a blog, a space that allows the user to write content about a topic. The user could create a personal blog, a blog about technology, or, in the case of this book, a blog about business or a facet of the business such as a specific product line. Blogs provide a
14
11:38am
Page 14
Schwartz c01.tex
V3 - 12/26/2008
11:38am
Chapter 1: Social Computing way to communicate important information to the readers. Some common features found on a blog are RSS feeds, comments, and content tagging. Chapter 5 explores blogs in more detail.
Figure 1-8
Wikis As one of the most popular ways to create and maintain documentation or information with large groups of people, wikis have become a very popular Web 2.0 technology. There are now wikis such as Wikipedia that have grown to be used for maintaining and managing references for millions of pages. Wikis can also provide links to other parts of the documentation by using standard tokens. Tokens are similar to HTML markup with the fact that they modify the look of text they surround. Some common features of wikis are content, search, and version history. Chapter 4 will investigate the buzz surrounding wikis.
Mashups Mashups are still growing in popularity, but they are a very powerful way to display data from different sources with many types of visualizations, such as a list of locations and a Virtual Earth map. Mashups are discussed in chapter 9.
15
Page 15
Schwartz c01.tex
V3 - 12/26/2008
Chapter 1: Social Computing Social Networking The media and younger generations have made social networking applications visible as the forefront application. This application type is most well-known as a tool to connect with people and friends. Some business users still do not see the value in having connections and data available for searching, but there are many business values that can be achieved by having this type of application. Common traits found in social networking applications are friend lists, profile information, and stream of the user’s friends’ changes. An approach to social networking using SharePoint is explored in chapter 7.
Enterprise 2.0 Enterprise 2.0 is taking the Web 2.0 concepts and applications and applying them to internal company initiatives. This type of activity usually happens when an executive would like to foster more collaboration and communication within the organization. Be aware that the term Web 2.0 can mean many things to people, so designing applications or explaining the concepts of what Web 2.0 means in the enterprise requires explicit descriptions to prevent unintentionally underdelivering on promises. As mentioned earlier, it is relatively simple to start by using some of the functionality that SharePoint provides with blogs, wikis, or RSS feeds. This can be a simple way to start adding new features to internal sites without adding much risk. One big difference between the way public sites operate rather than corporate sites is the governance and polices that must be applied to sensitive data. When a user is contributing content on most Internet web sites, it is the user’s responsibility to display only information that he or she wants people to see. In contrast, a company is held accountable for information that users can view on company sites, both internal and external. This data includes an employee’s personal data as well as company documents.
Is Social Networking Behind in the Enterprise? The short answer is ‘‘Yes, it is,’’ but there are reasons. There is a bigger problem than just social networking, which is that many enterprises are behind on the Web 2.0 push. I’m not sure they are behind, but there just isn’t always a good business reason to push to something that could just be a buzzword. There are two sides to social networking that should be looked at (maybe in another post): T
Social networking for intranets (internal)
T
Social networking for business web sites (external) and applications provided by companies
I was talking to a friend of mine who works at a large bank, and I told him that the first bank to figure out how to bring Web 2.0 to enterprise banks would have a major advantage. Now, this may never happen because you have to find the business reason for doing this first. Let’s go back to enterprise social networking. Keep in mind that I will be looking at it from a SharePoint 2007 point of view. I think there are many large enterprises looking to bring in social networking right now. Most large enterprises are probably looking for a way to increase the collaboration they have now. If they weren’t, they wouldn’t be doing their job.
16
11:38am
Page 16
Schwartz c01.tex
V3 - 12/26/2008
11:38am
Chapter 1: Social Computing Some of the reasons preventing the private enterprise sector from adopting Social Networking might be based on a number of factors and challenges that are very different from — and may not affect — the public sector users, including the governance of the sites, information, and time. You don’t want to have people on the computer all day trying to set up social networks and leaving messages on other people’s walls. This would not be a good use of time. Cost is one of the biggest factors I have seen for why a company might not bring in the tools. This includes hardware and software costs. The investment can be very high for enterprise-level tools, especially when the number of users starts to climb. Integration seems to be a problem that has always been a challenge. Some recent challenges have been how to integrate the data from these products. Although it is much easier in SharePoint 2007, this is still a concern for many companies. There are always features that companies want that they cannot get from a product, and that is where the community has to step up and create them. You need to have a good community of people continually improving the product. The good news for SharePoint users is that it does have great community involvement. There are always a large number of companies looking to see who jumps first and was successful doing so. As soon as there are a number of large companies that are successful, I think there will be a wave of other companies following the trend. Competition! Many companies don’t know what the best solution is yet, and they are still evaluating what is out there. This can be a problem if your product is just like any other product available. For instance, some people use LinkedIn, and some use Facebook, but, when you have free access to both, you can use both. If you had to invest a lot of money into each one, you may be forced to evaluate the cost benefit of each and select only one of them to buy. What would you do if you had to pick just one? I am sure there are many other factors, but I think many customers are getting ready to move, and they just need more time and/or resources, one of which being money. It is difficult to change without the availability of these. Social networking may be behind right now, but I don’t think it will be for very long. I have been talking with some leading enterprise companies, and they are looking at the tools. They are looking not only for productivity, but also as a requirement to attracting good employees. Some of the best and brightest workers have come to expect a certain level of tools at work that help them accomplish their tasks. Used with permission from http://blogs.sharepointguys.com/brendon/web-2-0 /enterprise-web-2-0/is-social-networking-behind-in-the-enterprise/.
The Business Value of Social Computing One of the most questioned parts of social computing is the value it provides to the business. Some IT organizations as well as users still feel that the value returned with social computing applications is not well-defined. Part of the reason is that many inexperienced IT managers and corporate executives think that social computing is the same as social networking web sites like Facebook. Because of this, they feel there is no value in creating a social network in a company for employees to waste time. They couldn’t be
17
Page 17
Schwartz c01.tex
V3 - 12/26/2008
Chapter 1: Social Computing any farther from the truth. Social computing applications not only provide a real business value; social applications can also provide a feeling of ownership within the company’s employees. Some of the more tangible common business values are as follows: T
Promote direct communication between subject matter experts and individuals with questions within companies
T
Entice users to visit and revisit online material as they keep up with comments and other content changes
T
Provide marketing of products or services
T
Provide better communication for public relations or public affairs departments
T
Build an understanding of partners or customers
Business value is something that does not always have to be measured in hard dollars. For this reason, many companies and consultants want to know what the clear return on investment (ROI) with these applications can be.
Enabling Technologies of Social Computing Many technologies make the capabilities of social computing applications possible in today’s environment. These technologies have evolved over time and will continue to change and grow as new capabilities become available in Internet browsers as well as operating systems.
JavaScript One of the primary technologies used on the web during the dot-com days to make more interactive sites was JavaScript. JavaScript allowed developers to program code that would be downloaded as part of the page’s content and run inside the Internet user’s browser. This ability to run in the browser makes JavaScript a client-side technology as opposed to server-side code, which runs only on a central server such as a process-fetching data from a database. This client-side code is a critical part of many applications that want to provide rich interactive experiences for the user. There are countless applications, including numerous social computing applications, which take advantage of JavaScript. An easy-to-imagine example is JavaScript code that lets the user confirm friend associations or view pictures without having to wait long periods of time for the page to refresh on each click. The two most common ways to add JavaScript to a web page is to either make a programmatic reference on the web page to an external file or actually place the JavaScript directly in the web page in question. The code below is a sample of some of the actual SharePoint JavaScript files that are referenced by SharePoint pages and loaded whenever a page is opened.
18
11:38am
Page 18
Schwartz c01.tex
V3 - 12/26/2008
11:38am
Chapter 1: Social Computing
The second way is to add the JavaScript code directly to the page it needs to run on. Generally, when a developer does this, he or she will either create a function that can run later or make a call to a function or code that will run as it is parsed in-line. For example, the code below will create a variable, run some logic code with an if statement, and create a function or programmatic subroutine that can be called at a later time. //
var MSOWebPartPageFormName = ’aspnetForm’;
All of the variables that are created outside of a function call are global and can be used in the functions on the page or linked scripts. The easiest way to view a page to see the JavaScript and linked files is to right-click on the page and select View Source. The HTML of the page as well as the JavaScript that is run will be displayed in the default viewer such as Notepad. Although JavaScript is available on almost every Internet browser application today, it is not a requirement when building a social computing application. In fact, there are times when other technologies or even a full-page refresh might make an application more usable. When JavaScript makes changes to the page, it can be challenging to get back to exactly what the user was doing if he or she presses the Back or Refresh buttons.
AJAX In order to make an interactive site driven with updates of data, a programming technique called AJAX was introduced in the mid-2000s. Although there had been different ways of dynamically interacting with content, AJAX provided a standard way for web developers to make dynamic requests to the server without having a full-page refresh. In common web programming, the Internet browser being used makes a call to the web server using the Hypertext Transfer Protocol (HTTP). The common model for HTTP is to make a call and return the HTTP page markup. If the display of the page needs to be modified,
19
Page 19
Schwartz c01.tex
V3 - 12/26/2008
Chapter 1: Social Computing based on the changes of the page, the entire page must be submitted to the server. Then it is re-rendered to the end user once more. Microsoft realized this would be a problem for rich clients like Outlook Web Access (OWA), so it created an ActiveX control called the XMLHttpRequest object. Eventually, other browsers added this capability to their browsers as dynamic sites, and data was becoming more popular as a way to render a web page. This technology has essentially replaced the original XMLHttpRequest technology that is now called AJAX. AJAX has become popular with social computing applications, based on how dynamic the data is and how often the data changes. To help programmers manage the ever-changing data, AJAX allows the developer to either update data that might have been requested on a page, but doesn’t require a full-page refresh or can be used to load a page while making a call to a data service that may take longer to load. This gives the illusion that the page renders quickly even if all of the data for that page was not ready prior to loading the page. An example of how these callbacks are made in SharePoint 2007 can be seen in the RSS feed or the usage reports that are generated, as seen in Figure 1-9.
Figure 1-9 This new technology really gives developers the power to build amazingly full interactive sites. Microsoft noticed that this technology was so helpful that it created Microsoft ASP.NET AJAX. Microsoft has even included Microsoft ASP.NET AJAX into the ASP.NET 3.5 as part of the .NET Framework installation. Because SharePoint is built on ASP.NET 2.0, Microsoft ASP.NET AJAX is not part of the default installation. It can still be downloaded and installed separately for ASP.NET 2.0 and SharePoint 2007. To help get developers started, community members like Daniel Larson created open source toolkits known as the SharePoint AJAX Toolkit. When building rich applications using the Microsoft ASP.NET AJAX Framework, it is important to make sure that it is installed on all of the SharePoint Web Front End (WFE) servers prior to deploying it to production. However, developers could simply use the built-in method calls to the XMLHttpRequest, which never went away despite the introduction of AJAX, and related objects using JavaScript to avoid the need to deploy or install any additional AJAX frameworks on servers.
Silverlight JavaScript and AJAX provide powerful data-driven web pages, but people are increasingly looking for extremely rich and interactive sites. For years, Abode Flash has answered this need for rich interactivity. Flash is an animation-heavy programming environment that requires a unique set of skills to work with. To provide .NET developers with tools for performing this rich set of functionality, Microsoft introduced a technology called Silverlight, allowing developers to create powerful user interfaces using an XML-based language called XAML, JavaScript, AJAX, and .NET. Silverlight has been quickly growing and has become an adopted technology in that it is similar to Flash yet is accessible to .NET developers. Figure 1-10 shows one of Microsoft examples for SharePoint and Silverlight. Microsoft has now created a set of recommendations for using Silverlight with SharePoint called the Microsoft Silverlight Blueprint for SharePoint. These guidance packages called Software + Services Blueprints have a number of compelling scenarios that are worth investigating. The Software + Services Blueprints will have many scenarios like Outlook and SharePoint. Here is an
20
11:38am
Page 20
Schwartz c01.tex
V3 - 12/26/2008
11:38am
Chapter 1: Social Computing explanation directly from the Channel 9 site on what they are: http://channel9.msdn.com/wiki /softwareplusservicesblueprints/. ‘‘Software-plus-Services Blueprints are a series of source code and guidance packages designed to provide an architectural bridge between vision and implementation by making it easier to build Software-plus-Services applications.’’
Figure 1-10 As companies begin to incorporate more Silverlight application into their offerings, this set of samples and code is likely to continue to grow to meet the training demands of .NET developers looking to learn this new technology.
REST A common architecture that has been used in many new social computing and Web 2.0 applications is called Representational State Transfer (REST). This architecture allows calls to data through a resource-based representation that can be called using the basic HTTP objects in the browser. When an application is built using the principles of REST, it is called a RESTful application. RESTful applications can mimic the same operations of CRUD methods. These CRUD methods are create, read, update, and delete, also the common operations for data retrieval and modification. Table 1-1 shows the HTML operations and the corresponding type of action that might be called in HTTP request. Although the HTTP methods map very well to the CRUD operations, there is no hard or fast rule that states that a developer can only use those operations. In fact, many times, the POST method is used simply for any action that will have effects on the data that it is making a call to.
21
Page 21
Schwartz c01.tex
V3 - 12/26/2008
Chapter 1: Social Computing Table 1-1 HTTP Method
CRUD
PUT
Create
GET
Read
POST
Update
DELETE
Delete
The best way to recognize when a system has used REST as a way to make calls to the underlying data is to see if a resource-based call can be made, such as the following: http://www.devcow.com/eventserver/usergrouops/ http://www.devcow.com/eventserver/usergroups/{group} (each group will have a URL)
The resulting XML that might be returned might look like the following: SharePoint Users Group .NET Users Group
This can make programming an application very easy from client code such as JavaScript. In fact, the code can return the result of the URL in any form desired. The returned data set could be sent back in the form of XML, JSON, .NET, or even HTML, all of which are popular mechanisms for passing data around the Internet. Because a web browser can display any HTML, developers could simply point their web browsers to a resource that displays the output in HTML and let the browser take care of displaying the output without any other programming. SharePoint 2007 actually has a set of interfaces that are very similar to REST. In the documentation, they are called the URL protocol. This references the way they are called more than the operations that are described. These operations make use of a dll named owssvr.dll and specify the command that is called as one of the parameters that is passed in. These calls are made from external applications as well as the SharePoint web pages. One of the reasons that these URL protocol methods do not match the REST architecture is that they are all based on the GET requests and require that the command be passed as a parameter as stated above. When making a call to these methods, a similar pattern emerges that looks like the following code. http://Server_Name/[sites/][Site_Name/]_vti_bin/owssvr.dll?Cmd= Method_name[&Parameter1=Value1&Parameter2=Value2 . . . ]
In most cases, the return value is an XML string that represents CAML output. This CAML can be decoded to display the requested information on a page. In some cases, it can display either XML or
22
11:38am
Page 22
Schwartz c01.tex
V3 - 12/26/2008
11:38am
Chapter 1: Social Computing HTML. Using these method calls, a developer can access many aspects of SharePoint with simple calls to the URL protocol, but it is important to understand that not all actions can be performed this way. There are certainly cases where more complex programming that takes advantage of the SharePoint web services API is required.
Web Services Web services are what is known as a standards-based way of retrieving data. Web services declare a set of method calls that can be called from another set of code using XML messages and the SOAP standard as the method of communication. Although it is possible to create RESTful web services, most of the web services today are based on remote procedure calls (RPC) web services. RPC web services use a different XML based standard to pass requests and data around the Internet. This RPC communication requires that each side of the communication agree to a contract that defines the available commands and the expected return data types. To define a contract for the two endpoints to communicate, web services use a language named Web Services Description Language (WSDL). The WSDL file will contain information such as the endpoints, the data types, and the interfaces that will be used. SharePoint 2007 provides many web services that can be used to work with the system either from remote machines or code that does not have direct access to the object model. One major difference between a non-SharePoint web service and a SharePoint web service is that the endpoint in a SharePoint web services is virtualized. Every call to SharePoint web service is in the form of the site location followed by the web service file, such as http:///_vti_bin/Lists.asmx. There are many SharePoint web services, and the full description of each web service is outside the scope of this book. Feel free to refer to other Wrox Press books such as chapter 5 of Professional SharePoint 2007 Development or the SharePoint documentation on MSDN for more information on the SharePoint web services API.
Software Services Many social computing services today provide free software use. These types of software can range from blogs to social networking pages. The next generation of software will most likely have a service offering as well as a standalone offering. This might even include full applications such as Microsoft Office SharePoint Server 2007. The trend with software as a service is to have a free basic version and then charge for support, nonadvertising sites, and larger-scaling capabilities. Microsoft Online Services already provides Office Live Meeting, Exchange Hosted Services, Exchange Online, SharePoint Online, and Office Communication Online. This provides a solution for companies that want leading-edge capabilities, but do not want the burden of hosting these services themselves.
Summar y This chapter has provided an overview of what social computing is and the types of applications that are created to achieve the benefits of social computing applications. The chapter explored each application’s characteristics and demonstrated an implementation of social media on SharePoint with the beginnings of a YouTube-style site in only eight steps. The chapter closed with a brief explanation of the core technologies available to designers of social applications in the Web 2.0 world.
23
Page 23
Schwartz c01.tex
V3 - 12/26/2008
Chapter 1: Social Computing Key takeaways from this chapter include: T
While social computing has recently experienced a surge in popularity, history teaches that the social nature of computing has existed as long as computer networks have.
T
Web 2.0 is a buzzword implying a user-focused software application that takes advantage of modern web technologies. Enterprise 2.0 is the adoption of the same user-focused and web technologies inside of the enterprise.
T
Both Web 2.0 in general and social computing specifically offer numerous technical aspects and approaches to problem solving. There is no need to use every technology or social concept at once. Instead, pick the concepts and technologies hat bring value to the business.
The next chapter will discuss how to embark on a social computing project in the enterprise, including advice on assembling a project team, designing appropriate corporate governance policies, and strategies for building end-user adoption.
24
11:38am
Page 24
Schwartz c02.tex
V3 - 12/26/2008
11:50am
Building Effective Collaboration Sites Today, more than ever, people talk about building sites that enhance employee effectiveness within an organization. Collaboration sites, especially internal sites, usually need a strong justification for the reason they are being built and why the dollars being spent on them are truly needed. Building these effective sites requires preplanning and a thoughtful team of business users, stakeholders, and implementers. At a minimum, most of the collaboration sites built with SharePoint 2007 need planning for taxonomy, site structure, and governance. Once all of these pieces are put together, the foundation for the site can be orchestrated into a single site that enhances the worker’s experience and improves his or her day-to-day work life. This chapter will look at some of the challenges that teams face when creating sites that are both effective for collaboration, but also built for social computing applications. There are differences in how to plan for a social computing site versus a team collaboration site. The pages and navigation can be very different depending on how the end user will work with the site. On top of these challenges is a need to work within the boundaries of the chosen application framework. SharePoint 2007 provides many opportunities for extensions, but, as any framework, it requires some thought from an architecture perspective before making business requirements that will cost more money than can be saved with the project.
What Is a Collaboration Site? Simply, a collaboration site is one that will allow users to interact with each other and perform their jobs in a more effective manner. In the past, a collaboration site in SharePoint was thought of as a team site or workspace where a single set of actions took place. One team would discuss its projects internally, or one meeting would take place within a team-focused site. This does not have to be the case for a site with an enterprise-wide scope. Some key examples would be the use of a wiki that is used by more than one department to keep updated on information from a local department level as well as centrally from the head offices. Wikis are described in more detail in
Page 25
Schwartz c02.tex
V3 - 12/26/2008
Chapter 2: Building Effective Collaboration Sites chapter 4. The use of Microsoft Office Communicator in sites along with Microsoft Exchange allows users to quickly see if someone is online and what times they are available during the day. Office Communicator and integrated presence information is discussed in more detail in chapter 10. Luckily, SharePoint can create collaboration sites at all levels of the business, from the smallest department to the entire company. Each one of them has the potential to be successful collaboration sites. The key when working with a site that is built for collaboration is to have users that actually collaborate with it. The use of a site and relevance of data can be a sign of an active collaboration site. Making sure the site is healthy and active is one sign that it is effectively functioning as a collaboration center for the company.
What Makes an Effective Site? This is the million-dollar question that every collaboration manager or director asks. Many times, studies are done at companies to interview their employees to find out what they would like to have in a portal web site. Some companies track what the employees’ usage of each page is to determine what pages and sites are used the most and are, therefore, the most effective sites. Other companies measure the number of click-throughs to see which links are most active. The real answer to what makes an effective site is the usage and the content that makes up the site. Determining what the success factors are for a company will determine what it takes to create an effective site. If all the site needs to accomplish is to allow users to determine who has worked on certain projects in the company, then, as long as the site provides an easy way to look up that information and view the projects, it will be an effective site for the organization. Remember this will not be the same for every company. Inside a single company, the requirements may be different for each department. To build the most effective site for an organization, the architect will need to do some research or gather some information about the needs of the organization. The architect should perform as much or as little research as is necessary to determine the needs of the company and accomplish the business goals. Having a site that is easy to navigate and simple to train users on will help with user adoption. Using impartial research sites such as Nielsen Norman Group, Gartner, and Forrester can give the most up-to-date research information available for companies with similar profiles, but many social computing applications rely on common sense during the feature selection and implementation process. Common sense will play a big part in design decisions for the site. If the site seems difficult to use or perform a particular task with, then it is probably difficult for the end users. If it is hard to figure out how to perform an action such as search on the site, it probably will be difficult for end users. Think about how information should be presented on the site, use available reports of what other companies are doing, and take into account what content most users are interested in. The result should be an effective site. To assist in more detailed findings, the application architects can perform pre- and post-planning by interviewing employees and analyzing usage data before making the appropriate modifications after the site is live.
Get Feedback from Users One way to improve a site is to get feedback directly from users who are using the site today. If the plan is to upgrade an existing site, talk with the users to find out what they do and don’t like to make the necessary changes. Solicit feedback from many different types of users across many different departments to get a good feel for the necessary changes.
26
11:50am
Page 26
Schwartz c02.tex
V3 - 12/26/2008
11:50am
Chapter 2: Building Effective Collaboration Sites The feedback should not only be limited to the company’s internal sites, but also the public sites the interviewed employees use. It is valuable to know from a business perspective what they like about sites such as LinkedIn, Facebook, and Wikipedia and how they feel the kinds of services these sites offer may be able to help them accomplish their jobs. The more feedback solicited from users, the more likely it is that the most effective communication strategy will be discovered. Keep in mind that the application may include features that may not be familiar to all users, so a large set of users with varying age might be a good set of employees to interview.
Site Usage Data Getting feedback from users can be useful, but it does not always tell the entire story. Users will provide information based on their experiences and feelings about the site, but they usually don’t have hard facts to back up their statements. When looking for more concrete information, using something like site usage data can provide insight into exactly what the users are doing. This step is usually done after the site has been created or during beta phases when users are testing out the site. The level of data can vary depending on the set of tools that are used. Data points can be gathered from IIS logs, SharePoint site usage data, or even third-party products such as WebTrends. The most common option selected when measuring SharePoint activity is to use the built-in SharePoint site usage data. A site administrator can easily configure his or her site to gather this data and then view the results from within a SharePoint administration page. There are no additional costs for using the site usage data, but it can impact the performance of the server. If the server is in an environment that has a high amount of traffic and there are concerns about performance, it might be worthwhile to look into the third-party tools or use a load balancer to provide the statics without impacting SharePoint’s level of service to users. When using the SharePoint usage data, there are three major steps that need to be approved and performed prior to using the data. The first is to get approval from the central administrator to activate site usage data for the SharePoint farm. Next, make sure the administrator of the Microsoft Office SharePoint Server (MOSS) Shared Service Provider (SSP) has enabled usage analysis processing for enhanced reporting. Finally, activate the usage data on the specific SharePoint site collection(s) that require reporting.
Central Administration Setup Enabling usage analysis reports in SharePoint is not a simple process. When MOSS is installed, the administrator must visit three different locations to configure the required options. The following steps walk through the process of enabling the required options in SharePoint’s Central Administration:
1. 2.
Open SharePoint Central Administration, and click the Operations tab.
3.
On the Usage Analysis Processing page, check the Enable logging check box to allow log files to be created on the current server farm.
4.
Accept the default settings, or change the log file location and number of log files to create. This will depend purely on the server environment and requirements.
5.
Check the checkbox for the option Enable usage analysis processing. Set a date and time for the processing to occur if this process is selected. The page might look like Figure 2-1.
From the Operations page, click the Usage analysis processing link in the Logging and Reporting section.
27
Page 27
Schwartz c02.tex
V3 - 12/26/2008
Chapter 2: Building Effective Collaboration Sites
Figure 2-1
Shared Service Provider (SSP) Administrator Setup The following steps walk through the process of enabling the required options in the MOSS SSP. This step enables enhanced reporting, which is not available on Windows SharePoint Services (WSS) sites.
1.
On the SSP home page, in the Office SharePoint Usage Reporting section, click Usage reporting.
2.
There are two check box options on the Configure Advanced Usage Analysis Processing page. The first option provides site collection users with the ability to view aggregated usage data that is gathered on all sites in the site collection. Check the option Enable advanced usage analysis processing in the Processing Settings section.
3.
The second option allows the collection of search queries to also be recorded and added to the usage data. In the Search Query Logging section, select Enable search query logging to enable this level of logging. The completed screen is represented in Figure 2-2.
Figure 2-2
28
11:50am
Page 28
Schwartz c02.tex
V3 - 12/26/2008
11:50am
Chapter 2: Building Effective Collaboration Sites
Site Collection Administrator Setup These final steps walk through the process of enabling the gathering of site usage data on each individual site collection.
1.
Navigate to the SharePoint site collection where site usage data is needed.
2. 3.
Click the Site Actions menu, and then click Site Settings.
4.
On the Site Collection Features page, click the Activate for the Reporting feature if it is not already marked as Active. This will activate the usage analysis reports for the current site collection. Now that the administrative enabling of usage log processing has been done, wait 24 to 48 hours until the Usage Analysis SharePoint timer job is run on the server. The results should look something like Figure 2-3.
On the Site Settings page, in the Site Collection Administration section, click Site collection features.
Figure 2-3 To see some high-level aggregate numbers of the site with additional information, check out the Usage summary link under the Site Collection Administrators. Figure 2-4 shows an example of a newly created team site. The report displays usage of storage and user information, and basic activity is tracked. This can help a person with SharePoint Site Collection level determination of the overall status of the site and how heavily it is being used.
Figure 2-4
29
Page 29
Schwartz c02.tex
V3 - 12/26/2008
Chapter 2: Building Effective Collaboration Sites
Preplanning Stage The preplanning stage is the most critical stage of a SharePoint project. This is when the direction is set for the rest of the project. Be sure to clearly define the business goals that the project must achieve for the project to be considered successful. Many companies will look at these successes as the return of investment (ROI) for a project. Although it may appear difficult to measure ROI for a collaboration project, a preplanning stage is important to identify these items and clearly articulate these goals to the stakeholders of the project. If there is no real business need for enhancing the sites, it will be difficult to get people to understand the benefit of creating a new site that provides engaging interaction, but does not help them perform any one isolated task any better. During the preplanning stage, there are many opportunities to make decisions to help the project further succeed or determine which ones could make it more difficult to implement. Most of the preplanning stage requires having the right people involved and making sure decisions are not made without knowing how it will impact the project. This stage can be an extension of early proof of concept work (POC) that has been performed. One of the clear themes that come out of this stage is the need to make sure that the business goals are met and they are met within the boundaries that are available.
Be Realistic Social computing can be an exciting project to start, but there is a temptation to try to include every possible cool feature and the kitchen sink. The biggest problem with development projects in general is the lack of understanding around how easily something can be created. This is amplified in a SharePoint project because there are so many features that are available to the end user out of the box (OOB), that is, the features are already part of what is installed with the product. The fact that these features appear to be so simple to activate can sometimes set the expectation for business users that the time to create enhancements to the framework will also be almost immediate. During the project’s first meetings, make sure to explain that a framework will help with many aspects of the project, but that the vision of the project will sometimes require either a degree of customization, a third-party product, or even the use of open source projects. Any of these options may require additional time and effort for the project to be completed. It is usually okay to tell the project’s stakeholders when you are unsure if something can be done within the time and budget as long you tell the stakeholders the amount of time it will actually take. Committing to major changes in the way SharePoint works can be very costly and might put unnecessary risk into the project if it’s possible to show the value of using the OOB functionality that SharePoint provides, even if it is not exactly how the stakeholders pictured it in their mind. Keep in mind that building a collaborative site is the same as any other development project. There is simply a head start in terms of the available number of key foundational pieces. It is better to set expectations early rather than to work though a project and give advice at the end of the project that it will be over the budget or timeline. Any enhancement provided to the end users will require some effort from the project team to either verify it is working or do an entire regression test of the entire application’s functionality. This is a time to be open and honest with the all of the team members. Don’t make it seem like the requests from the stakeholders are impossible to achieve, but make sure and be realistic with them so there aren’t have major issues later in the project. Many social computing projects fail because they overpromise on what will be attainable in a short amount of time when, in fact, most social computing initiatives actually take a long time to achieve.
30
11:50am
Page 30
Schwartz c02.tex
V3 - 12/26/2008
11:50am
Chapter 2: Building Effective Collaboration Sites
Involve the Business Users Early For any social application to be successful, users are required to actually use the application. Getting users involved with a social computing project in the early stages enhances the odds that the project will be a successful implementation of valuable and desired technology. It is very common for technology departments or implementers to be nervous about showing the business what they are working on prior to having a solid plan in place. With large collaboration projects that impact a whole department or even an entire company, it makes more sense to bring in the stakeholders as soon as possible. By including stakeholders in the project early, there is a better chance to get the business involved and excited about helping to build the right project. Many IT departments sometimes worry that bringing too many people in early will create too many expectations and cause a great deal of work that executives want immediately. The demand generated for the site can be a great momentum starter for the project. It will be the project team’s responsibility to work with the executives to keep their expectations in line. Keep in mind that, if they apply pressure to timelines, it is usually because they want a better experience for communication and collaboration right away. Just remind them that, if the team doesn’t spend the proper time planning and building the right solution, they could waste a lot of money and cause people not to use the site. They will usually understand reason as long as the feedback they receive that does not include phrases like, ‘‘We don’t want you to use it yet.’’ A common project team make up might look like Table 2-1:
Table 2-1 Team Member
Roles
Responsibilities
Project Leadership
Managers, directors, and CIOs
Sets direction for the project and makes sure business needs are met
Project Manager
Project managers, senior developers, and project leads
Maintains the course of the project from start to end Takes feedback from team to modify planning
SharePoint Architect
Enterprise architect and lead SharePoint SME
Designs customizations and leads group in correct direction based on requirements
Business Analysis
Business analysis, quality assurance lead, lead developer, and enterprise architect
Works with the business to gather the requirements needed to be successful for the project
Quality Assurance Lead
Quality assurance lead and lead SharePoint SME
Validates that business requirements will be testable with testing scripts
Site Administrators
Department lead, managers, and site owners
Provides feedback of desired abilities for management of the site
Site Contributors
Department lead, department employees, and site owners
Select individuals who can confirm desired wants of users of the site
31
Page 31
Schwartz c02.tex
V3 - 12/26/2008
Chapter 2: Building Effective Collaboration Sites
Set Up a SharePoint Environment for Users to Use By including the end-user employees in requirements session, it is easier to determine the requirements they are looking for by letting them build the site. The best way to accomplish this goal is to set up a SharePoint environment that has the features applied that they can use. Set up the environment in a sandbox area that does not affect other systems on the network, but give access to as many users as the team feels comfortable with. The end user will usually know what he or she envisions the site to look like, so give him or her a place to make changes or comments on how the page will look. Gather immediate feedback from the user base by allowing the users access to this sandbox environment. To gain a better understanding of the environment, ask the end users to use the new environment for a few days to become comfortable with how the site operates. One of the biggest barriers when working on user requirements is the lack of knowledge of the system. It should be the responsibility of everyone on the team to start to get up to speed on framework that will be used. If someone tells a member of the team that he or she doesn’t know how the functionality works, provide him or her with the link to the sandbox site and allow him or her to try out the site without affecting any critical environments. This is important because users frequently do not want to spend time learning to use the new system and would rather have someone just perform an action for them or tell them how to specifically accomplish a task. SharePoint is about providing end users the opportunity to work in a self-service environment, and it is better to start providing those services as early as possible. Let the users set up the page how they feel it will work best. Do not try to guide them in how the team feels the site should look. This environment will also allow the users to try out features of the site without feeling they may break something if it were in production. The ability to navigate freely through the site plays a number of roles in the adoption process. This first part will be that the users will quickly become familiar with the product without having to set up expensive training sessions. The second part is that the application itself will have advocates who know how to use the system and are not a part of the IT department. One common mistake is to use a graphics company that does not understand SharePoint. Many times, the graphics companies can produce something that looks good on paper or in an image file, but these will not always translate into a clean web design. When working with a graphics company, make sure they understand how SharePoint works and what graphical pieces can be leveraged on a custom page. Forcing users to view samples in Microsoft Visio or as a .JPG file will often not look identical to the finished site. When building out the user interface, make sure to have a qualified SharePoint resource on staff to verify graphical decisions that are made to the SharePoint master pages. Just because SharePoint is built using ASP.NET 2.0 master pages, that does not mean that every company will know how to correctly build a master page for SharePoint.
Include the Right People Early A proper project team requires more than SharePoint developers and architects to create a successful installation. Including the right people on the team greatly improve chances of success by enabling the team to tackle the myriad aspects of a complex social application. This may seem like common sense, but it actually turns out to the one of the biggest mistakes made by companies who are looking to build out a new SharePoint environment. There could be a number of reasons for this, for example, the lack of SharePoint resources or cost to bring in the right person. It also becomes difficult because many large organizations don’t have someone on staff who is familiar with social computing concepts, is accomplished at architecting a SharePoint site, and capable of gathering full business requirements for a portal
32
11:50am
Page 32
Schwartz c02.tex
V3 - 12/26/2008
11:50am
Chapter 2: Building Effective Collaboration Sites site. These roles may actually require more than one person to perform the role and sometimes might even require working with someone who has the knowledge already. It can be very challenging to identify the right person to lead the project because of a lack of understanding about which skills would be required for that role. The major skills needed from the person or people helping build the site will be a set of people knowledgeable about information architecture as it relates to SharePoint, SharePoint development, and SharePoint infrastructure. These critical tasks will help define the site and help determine what direction the architecture can be built on. If it is possible, have a separate business analyst (BA) from the SharePoint architect. The reason for doing this is that it will facilitate discussions around what is possible with SharePoint. In most cases, the business analyst will gather the requirements, hopefully based on some usage of SharePoint, with an open mind to the end users’ requests. The SharePoint architect will usually guide people’s decisions based on what he or she knows about SharePoint and sometimes limit the capabilities of what can be done. Having an experienced SharePoint architect on the project may seem completely obvious because this target application is a SharePoint site. The problem is that stakeholders may not know that the person or people gathering the application’s requirements didn’t really understand the proper use of SharePoint until the project team moves to build the site in development or until it is really too late. Finding the right people for the project is a must for the long-term success of the site. If the site is built incorrectly, it can lead to long-term maintenance, upgrade, and usage issues. Many companies have been sold on the idea that SharePoint will allow anyone to build a site and will, therefore, move forward without the right people in place. This can spell disaster and cause the end users to not use the site or have a high amount of support issues. It can seem very daunting to find the right SharePoint team members for the project. In fact, there are many types of roles that a SharePoint resource can work on. Finding the right SharePoint resources is critical. The common breakdown of SharePoint resources will usually fall into at least one of three categories: SharePoint administrators, SharePoint developers, or SharePoint architects. It is common for a person to be able to fill two of the roles, but not all three. Each one of these categories takes a good deal of time and effort to become good at. This is the reason why very few people are experts in all three categories. Figure 2-5 shows that each SharePoint team member makes up a part of the entire team and someone for each role is necessary to complete a SharePoint team. Each SharePoint role is important to the success of a SharePoint project. Looking at Figure 2-5 shows that each person plays a vital part in the project phase and needs different skills at each point.
Figure 2-5
33
Page 33
Schwartz c02.tex
V3 - 12/26/2008
Chapter 2: Building Effective Collaboration Sites SharePoint Architect The SharePoint architect will determine many of the requirements of the site, such as site hierarchy and security, and map these business requirements to the technical capabilities of SharePoint. The person who would best fit this role is someone who understands the fundamentals of SharePoint and where it can be appropriately extended. For example, it is important for the architect to understand what the differences between a site collection and site are. This person will understand how to best set up security for long-term maintenance. Common actives that this team member will fulfill include: T
Analysis
T
Requirements gathering
T
End user testing
T
Light configuration
The skills required to perform this role are: T
General business analyst skills
T
Working knowledge of SharePoint
T
System testing
T
User acceptance testing
T
Usability testing
T
Information architecture
SharePoint Developer The SharePoint developer role may be one of the most diverse roles. This role could require more than one person to fill the role, depending on what part of SharePoint is being extended. Previously with SharePoint 2003, many SharePoint developers were simply theme builders or Web Part developers. This has drastically changed with the introduction of SharePoint 2007 because there are now many more extension points in the framework. An example is creating a workflow to programmatically add new colleagues to a user’s Colleague List. The SharePoint developer will need to know about Microsoft Windows WorkFlow as it applies to SharePoint. Another example development task is to brand the social site, which will contain a list of all items that a user tags. This branding might require the developers to know how to create a file using tools like Microsoft Expression or Adobe Photoshop. Once the file is created, they may have to take the PSD file and convert it into HTML and CSS. These two different development tasks usually require two different types of developers: one who is familiar with Visual Studio and coding object model code and another who is familiar with graphics and web-based user interfaces. This is why it can be difficult to find just one person for a project that covers many features in SharePoint. In addition to the diverse requirements that the developer plays, SharePoint itself has become very large, and one developer may know how to develop workflows and use Microsoft InfoPath with SharePoint, but another developer may know how to manage the User Profile Store and Microsoft Excel Services. SharePoint is a very large animal, and no one can honestly claim to be an expert in all areas of the system. This role will require diverse activates such as:
34
T
Custom web part development
T
Custom application integration
11:50am
Page 34
Schwartz c02.tex
V3 - 12/26/2008
11:50am
Chapter 2: Building Effective Collaboration Sites T
Custom web page development
T
Deep understanding of the SharePoint APIs (both Object Model and Web Services)
T
Branding of web pages
Some of the skills required to perform this role are: T
Ability to write high level designs (HLD)
T
Familiarity with SharePoint solutions and features
T
Working knowledge of SharePoint APIs
T
HTML and CSS knowledge
T
Understanding of ASP.NET and .NET Framework
SharePoint Administrator The SharePoint administrator is the foundation of any SharePoint implementation. These team members make it possible to configure and maintain the site with as little downtime as possible. Although this role will require that the team member know many different technologies, such as Windows Server, Active Directory (AD), and Internet Information Server (IIS), the primary role of this team member is to make sure that SharePoint is available and backed up. As one of the most important roles, this team member’s activities might include: T
SharePoint installation
T
Heavy configuration
T
Environment assessments
T
Site setup (out of the box)
T
SharePoint migrations
Some of the skills required to perform this role are: T
Build network and infrastructure diagrams
T
Knowledge of installation and configuration of SharePoint
T
Familiarity with SharePoint Solutions and Features
T
Set up and troubleshoot network and database access
T
Knowledge of Windows Server, Active Directory, and SQL Server
T
Understanding of IIS and SharePoint logs
Build Wireframes and Use Cases Prior to creating a sandbox for play, wireframes and use cases help future site users understand what they will be getting. Building wireframes and use cases should be done prior to and in conjunction with the exposure of a sandbox to users. Building and refining wireframes will allow everyone to see what the final look and feel of the site will be. These wireframes can be built from Microsoft Visio or the actual sandbox site. If a graphics company is building visual comparisons in tools such as Microsoft
35
Page 35
Schwartz c02.tex
V3 - 12/26/2008
Chapter 2: Building Effective Collaboration Sites Expression or Adobe Photoshop, make sure the graphical elements can be directly translated to common elements within SharePoint. The wireframes that are created should be done with the participation of a SharePoint resource that understands how the master pages and content pages are built. If visual elements are left off one page in SharePoint that is based on a graphic mock-up, it could potentially affect hundreds of other pages later as the site is built. Usually, the type of SharePoint person required for building customizations to the pages is a SharePoint developer or SharePoint trained graphic designer. Not all SharePoint developers are familiar with the master pages, content pages, JavaScript, and CSS, which is required to build a complex visual design, so pay attention to that detail when building a project team. The final wireframes will help the development team understand the vision of the designers who built the site. A common wireframe or mock-up would look like Figure 2-6 below.
Figure 2-6 Each page and each set of functionality should have a unique wireframe built for it. Each wireframe should also be accompanied by a set of use cases. Each use case should step through the page and elements on the page from the viewpoint of each type of audience member or role that is planned to have access to the site. The use case should have enough detail for both the person describing the expected results as well as the team implementing the desired changes. If the experience is different between two roles, there needs to be a distinct use case for each audience that has a different view of the functionality. Each use case should have a supporting mock-up in both viewing mode as well as edit mode. Edit mode can refer to the scenario of adding content or modifying the page layouts by adding elements such as Web Parts. To summarize, there should be mock-ups and use cases for all elements in the matrix of roles, functionality, and type of access. The roles that a use case might be written for are:
36
T
End user
T
Contributor
T
Site administrator
11:50am
Page 36
Schwartz c02.tex
V3 - 12/26/2008
11:50am
Chapter 2: Building Effective Collaboration Sites It may seem like there will be a lot of duplication of how the site works, but it is better to be clear about how the site will work versus making assumptions about too many items. The designers of the sites need to be explicit about how it will visually look as well as the steps the user must take to perform an action. Always keep in mind that, if a sandbox environment is set up for the users, they can try different sets of steps to see which ones they prefer or if they would like to keep all possible options. In most cases, end users want to have more options than less, so make sure to guide them on what the most plausible options are. It may become difficult to keep all of the project documents up-to-date and in sync with each revision during different project iterations. For this reason, it is very important to have dates of when documents will be complete. Any changes to those documents will require changing any documents that are dependent on the use cases or mock-ups. The other major issue in design documents will be the challenge of having data duplicated as well as contradictory information. It is important to prevent the wireframes and use cases referenced by project stakeholders from having different requirements than the design documents that the development team is working from. This can cause unnecessary bugs and changes when the project moves to user acceptance testing (UAT).
Find Good Testers This may seem like another obvious suggestion, but it all comes back to staffing the project correctly. It will be three to four times more difficult for a tester without SharePoint experience to test the system adequately. Make sure the testing team has a full understanding of how to set up the site that will be required. If they do not understand how to do this, plan to spend time training them or writing documentation that will be used to train them. Some members of the testing team should be familiar with all areas of SharePoint. If there is a large testing team, every member does not have to know all of the steps on the site, but each area of SharePoint should be covered by at least one team member. These would include setting up a site from the user interface, configuring the site, and publishing new content. When configuring the site, testers need the right permissions to ensure they can add new members to a site, modify security permissions, and configure the user interface, such as adding Web Parts or changing the theme of the site. The testers don’t necessarily need to retest basic SharePoint functionality, but they should make sure the site performs as expected and is based on how the users will most likely use the site. If the only option is to use a testing team without any SharePoint experience, try to turn the negative aspects into possible advantages. The testing team can work with a knowledgeable SharePoint SME (subject matter expert) to show the testing team the steps to perform the desired actions. While this happens, the testing team can create documents on how to perform the steps that can be used for training the entire company later. However, the additional burden of this approach makes it most suitable as a last resort. This approach has a few drawbacks that can make the entire project difficult to succeed. The two primary reasons are the time added to the project and the fact that testing may only cover what was covered in training and may miss areas a SME considers obvious or simply forgets to draw attention to. Adding time to a project never appears like a good option to management. Usually, there are deadlines that need to be met. Telling management that the testing phase will take three times longer than normal will only cause problems for the testers. In many cases, the timeline will remain the same, and the system will not be tested to the standards that it should be. If time is allocated, the project date will normally slip because the team will be working through issues of not understand SharePoint. Many times, this will cause some friction between the team that is building the customizations and the testing team trying to learn it. It is always a balancing act to keep all team members on the right path and build a solution as quickly as possible.
37
Page 37
Schwartz c02.tex
V3 - 12/26/2008
Chapter 2: Building Effective Collaboration Sites
Plan for Changes During the testing phase, many users continue to try to think of new ways of performing tasks. The number of change requests will come in as the site starts to take shape. This is for a number of reasons. The users are often shown several different ways to perform the tasks they were looking at as well as realizing that a requirement that had been assumed during the requirements gathering phase doesn’t work the way the business users thought it would work. Unless the end users have an opportunity to try out all new features as they are built, the users might not understand why a change is required in SharePoint that would not normally be required in a normal public Internet web application. Remember this might be the first time that some people are using SharePoint at all while some other users might be more familiar with SharePoint 2003 instead of SharePoint 2007. The users who are familiar with SharePoint 2003 might have to relearn how to perform some actions based on the changes to the user interface. To make sure deadlines aren’t missed or too much money is spent on the project, review all of the changes with the end users. Work with the users to see if there is an alternative way of performing the same action that they are requesting as a change. An example of this might be using the search results Web Parts for listings of information instead of trying to get the right CAML query and formatting in a content query Web Part. In fact, looking at multiple approaches may give the development team more flexible options moving forward, such as an RSS feed on the search Web Parts. Every choice made during the design of the application will have pros and cons that need to be weighed and must be presented honestly to the users of the site. The last thing anyone wants to do is tell the users that they can have some specific functionality and then take it away from them later. Plan ahead. Know that the users are not likely to be expert users of SharePoint and they may learn more as they start to the use the application.
Site Structure Building effective sites starts with the site security and site structure that the project team defined. This can be as simple as a single set of pages for a blog or as complicated as multiple sites with multiple social computing applications. Another thing that remains constant is the need for the site to be easy to navigate from one application to the other. Components such as global navigation, breadcrumbs, and common look and feel are important to overall site structure. Finding a way to provide access to sites without causing a burden on the company’s IT staff has also become a critical success factor when building new sites.
Site Security Site security for social computing applications present a few different challenges, which are not usually prevalent in portal or team sites. The amount of data that end users enter and maintain can be much larger. This can make it difficult for a centralized IT team to determine who to give the correct permissions to and where to provide those permissions. Usually, the person who owns or enters the data is the one that understands how it should be used and who can view it. Many corporate social computing applications contain information about employees and the company. Because this information does contain personal information, ensure that the information available for display is well-secured and displayed only to the right users. Using an open system inherent to many social computing applications can become challenging for many companies to plan for. Some of the
38
11:50am
Page 38
Schwartz c02.tex
V3 - 12/26/2008
11:50am
Chapter 2: Building Effective Collaboration Sites templates that come with SharePoint provide users with the ability to manage permissions of the data they display, such as SharePoint surveys and My Sites. The problem with allowing end users to manage permissions is that they may not know that a setting needs to be changed or even know where to change it. If security is an issue, then using SharePoint audit data may help to know which users have changed information as well as some of the items they have viewed. Using SharePoint audit data is simple for a Site Collection administrator. Although capturing audit data is simple to set up in the user interface, work with the IT department to select the right information to audit. The size of the information stored in the audit database can become large and may require the removal of some of the most active items selected for audit purposes. To set up audit logging or to view reports of audit data, follow these steps:
1. 2.
Navigate to the Site Collection where audit data will be collected.
3.
On the Site Settings page, in the Site Collection Administration section, click Site collection audit settings.
4.
There are many events available to select from, but make sure to only audit the settings of real interest to prevent uncontrolled audit log growth. Select the events to create an audit log for. Then click OK.
Click the Site Actions menu, and then select Site Settings. Publishing a site requires clicking Modify All Site Settings after selecting Site Settings.
Once the site collection has been set up for the audit reports, site collection administrators will be able to view all of the reports by going to the audit report logs shown in Figure 2-7.
Figure 2-7
39
Page 39
Schwartz c02.tex
V3 - 12/26/2008
Chapter 2: Building Effective Collaboration Sites
Site Hierarchy This chapter will examine two types of site hierarchies. The first will be the standard portal structure that many companies use today with their enterprise portal. Next, this chapter will show some of the differences and challenges that are required for sites and pages in social computing applications. In SharePoint, building a site hierarchy defines a number of graphical elements as well as nonvisual boundaries. Graphical elements such as the breadcrumb, global navigation interface, and URL will need to be considered when building the site. For most of these elements, the structure of the site is embedded in the display, such as the following breadcrumb. The following breadcrumb example displays a page that is located in a subsite under the root site. Home > SubSite > Current Page
If another site was added to this subsite, then the UI elements would automatically add the locations to the graphical elements, such as global navigation for the user. These elements behave similarly because they are based on a sitemap structure. The sitemap has nodes and elements structure similar to an XML document that stores each page as a root element and each site as a node that can contain as many subelements or subnodes as needed. In SharePoint, it is possible to modify the UI elements that display the sitemap information after the site or page has been created, but it is not possible to change the URL that is used to retrieve information. Because it is always desirable for the URL to be as simple and easy to remember as possible, it is best to plan ahead for this limitation. This allows users to remember URL locations and return back to these locations for future use even if they are unable to bookmark the site. These are some of the reasons why it is important to determine the company’s sitemap as early in a project as possible. Make sure to include as much information in the site map as possible, such as the desired breadcrumb location, menu location, and URL for each site as well as for each page that will be created. Once consideration has been given to the visible elements, it is important to consider the nonvisible elements, such as managed paths and permission boundaries. Managed paths are locations where new site collections can be created. The location that comes preconfigured for SharePoint is the Sites URL. This is seen when a SharePoint URL has a path such as http:///sites/. There isn’t a real site located at the URL http:///sites. If an administrative user were to navigate to that location, SharePoint may allow the creation of a site at the Sites managed path location, but that site will not function as expected and will require someone with farm administration rights in Central Administration to correct the naming conflict. The other reason to consider managed paths or site collection boundaries is because each site collection contains its own set of security credentials. If a user needs access to multiple site collections, he or she will have to be added to each site collection individually. This might not seem like a big task if there are two or three site collections, but, if a new site collection is created for every team site that is added, this security administration would quickly become difficult to manage. Even if the same user with the same Active Directory account is added to both sites, his or her credentials will need to be passed to the server when he or she crosses between sites.
Portal Structure The most common site structure seen in SharePoint sites today is usually based on governance triangle, which was created in SharePoint Governance Plan by Joel Oleson and Mark Wagner. It is located on the Microsoft TechNet Governance Resource Center for SharePoint Server 2007. This has become the standard template document that many enterprises and consultants use as a starting point when they build
40
11:50am
Page 40
Schwartz c02.tex
V3 - 12/26/2008
11:50am
Chapter 2: Building Effective Collaboration Sites out a governance model for a company. Although the site hierarchy is not detailed in the document, the end result usually looks like Figure 2-8 below.
Corporate Portal
Corporate Portal
HR
IT
Global Sites (i.e., Help Desk)
Division ...
Divisional Portals
Team Site
Department
Department and Team Sites
Team Site A
Team Site B
Team Site ...
Department 1
Department 2
Department ...
Project Team Sites
Figure 2-8 This site hierarchy has a very deep structure where only a few sites are created at the top level, and these sites only change content, not structure, over time. The most common types of sites are large divisional sites, such as human resources and IT, which need to provide information to users but will almost always be a part of the company’s top-level navigation hierarchy. The bottom-level sites are very active and can be added or removed immediately. These sites are more dynamic because team members are adding and changing information and documents on the site daily. These collaboration sites could be include social computing applications such as blogs and wikis.
Social Computing Structure Many of today’s social computing applications have a very flat site structure. The sites are built around either a single page that displays different data for each user or a number of pages that support the sites functionality. Think about how a popular social networking site is set up. There is one major page, which is usually the welcome page or redirector page that users first see when they navigate to the application. Once the user enters his or her credentials, he or she is typically redirected to a page that has his or her personal information. He or she can locate another user by changing the URL of the page that is displayed. For instance, if a user navigated to his or her personal Facebook page, the URL would look like www.new.facebook.com/profile.php. But, if that user clicked on one of his or her friends, he or she would see a URL that had his or her friend’s ID in the URL, like www.new.facebook.com/profile.php?id=693221731, notifying the system to display the other user’s information. In this system, there is one generic page that displays information for all of the users on the site, and there are a number of pages for settings and other types of common requests. Despite the large amount of data accessible in social computing sites, there tends to be just a scant handful of pages that make up a site.
41
Page 41
Schwartz c02.tex
V3 - 12/26/2008
Chapter 2: Building Effective Collaboration Sites Looking at the site structure of a social computing site, such as the one seen in Figure 2-9, a flat hierarchy emerges with a welcome or redirection page almost always at the top and the main application pages below it. If the social computing project was focused on building a public social site, it would be simple to place these web pages on the web server and be done, but, because an enterprise application requires integration to multiple applications in an extensible framework, it requires a little more thought. Based on the portal structure referenced in Figure 2-8, it is possible to add this social computing structure at just about any level of the portal. The location inside the portal hierarchy will most depend on the business reason for the site. A corporate blog would probably be added at the top of the site structure, but, if the project was to create a set of personal My Site sites instead, there might be a completely different URL. It all depends on the scale and size of what the project is trying to accomplish.
Welcome/Redirect Page
Social Computing Site
My Site
My Site
My Site
My Site
My Site
My Site
My Site
My Site
My Site
Personal Pages
Figure 2-9 Social content can be very organic and hard to tie together. This leads to the need for a strong taxonomy system that can be organic and developed with the content. This is part of the reason that it is inadvisable to have a deep set of sites in the hierarchy because, if it becomes necessary to change the sites, they could quickly break the planned site structure. Users would become more frustrated with the changing site, and they would quickly move away from using it, as it would a distrusted source of information due to navigation and URL changes, making it hard to work with reliably.
Governance When they hear the word governance, most people think about how they will be restricted with their computer usage. In large organizations, they think about policies on their laptops or restrictions on their Internet usages. Challenge the team to prevent quickly locking down a collaboration site without thinking about policies that can foster healthy usage and interaction. The first step to making choices about the governance plan is to clearly identify the information architecture of the site and the business needs it will need to operate in. Determine who will be using the site. This will include determining permission of who can access content and who should be allowed to contribute content. Each social computing application will have different mechanisms for authoring content, and each will require a different set of guidelines. For example, the same rules that apply for a wiki would likely not also apply to a blog. Make sure to determine how the final content will be published and who will approve the content if approval is required. Many users from Generations X and Y will be familiar with these tools and will immediately think of how they use similar tools on the Internet. Sending out an email or otherwise distributing the message that everyone is part of the company and each individual represents the company in all of his or her content and images will help the younger workers understand that their work and online personas need to be kept separate. For example, although it is not difficult for a user to realize that he or she is at work
42
11:50am
Page 42
Schwartz c02.tex
V3 - 12/26/2008
11:50am
Chapter 2: Building Effective Collaboration Sites when he or she is sitting at his or her desk, he or she might find it funny to put an image on his or her profile that is not appropriate in a professional setting. Find a way to demonstrate what a proper image and content might look like before opening the application to the company’s users at large to ensure there are no issues afterwards. The amount of network traffic might drastically increase based on the type of application. With SharePoint, every list can have an RSS feed associated with it. If all of the lists of the site were RSS-enabled feeds and all of the users subscribed to each of those feeds, it could bring down the site thanks to the network traffic increase from the RSS feeds. Think about the right time to use technologies. Don’t just use them to be able to include buzzwords, such as Enterprise 2.0, in the project. Check to see what type of volume that users will expect to add to the system. It is usually impossible to predict exactly how a collaboration site will be used, but use best guesses and try to monitor the site periodically. Create policies on how information will be managed within the site. If one part of the site is set up as a public-facing site and the other part is internally facing, make sure there is a process for identifying which documents and content are moved to the public-facing site. All of these SharePoint sites are web pages so, at some point, it might be possible to access the entire site’s content from the Internet. At this point, it will be important to have the proper Information management rights in place. In general, many high-level executives worry about the distribution of documents, blogs, and wikis that may contain sensitive data. Building an approval process for public-facing data and keeping a good audit log will help determine if the site is being used as planned. It is a fine line between being a policed environment and being an open environment. Most people work best in an open environment, but there will be times when the company has to make sure sensitive data is not accidentally leaked. Maintaining trust is a two-way street. If you encourage employees to participate, they will want to, but keep an open communication about the sites processes and procedures. If too much regulation is placed on users, they will become frustrated and not want to use the system. The best systems for social computing are open systems that allow users to come up with new ways of using the provided tools to meet their needs. It can be difficult at first to try out new applications such as wikis or blogs, which allow employees to produce any type of content in virtually any format. The same kinds of policies could apply to email today, but executives don’t worry about the content in email as much anymore because email is so pervasive and executives have grown to trust the employee to conduct themselves as part of the company.
Managing Content Growth The amount of content that can be generated from some of these open social computing tools can seem initially daunting. Look at the cycles that many social computing applications go through when they first generate content. The graph below in Figure 2-10 shows the different content stages that the application will go through. This is almost identical to the path that site adoption will take. The reason for this is that there is a direct correlation between the number of users (adoption) and the amount of content that is generated on the site.
Stage One The first stage of content will be very regulated and, in most cases, preplanned. Sometimes, a public relations or public affairs group that understands the goals of the initial content for the site will create the initial content that is delivered to the site. This could be communications from the CEO or just welcome messages directing users where to go when adding their own content. The most important content at this stage will be to direct users on how to use the site and what the site will be used for. Consistent messaging and common branding will help other users understand what the project is trying to accomplish. At this
43
Page 43
Schwartz c02.tex
V3 - 12/26/2008
Chapter 2: Building Effective Collaboration Sites stage, a limited set of new users will be adding small amounts of content and will be basically trying out the application.
Amount of Content
Stage 2
Stage 1
Stage 3 Stage 4
Usage Time
Figure 2-10
Stage Two This is the stage where it will start to feel like the site is out of control. Many authors are entering content just to try out the site, and they have no real value in their content. Do not panic during this stage. Let the moderators and content authors work through the application to maintain the site. The users who do not have any value to add or content with merit will quickly stop adding content just because they have nothing to add. Initially, there may be users who start to complain that there is too much noise for the application to become useful, but the application must get past this stage before the valuable content authors are determined. This stage will become a contest of survival of the fittest content, and the project team will not need to do anything at this stage.
Stage Three At this point, the application itself will have finally weeded out almost all of the content authors that did not provide good content. Some users have decided to not use the site based on the belief that it is too much content for them to read and keep up with. Many of these users will return once the site has normalized back down to a valuable level.
Stage Four The site will continue to grow as valuable content is continuously generated on the site. Make sure to allocate some time for at least some groups of users to regularly enter updated content so the site does not become stale. At this point, the site’s content will continue to increase, but it will do so at a much slower rate than when the site was first launched. If there are big announcements or major changes to the organization, there may be a burst of content, but, as a whole, the volume of new content entered into the site will remain steady.
End-user Suppor t and Training The project has progressed through all of the analysis, preplanning, and planning stages. The project team has spent the time building the site based on the needs of the organization, and it is time to let forty thousand users onto the system. What happens next? It is time to set up a support system that will
44
11:50am
Page 44
Schwartz c02.tex
V3 - 12/26/2008
11:50am
Chapter 2: Building Effective Collaboration Sites help ease the users onto the site. This support will need to be both at department level as well as phone support based on the number of users. Most important is the need to find a way to train all of the users who will be navigating to the URL as soon as it has been sent to them. Be as creative as possible or use traditional techniques, but make sure to find a way to provide every individual the opportunity to have some contact with the training material. There are a number of suggestions for supporting the users, but one of the best options is to have context help available online in the application. When users need help with the web site, make sure there are documented steps on how to perform the actions they are looking to perform as well as common information about a feature. If a user is trying to enter information into a wiki and cannot figure out what tokens are supported, have a link he or she can click that will show all of the supported tokens for the page. Prepare the help desk or IT members who will field calls with any training material or how-to documentation prior to the launch of the site. Make sure they are well-versed in using the site. Make the support team part of the entire collaboration team, and allow them to ask questions about how the site is set up. This will help manage the number of support requests that finally make their way up to through the levels of support escalation to the development team. Training will be necessary for every individual to step though. Find a way either electronically or through a manual process to validate that all of the users have been given some type of training. A good process is to use a tool that records a trainer’s computer screen as he or she navigates through the basic steps of using the site. If the project did not make any major changes to the default way SharePoint works or changes were restricted to simply changing the theme or content, then it is possible to direct users to Microsoft’s site for end-user training or Microsoft Office Online documentation. Make sure to be patient with end users. Some may be familiar with social computing tools outside of work, but there will be many users who may have never used these types of applications before. It may take some users more time to get a full understanding of how the site works as well as the new process, such as clicking a drop-down link to get a list of additional actions that can be performed. Many users have been told that Enterprise 2.0 or social computing applications will solve all of their problems. This may be true, but, until they learn how to use the tools, they will do them no good. Set expectations for the social computing applications. End users who don’t understand how the site works will become frustrated and think the promise of Enterprise 2.0 is not living up to the hype. Even if the social computing application does solve many of the problems with how people communicate and collaborate today, there is a good chance that there will be new problems that need to be solved once the applications have launched. Work with the collaboration managers and directors to help them understand that end users will be given more rights to create content than they probably are used to having on corporate portals and intranets. There needs to be some level of trust based on the governance model. Emphasize that most employees will do what is in the best interest of the company, but it is important that they stay within boundaries of the governance plan.
User Adoption Cur ve The final piece to building a successful collaboration site is gaining the acceptance of users. This is known as the user adoption of a site. Many organizations build metrics on their collaboration departments based on the number of users of the site, and they actually base success on this metric. There are a number of reasons why this may not be the best metrics as can be seen in the user adoption curve. In order to get more and more people excited and interested in the site, call on the current user base to find and create groups of early adopters. These early adopters will be the group that is challenged to
45
Page 45
Schwartz c02.tex
V3 - 12/26/2008
Chapter 2: Building Effective Collaboration Sites go to the site daily to add content and help moderate content from other individuals. A great way to find this type of user is to send emails around the company to ask who is interested in the type of social computing application being deployed. To be successful, people will have to help convince their other team members that a new way of performing a task might be more efficient or better than the previous ways. These early adopters are commonly known as the social computing advocates. They need to have an approachable personality and be willing to take some time out of their day to help others learn how to use the system. This type of word-of-mouth and champion lead adoption will work in a similar fashion to a viral marketing campaign. Progress will be slow at first, but it will get faster and larger over time. Make sure to have clear goals that can be conveyed to the early adopters as far as content and time expectations. Provide them with goals so they can make sure to allocate time to accomplish these tasks. If the early adopters aren’t given time to perform these content creation and viral marketing tasks, they will either feel they are not important to the project or will become overwhelmed with the amount of work being asked of them. One major challenge when implementing a social computing application is expecting too much out of the team members who are implementing and managing the system. Remember that an Enterprise 2.0 application requires the adoption of the entire company, not just the team members building the actual application. Without the support of the rest of the company, the application will not be well-adopted and will surely fail. Figure 2-11 illustrates how the process will progress in an organization as the amount of time and number of users increases. Because each organization is unique and the amount of users and time can vary drastically, it should generally take about six months to one year to achieve the first couple of milestones.
Number of Users
Milestone 2
Milestone 1
Milestone 3 Milestone 4
Usage Time
Figure 2-11 The initial milestones may be reached as the deployment of the site begins. A healthy project will go through each point in the cycle, but each project will vary on the number of users of the project. The rate and time at which the adoption of the site will occur will greatly vary from project to project. It will depend on the amount of users, the ease of access, and the value of the content that is on the site.
Milestone One The first milestone to be achieved will not only include the early adopters, but will also start to include employees who are interested in using the site. They will be using the site to see what value it can provide them, and they will check out the site every couple days to see if there is anything different or new. This
46
11:50am
Page 46
Schwartz c02.tex
V3 - 12/26/2008
11:50am
Chapter 2: Building Effective Collaboration Sites will mostly likely occur shortly after the launch of the site and will based on the buzz and excitement that has been created from the early adopters and the actual launch of the site. This is a good time to get feedback from the users and to find out what they do and don’t like.
Milestone Two This will be the peak of when users are accessing the site. Team members will be working together to find out where they can push the limits of the site. While some users will start to independently find good uses for the site, others might find the site useful or interesting but not very productive for their job. At this point, don’t worry if some negative feedback begins to trickle in from users who are not sure they understand how the site works or what it will be used for. When the bad comments are balanced against the good comments, it will be easier to determine if there is something that truly isn’t working for the organization that needs to be addressed. In general, by the end of this stage, some people who were originally using the site will start to have less of an interest in the site.
Milestone Three At this point in the project, a large number of users is using the site on a normal and consistent basis. Although the total number of users on the site has declined from the highest point, more than 50 percent of the peak number of users has continued to use the site. New users will begin accessing the site, and most of the users interested in the application will be content contributors or at least feel the application helps them in their jobs.
Milestone Four Now it is time to sit back and wait for more users to access the site. There will not be any sudden large increases in the number of users for the site, but the number of users should steadily rise. Depending on the size of the company, this may reach a hard limit on the number of employees that become users of the site. In general, there will probably be about 20–30 percent of the user base that contributes content on a regular basis. The other 70 percent of users will either be readers or occasional contributors. Don’t worry. This occasional usage pattern is normal. Consider encouraging the users to increase contributions by holding contests and giving out prizes, but remember that some these people were contributing without any of the prizes. So don’t make use of the portal exclusively about the prizes.
Summar y This chapter has covered a lot of ground around how to build a successful collaboration site. Over the course of the chapter, an emphasis was placed on gathering research data and how important it is to know how people perceive the site as well as how they actually use the site. The importance of assembling the team and planning the goals of the social application before actually creating the site simply cannot be overstated. There was an emphasis put on including SharePoint subject matter experts (SME) throughout the entire process. As part of the planning stages, determine the site structure that will host the social computing application. The site structure of social computing application can be very different from that of a traditional enterprise portal. Another part of the preplanning effort was the identification of a governance plan for these new robust tools that allow content from many different authors. Remember
47
Page 47
Schwartz c02.tex
V3 - 12/26/2008
Chapter 2: Building Effective Collaboration Sites that this application is targeted to run on a company site, not a public-facing web site where thousands of unknown users use it. Once the site has been set up and the project moves toward the deployment phase, the project team will need to support and train the thousands of users who will be using the site. Support and training options range from some type of hands-on support to online help documents and training videos. Finally, the chapter looked at how to measure the adoption and success of the site by examining the user adoption curve and associated milestones. The goal of this chapter has been to help an organization be properly prepared to start a social computing project. Social computing is a fast-moving space that requires the project team to continue to do research as trends change. Chapter takeaways include:
48
T
Understand what makes an effective collaboration site and how to measure it with SharePoint’s audit logs.
T
Preplanning stage recommendations include: T
Do let the business stakeholders know that their vision can be reached, but it will not happen immediately. The more complex the requirements, the more they will need to be prepared to spend time or money on the project.
T
Don’t commit to major changes until it has been proven that the changes are within the product’s reach.
T
Don’t make it appear that functionality can simply be added and not require any additional testing of the system.
T
Do include business users and stakeholders as early as possible.
T
Don’t wait until the end of the project to start to think about how the end users will accept the site based on the team’s vision.
T
Do create a sandbox area or test site so users can try out the system.
T
Do ensure the users know and understand the boundaries of the sandbox they are working in.
T
Don’t try to make the users visualize functionality with only images or screenshots to go on.
T
Do include a business analyst as well as individuals knowledgeable about SharePoint 2007.
T
Don’t think it will be okay to have a few graphic designers and a handful of employees who don’t know what SharePoint’s capabilities are.
T
Do build relative mock-ups and use cases of the site the way it will be seen by end users.
T
Don’t explain the site solely by drawing on a whiteboard or talking about the way the site could look.
T
Do verify that the testers have experience with SharePoint.
T
Don’t assume that SharePoint experience means both content authoring and end user experience.
T
Do add time to the project plan for end-user change requests.
T
Don’t think that the business requirements are 100 percent complete just because the deadline for new requirements has passed
11:50am
Page 48
Schwartz c02.tex
V3 - 12/26/2008
11:50am
Chapter 2: Building Effective Collaboration Sites T
Understand the difference between a traditional portal site structure and a social application site structure and how they fit together in an enterprise portal.
T
Appreciate the importance of a site governance plan.
T
Plan for end-user training to help drive user adoption.
T
Learn to measure user adoption and recognize adoption milestones.
This chapter discussed how to plan for effective social applications. The rest of the chapters in the book each discuss individual concepts and techniques that can be included in social applications. The first concept to be discussed in chapter 3 is content tagging and rating, the first step in socializing enterprise content.
49
Page 49
Schwartz c02.tex
V3 - 12/26/2008
11:50am
Page 50
Schwartz
c03.tex
V3 - 12/26/2008
12:05pm
Content Tagging This chapter describes a new and rapidly evolving social networking tool called content tagging. Content tagging allows a community to mark up content such as blog entries, documents, entire web sites, and just about any web-accessible piece of data. The community tags content in various ways. Two popular methods include a simple labeling concept (e.g., attach a label to a particular blog entry) and quality rating (five stars for excellent content, one star for poor content). Tagging is a compelling tool for several reasons. It draws individuals into the process, strengthening the sense of community and commitment that characterizes successful organizations. Tagging content also helps to surface the ‘‘wisdom of crowds’’ that often evades business analysts working in the depths of the Information Technology (IT) department. It augments more traditional information management processes by working outside the straitjacket of formal information taxonomies and provides an outlet for the community’s intuition, imagination, and personal touch. This chapter addresses the following questions: T
What is content tagging?
T
Why is it compelling and important to organizations today?
T
How can organizations implement Web 2.0–style content tagging in SharePoint?
What is Content Tagging? The very notion of tagging — indeed, the word itself — is a perfect example of social computing. A computer scientist sitting in a dark room would never dream up a word like tag. Instead, he or she would use a more formal term, such as label or, more likely, polycategorize. However, the world isn’t run by computer scientists (thankfully) and the more colloquial term tag carries the day. So what does it mean? In a general sense, tagging is nothing more than categorizing content. Upload a document or create a list item in SharePoint, and tell SharePoint the business meaning of that content. In other words, tag it. Is it an invoice? Is it a purchase order? Is it a clever blog entry
Page 51
Schwartz
c03.tex
V3 - 12/26/2008
Chapter 3: Content Tagging describing how to create a state machine workflow using SharePoint Designer? What is it broadly about? SharePoint? Security? InfoPath? Search? The tagging process seeks to distill the essence of a piece of content into one or more short tags. Tags are often one word in length. Many tagging engines on the Internet actually enforce this rule. But nothing prevents anyone from using compound words. For example, if Search is just too generic a tag, use Search_WSS or Search_MOSS instead. Tagging is not a new concept, but it is an evolving one. Today, the tagging world supports two fundamental approaches: T
Formal taxonomy: As top-down, carefully defined, highly structured information architecture, formal taxonomies are most effective when grounded in clear business requirements defined iteratively over a period of time by business experts. They are often implemented, managed, and controlled by a company’s IT group. The Windows SharePoint Services (WSS 3.0) and Microsoft Office SharePoint Server 2007 (MOSS) platforms provide excellent support for information architects to work with business analysts and key business resources to define a formal taxonomy through the use of data entry forms, list and document library views, and searches, among other things.
T
Informal folksonomy: An organic user-driven and user-defined structure informally managed by the folks. The community itself directly manages the taxonomy with little or no formal involvement from IT. This stands in direct contrast to a centrally managed, formal taxonomy. Although IT department employees (or knowledgeable business users) might provide the community a few hints by seeding a set of tags, the community itself largely drives the process.
It is important to note that these taxonomies are not mutually exclusive. In fact, in nearly all cases, they can and should complement each other. There are several ways to tag content and visualize the results. No doubt more will be devised as Web 2.0 evolves, matures, and eventually gets replaced by the as-yet-undefined Web 3.0. Two of the most common interactive tagging structures include T
Tag Clouds: Tag clouds provide a low-tech graphical view of tags and their relative relevance to a given corpus or body of content. The size of a tag in a tag cloud is directly proportional to the number of times a tag appears in that body of content.
T
Content Rating: Community members give a thumbs up, thumbs down or something in between when they digest and rate a piece of content. Community member ratings are frequently averaged to help other readers understand how well received the content has been.
Content Tagging by Example: delicious.com and wordle.net The web site delicious.com is a social bookmarking service that lives and dies by the tagging process. It allows users to save bookmarks to a globally accessible favorite’s folder. Globally accessible means exactly that — as long as there’s a working Internet connection, users may access their favorite bookmarks from anywhere at any time from any computer. Rather than saving bookmarks to a file on the computer running the browser, delicious saves bookmarks on its own server. This notion of saving information and leveraging services of an unknown server pool is often referred to as working in the cloud. No one
52
12:05pm
Page 52
Schwartz
c03.tex
V3 - 12/26/2008
12:05pm
Chapter 3: Content Tagging knows exactly what hardware is used, where the hardware is physically located, who owns it, or so on. It’s just out there in the cloud. Figure 3-1 represents how users interact with the cloud — in this case, delicious.com.
Manage bookmarks (add/modify/delete) and tag them from any computer, anywhere, even on a Mac.
delicious.com
Browse the Internet. Find a web site. Bookmark and tag it using delicious.com
Access bookmarks and search them from any computer connected on the Internet.
Figure 3-1 Delicious delivers on the tagging concept as follows: T
Users browse the Internet and find interesting web sites.
T
Using a browser plug-in, they bookmark sites.
T
They assign one or more tags to the sites.
A typical delicious.com bookmark site is seen in Figure 3-2. Delicious performs some analysis on the site, recommends some tags (e.g., books or programming), and shows some related popular tags (e.g., web2.0, publishers). Users are free to pick any of those tags or to create a new tag on the fly. Many users’ picking the same tag (e.g., greatpublisher) can influence both the recommended and popular tags. This notion that the community itself, rather than a tagging overlord, affects the recommended/popular tags puts the social into social computing.
53
Page 53
Schwartz
c03.tex
V3 - 12/26/2008
Chapter 3: Content Tagging
Figure 3-2 In a social computing context, tagging is managed by the community. Users choose their own tags and tagging structure how and when they want. The folks define the taxonomy on their own, using their own words, over time. As the tag universe grows, certain key words (tags) become more popular than others and eventually dominate the pack. Figure 3-3 shows delicious.com depicting this process graphically using a tag cloud.
Figure 3-3
54
12:05pm
Page 54
Schwartz
c03.tex
V3 - 12/26/2008
12:05pm
Chapter 3: Content Tagging Tag clouds show the relative importance of certain keywords over others within a particular corpus in an easy-to-understand way that is somewhat more efficient than a ranked list of the same keywords. A corpus is a collection or body of data. A collection of favorite web sites and their tags comprises the delicous.com corpus. The tag cloud derives itself from those sites and their tags. The delicious.com tag cloud is fairly simple and easy to read. It is clear that some tags are more common than others. Based on the figure, search, codeplex, and workflow are well represented in the corpus. Other tags are much less so. Try to find intellisense. Another web site, http://wordle.net generates colorful and flashy word clouds, as seen in Figure 3-4.
Figure 3-4
The wordle.net tag cloud in Figure 3-4 pulls from the same source as delicious.com, but it displays the tags quite differently. It exaggerates the weight of different tags and stacks the terms together in a visually appealing manner. It is clear again that workflow, search, and codeplex are prominent tags.
Content Tagging by Example: Rating MSDN Articles Tagging can be much more than just slapping a label on a piece of content. Tagging and rating systems allow users to tag content by commenting on the quality of a particular piece of content through a feedback mechanism. Figure 3-5 shows the content rating system on MSDN.com.
55
Page 55
Schwartz
c03.tex
V3 - 12/26/2008
Chapter 3: Content Tagging
Figure 3-5 Microsoft’s online developer network (MSDN) hosts hundreds of technical articles for Microsoft developers. Over time, Microsoft has adopted social computing tools, such as content rating. After reading an article, the reader offers feedback through a traditional leave a comment box but also by giving the article a star rating. The screenshot above shows that the article has averaged four stars among its reviewers. These reviews help both the reader and publisher. Readers give more credence to the advice offered by a five-star article and less credence to a one-star article. Publishers can analyze content’s rating and tailor future efforts to meet the community’s expectations. Over time, rating systems can also feed into a database and analysis system than can turn around and make recommendations based on a given reviewer’s past reviews. Netflix (www.netflix.com) may be the most famous consumer-oriented version of this technology. Amazon.com is another excellent and frequently cited example of community ratings and comments affecting user patterns on the site.
Why Should Organizations Embrace Content Tagging? Social content tagging is a compelling new feature that organizations should seriously consider adding to their environment. This is not to say that enterprises should entirely rely upon content tagging driven folksonomies to organize portal content. Formal information taxonomies (described later in the chapter) are extremely powerful and useful tools. Content tagging complements formal information taxonomy. It does so in several important ways: T
It draws employees into the information tagging process that might otherwise never participate.
T
It provides a new way to slice, dice (sort and filter), and especially search for content.
T
Through rating systems, it helps organizations evaluate their current content and generate new content of value to the community.
That said, content tagging can prove challenging:
56
T
Entrenched IT interests may be unable to understand the value of this approach or may be unwilling to change.
T
Because content tagging is community-driven, traditional IT responsibility is turned on its head, sometimes producing fear, uncertainty, and confusion.
T
Like any new initiative, content tagging takes hard work to do right, requiring due diligence and features/benefits analysis.
12:05pm
Page 56
Schwartz
c03.tex
V3 - 12/26/2008
12:05pm
Chapter 3: Content Tagging
Content Tagging Brings Value Organizations that embrace content tagging benefit both individuals and the enterprise as a whole. Content tagging draws individuals into the business by offering them the chance — in fact, forcing them — to consider how to tag and evaluate content. Many individuals working together this way supports the enterprise and offers insight into the organization’s content, value, and place.
Individual Benefits Content tagging is a powerful tool for individuals. Content tagging empowers individuals to make decisions about how they use content. Unlike a formal taxonomy, there are no rules. Users put whatever tags they want on a document. This, in turn, gives users an incentive and personal investment in the process. Because the system does not force them to conform to a particular structure, they impose it themselves in cooperation with other members of the community. In order to tag the content, they need to think about the best tag or set of tags. To do that, they need to think for themselves how to best represent this document or piece of content to the rest of the company. To do that effectively, individuals must make a personal investment in understanding the business and in helping to be a responsible member of the community. Content tagging increases productivity. Tagging content is very easy — just enter a word or phrase or click a star rating, and press Save. Over time, the community settles on a set of standard tags for content and can be easily search using tag clouds (this is covered in great detail later in the chapter). As the tagged corpus grows and becomes more mature, the tags can themselves become a primary method for locating content. If someone uploads a document June 1 and then needs to retrieve it six months later, it may be easier to locate that document via a tag cloud search than to use traditional methods, such as navigating through document libraries. Content tagging is democratic. The user is not beholden to an IT overlord, but to the community. The community tends to prevent inappropriate, misnamed, or otherwise incorrect tags from gaining prominence. This is not to say that inappropriate or incorrect tags won’t enter the organization; this is part of the risk of an open and informal social application. The best defense against inappropriate content is a clear governance policy, as described in Chapter 2. Content tagging provides an escape valve. Despite best efforts, even the best formal information taxonomies start to show cracks over time. Conditions change, business changes, and organizations hire new CEOs who want to change direction. All these things tend to force changes on the formal taxonomy. Content tagging’s flexible nature allows individuals to manage change on a daily basis while IT makes long-term adjustments to the formal taxonomy. Content tagging provides highly valuable feedback. Rating systems in particular clearly indicate the community’s perceived value of a piece of content. A given user writes an instruction manual and posts it to SharePoint. Over time, members of the community review and rate that content. This qualitative and quantitative feedback provides vital insight to the author, who can then tailor future efforts with it in mind.
Organizational Benefits Organizations, as well as individuals, derive value from embracing content tagging.
57
Page 57
Schwartz
c03.tex
V3 - 12/26/2008
Chapter 3: Content Tagging Content tagging encourages communication. In order for the community to settle on a common set of tags, groups must communicate with each other. The process of rating content encourages communication as well. If a particular document is not well received, the author should work with the community to understand why. Both of these processes help to form relationships within the community as individuals cooperate and collaborate on content. Content tagging uncovers otherwise hidden relationships in the corpus. Formally defined information architectures, even with the best of intentions, cannot capture all the business data in the corpus. Formal information architectures rarely provide for the kind of qualitative analysis organizations can derive from rating content. They do better with rigidly catagorizable types of content, but tagging can show the street terms for certain kinds of content. Tagging’s democratic nature means that the entire organization (not just an information architecture committee) defines the meaning of content. Mature tag clouds can uncover the wisdom of the masses, because the masses themselves defined such clouds’ tags. A formal information architecture cannot offer that kind of insight. Content tagging can improve an entire organization’s productivity. Because the community collaborates together to create the tag cloud, members become more efficient at searching for content. As new hires join the organization, they can more quickly immerse themselves into the corporate culture, assisted by tools such as highly rated content and tag clouds. Highly rated documents are gold mines of good information that might have otherwise been hidden away and concealed by search engine logic. Content rating can feed into search engines’ ranking and relevancy algorithms. Content tagging is a valuable feedback mechanism. Tagging content using rating systems is the most obvious benefit. However, tag clouds can help information architects validate formal architecture and point to the need for additional formal definitions.
Organizational Challenges to Content Tagging Organizations must be mindful of the fact that content tagging, just as any new initiative, has its own set of potential pit falls and traps. With forethought and planning, these can be avoided. Success Factors for Tagging in Organizations, near the end of this chapter, offers guidance on how to overcome these and other obstacles.
Folksonomies Are Scary At this point, information architects should take a deep breath and stop holding the book with a death grip. Social computing’s notion of tagging is very scary indeed. Why is that?
Loss of Control By its very nature, content tagging is not controlled by the Information Technology department. This is a radical departure for many organizations and may be fundamentally at odds with the corporate culture. It is very natural for the IT department to view any kind of information architecture initiative as an IT prerogative to be jealously guarded. To many IT people, categorizing content feels a lot like designing a database. The IT profession knows from years of experience that the process of defining data schemas must be treated with extreme caution and good thinking. A system that allows users to make these decisions — on the spot and without careful analysis — is terribly wrong from an IT perspective.
58
12:05pm
Page 58
Schwartz
c03.tex
V3 - 12/26/2008
12:05pm
Chapter 3: Content Tagging Poorly Tagged Data The IT people have a strong argument. There is a real risk of tagging content inappropriately. One man’s tomato is another man’s tomatoe or red fruit. Different people can tag the same content in ways that makes perfect sense to them at the time but that are wildly different. Someone may be in the habit of using very broad categories, such as cat. Others may be tag in much more specific terms, such as domestic shorthair. Organizations that encourage collaboration should have little difficulty dealing with this challenge.
As with Formal Taxonomies, Retrofitting a Folksonomy is Very Difficult If an organization has tagged thousands of documents with some archaic term that has been changed, it may be difficult to adjust. For example, it is not uncommon for a company (or a division, etc.) to rebrand itself. To be effective, the branding message should be reflected in as much content as possible. Many good tagging systems provide a mass rename feature, but not all do.
Personality Clashes and Sybil Attacks Rating content is subjective process. Two people reading the same content could arrive at opposite conclusions as to that content’s value. One person may rate it poorly and the other highly. This will tend to even out over time as communities members rate a particular piece of content. Rating content is also a very personal process, something that is both a good and bad thing. On the one hand, rating a piece of content requires thoroughly digesting and evaluating it before rating it. On the other hand, actually rating the piece means going on the record. This is difficult for some people to do. The reverse is difficult as well. An author may post a document and wait for the reviews. A series of poor reviews might deter the author from participating in the future. Content rating can lead to what is called a Sybil Attack, in which a single individual creates multiple online IDs and then rates content poorly (or well, depending on his or her objective). Because the rating system considers each of these IDs to be a distinct person (the system being unaware each is controlled by one human), ratings can become distorted.
Tagging Content in SharePoint Unlike social computing’s freewheeling, community-oriented notions of content tagging (or folksonomy), SharePoint provides a very formal and more traditional approach to tagging content. Don’t worry, however; the community and third party vendors have stepped up to the plate with a wide array of extensions that are discussed later in this chapter. SharePoint provides a rich set of functionality to support formal taxonomies. These taxonomies are centrally controlled and normally predefined before anyone adds content to SharePoint. Information architects consider the kinds of documents and lists that SharePoint will house (collectively called the corpus) and, from this process, define taxonomy. SharePoint ensures that the information in that taxonomy is captured when users add content. This information (the metadata) consists of content types and site columns. Among other things, SharePoint generates data entry forms based on these definitions. SharePoint users often adopt the term tag when filling out these system-generated forms because
59
Page 59
Schwartz
c03.tex
V3 - 12/26/2008
Chapter 3: Content Tagging it is easier than the formal alternative. No one ever asks, ‘‘Hey, Vivek, what metadata did you enter for the Invoice Date site column on that document you uploaded yesterday?’’ That just doesn’t roll off the tongue. Instead, people ask, ‘‘How did you tag that invoice?’’ Consider an invoice. Companies send invoices to customers soon after shipping products and ask for payment by a certain date. Figure 3-6 shows SharePoint’s OOB notion of what content tagging for an invoice might look like.
Figure 3-6 SharePoint prompts users for the metadata associated with that invoice document as soon as it is uploaded. This is SharePoint’s notion of tagging, and it is both similar and dissimilar to the concept of social tagging. SharePoint creates the data entry screen based on that formal taxonomy described above. Information architects work hand-in-hand with business users to define the metadata that SharePoint should track for each document. This is done during an iterative design process characterized by its rigorous and formal nature. Once the rigorous process is complete, the structure is more or less written in stone. The difficulty lies in that over time, the corpus grows as users upload more and more documents. As the corpus grows, hundreds and thousands and potentially tens of thousands of documents are tagged in accordance with the formal taxonomy. If someone decides, ‘‘Hey, I need to specify payment terms on those invoices,’’ what now? SharePoint makes it easy to add a Payment Terms site column to a content type, but the organization has to figure out a way to find all those affected invoice documents and update the Payment Terms column. Figures 3-7 and 3-8 show how the invoice metadata appears in the SharePoint configuration screens. Figure 3-7 describes the Content Type. In this instance, the Content Type represents an invoice. The invoice is a document that can be described effectively by a set of metadata. Figure 3-8 illustrates the metadata as a set of columns that users are able to fill out as they upload each invoice document.
60
12:05pm
Page 60
Schwartz
c03.tex
V3 - 12/26/2008
12:05pm
Chapter 3: Content Tagging
Figure 3-7 The content type definition allows information architects to name the content type (invoice), to give it a simple description, and to associate it with a group for easy maintenance (imagine hundreds of content types).
Figure 3-8 Although the header is useful, the strength of a content type derives from its columns. Each column has various characteristics, the most important of which are: T
Name: SharePoint displays the name of the column in input forms, views, and so on.
T
Type: SharePoint provides a dozen or so options for specifying the type of information a field holds, including text fields, date- and timestamps, and method of choosing (as a drop-down list, lookup), among other things.
T
Status: SharePoint allows fields to be identified as required, optional, or hidden.
Content types support the concept of inheritance. In the example seen in Figure 3-7, the invoice content type inherits from the document content type. This means that the invoice content type has all the same characteristics of a document content type — plus whatever additional metadata and behavior are associated with an invoice. The organization could then further classify the invoice content type by creating new content types that inherit from the invoice content type. Recall the Payment Terms scenario presented above. Perhaps the organization decides that the distinction between a Cash on Delivery invoice and a Net 30 invoice requires more than a single site column. New content types with associate new site columns would definitely be the way to go. This kind of formal definition process is as far as SharePoint goes out of the box when it comes to tagging content. Companies typically build many different content types and create a hierarchy similar to the formal information taxonomy seen in Figure 3-9. This kind of formal taxonomy stands in contrast to the organically grown and dynamic folksonomy seen in, for example, a delicious.com tag cloud. The next section describes how to leverage this capability to enable a poor man’s content-tagging solution, and it then explores community offerings and third-party tools that extend SharePoint’s capability in this area.
61
Page 61
Schwartz
c03.tex
V3 - 12/26/2008
Chapter 3: Content Tagging
Corporate Document
IT Document
HR Document
A/R Document
A/P Document
New Hardware Request
New Hire Handbook
Sales Invoice
Network Topology Diagram
Policies And Procedures
Services Invoice
Contract
Vacation Policy Working From Home
Figure 3-9
Extending OOB Content Tagging Out of the box, SharePoint provides a solid foundation for defining formal taxonomies, but not so good at providing social tagging. SharePoint itself and the larger community provide several different approaches that, in combination, do provide a good solution, including
62
T
Core application features: SharePoint itself provides a built-in tagging ability through the use of content types. Sticking to pure OOB features is limiting, but users can create a poor man’s tagging solution that provides value and — as explained later in this chapter — an excellent starting point for organizations that want to dip their toes into content tagging safely and with relatively little effort.
T
Community projects: Microsoft’s hosted open-source community, www.codeplex.com, provides several freely available tagging solutions.
T
Third-party vendor solutions: Recognizing social computing’s obvious advantages, vendors have created a variety of solutions for purchase.
T
Core technical features: SharePoint itself is very extensible; using the programming object model, individuals and vendors can and do create their own content-tagging solutions.
12:05pm
Page 62
Schwartz
c03.tex
V3 - 12/26/2008
12:05pm
Chapter 3: Content Tagging The next several sections describe specific techniques organizations can use to extend SharePoint’s OOB content tagging solution through the use of core application features and community projects.
Poor Man’s Tagging: Site Columns Even though site columns and content types are normally used as building blocks to implement a formal taxonomy, they can also be used to implement a poor man’s tagging solution. The You Try It section later in the chapter walks through this process in detail. There are a several good reasons to take this approach: T
Simplicity: It takes moments to define a site column such as this. Once it has been created, it is immediately available to the community. It has little-to-no impact on the formal taxonomy.
T
Walk before you run: It is no small effort to introduce new concepts (no matter how valuable) to an enterprise. Content tagging is no different. Some organizations may find it easier to slice off a small part of the overall corpus and introduce tagging at a very low level, targeting just one or two document libraries or lists. This way, the organization can easily monitor the extent to which the community embraces tagging and use that to plan a more robust rollout in the future.
T
Sorting/filtering in lists and document libraries: Out of the box, MOSS lists and libraries provide a rich set of column sorting and filtering features. Site columns are first-class participants in this schema and, as such, can be sorted, filtered, grouped, and so on as shown in Figure 3-10.
Figure 3-10 T
Integrated Search: SharePoint’s search system pays special attention to site columns, and tags created this way are easy to locate with no additional configuration or effort on the part of IT (although an incremental or full-search crawl must run in order for SharePoint to index the tags), as seen in Figure 3-11. Site columns are automatically considered keywords by SharePoint’s search engine. As a result, users can execute a simple search, such as SimpleTextTag:Help, and get a high-fidelity result. This search looks for the site columns (SimpleTextTag in Figure 3-10 and Figure 3-11) that contain the value Help.
63
Page 63
Schwartz
c03.tex
V3 - 12/26/2008
Chapter 3: Content Tagging
Figure 3-11 Despite the advantages, this is still a poor man’s approach. It is — at best — a partial solution. It does not provide many of the features a true Web 2.0 content-tagging solution provides, including tag clouds or tag assistance (e.g., delicious.com’s popularity tags).
Extending Poor Man’s Tagging: Choice Columns With a little more effort, organizations can still leverage core OOB SharePoint features to create a more expansive version of the poor man’s content tagging solution. Instead of using a simple text field for the tag, use a choice column instead. The choice column adds a small amount of complexity. Choice tagging allows the kind of user interface seen in Figure 3-12.
Figure 3-12 Figure 3-12 shows the full set of capabilities of a choice tag. IT (or another responsible party, such as a site administrator) defines the default set of available tags. The figure shows two default tags: competition and conference. When users upload a document, they can pick a value from that list if appropriate. Otherwise, SharePoint allows the user to specify his own value. A choice tag provides the core tagging ability, as well as a limited tag-assist feature. It is limited because the two choices, competition and conference, are hard-coded in the system and can only be changed by a
64
12:05pm
Page 64
Schwartz
c03.tex
V3 - 12/26/2008
12:05pm
Chapter 3: Content Tagging site administrator. This is distinct from a more advanced tagging solution, such as delicious.com, which both dynamically builds a list of recommended tags and allows users to specify their own values. Finally, choice columns offer additional configuration options. Choice columns can be configured to render as a drop-down list instead of a collection of radio buttons (where the user selects one of many option by putting a circle in a dot), as shown in Figure 3-12. However, when configured this way, users may not enter their own value. They are constrained to a set list of choices. This configuration is not useful, for it defeats the purpose of social tagging. Choice columns can also be configured to render as a set of checkboxes. This allows a user to select multiple tags for the same piece of content from a predefined list. This configuration does allow users to enter their own tags, which is consistent with social tagging. However, it causes other problems down the road with sorting and filtering. For this reason, it is normally best to configure the choice field as shown in Figure 3-12.
Summary: OOB Support The out-of-the-box SharePoint experience gives users a taste of tagging, but really embracing Web 2.0 content tagging requires going outside the box. Unfortunately, the tagging process is relatively weak. Out of the box, SharePoint does not provide any method for recommending tags. It will not do so based on established community standards. It will not analyze the document to suggest a tag or tags. SharePoint provides no application-level OOB tool for addressing content rating, but the next section describes free community tools that greatly expand SharePoint’s reach into this area.
CodePlex Developers create applications or utility functions and contribute the results to the community by ‘‘opening’’ the source, normally with a very permissive license. Open-source applications are free to download and install, although some licenses specify how such applications can be used (such as for personal use, or business use as well). Microsoft provides an open-source hosting environment at www.codeplex.com, the hosting environment of choice for many open-source SharePoint projects. It is important to note that these projects are not endorsed or supported by Microsoft, although in many cases, Microsoft employees even directly contribute to the efforts. The community has contributed two popular and effective content tagging solutions live at CodePlex: T
Community Kit for SharePoint — Tag Cloud 2.0 Web Parts: A collection of web parts that extend SharePoint’s out-of-the-box tagging capability with tag clouds and integrated searches.
T
Document Rating: A set of content types and custom fields that together, enable individuals to rate many kinds of SharePoint content.
CodePlex Tag Cloud The Community Kit for SharePoint (CKS) is a CodePlex project that includes a collection of projects offered to the SharePoint community at large by Microsoft employees, Microsoft SharePoint MVPs, and
65
Page 65
Schwartz
c03.tex
V3 - 12/26/2008
Chapter 3: Content Tagging other interested individuals. For content-tagging, CKS offers a subproject named Tag Cloud; as of this writing, version 2.0 is available. This project extends SharePoint’s tagging capability in several key ways: It provides a tag cloud feature that simply does not exist out of the box, and it integrates that tag cloud into searches, closing the tagging circle, as seen in Figure 3-13.
UPLOAD
SEARCH
TAG
Figure 3-13 CKS Tag Cloud is a dependable SharePoint solution and follows best practices for creating SharePoint solutions. As a result, it is very straight-forward to procure and use: T
Download the solution (.wsp) file.
T
Install the solution into SharePoint using stsadm.
T
Deploy the solution to a SharePoint site collection, also using stsadm.
T
Activate the Tag Cloud feature at one or more SharePoint sites.
(Note that these steps are explained in full in the appendix). Once the solution is activated, users add and configure tag cloud web parts to create SharePoint-aware tag clouds that are integrated into searches. CKS Tag Cloud leverages core SharePoint features (site columns, search) to produce an integrated tagging solution based on a tagged document library containing marketing material, as in Figure 3-14. The document library hold nine documents, each tagged as shown (e.g., conference or presentation). Tagging is configured by creating a simple text site column and adding it to the document library. Users upload documents and enter one or more tags to each of the documents. CKS Tag Cloud allows spaces in its tags and also provides flexibility in both the tag delimiter and name of the site column. Administrators can specify a tag delimiter via the web part configuration. By default, CKS Tag Cloud treats a comma as a tag delimiter. Administrators can configure the web part to use a semi-colon (or any other non-space delimiter) instead. System administrators may also specify the name of the site column itself. It is important to note, however, that the most current version does require a text field site column; multi-select choice fields are not currently supported.
66
12:05pm
Page 66
Schwartz
c03.tex
V3 - 12/26/2008
12:05pm
Chapter 3: Content Tagging
Figure 3-14
When properly configured and using default values, the tag cloud web part and tag browser web part work together to provide the functionality shown in Figure 3-15.
Figure 3-15 The screen shows how the CKS tag cloud web part shows the tag cloud (at the top of the screenshot) and its integrated search results in the tag browser web part. The tag cloud web part renders the cloud, appropriately showing relative weight of key words. For example, it is clear from the tag cloud that the document library contains more information about conferences than it does about sales. In addition, the tag cloud web part provides a tool tip showing the actual number of items tagged with that key word. The screenshot above shows that the tag presentation appears three times in the underlying marketing data document library. Finally, the tag cloud web part links to the tag browser web part. Clicking presentation shows a simple listing of each document in the marketing library that is tagged with the word presentation.
67
Page 67
Schwartz
c03.tex
V3 - 12/26/2008
Chapter 3: Content Tagging CKS Tag Cloud meets many of the expectations that we might have of a content-tagging solution, allowing tagging, showing clouds, and integrating searches. However, it falls short on the tagging side of the equation by failing to provide tag assist features. It cannot analyze a document and suggest a tag, or show popular tags as delicious.com does. But it is a significant step forward from the SharePoint’s base features. Finally, as with any CodePlex project, users can download the source code and modify it to suit their business needs, perhaps filling in these and other functionality gaps. See the ‘‘You Try It’’ section below for a detailed walkthrough of using CKS Tag Cloud.
SharePoint Document Rating System Another useful CodePlex project extends SharePoint by providing a content rating feature similar to that shown in Figure 3-15. When installed and properly configured, the rating offers two new columns, as seen in Figure 3-16.
Figure 3-16 Figure 3-16 shows a ratings-enabled document library with unrated content. The two new columns are View Comments and Vote Results. To rate a particular document, users click on the Vote! link. The system responds as shown in Figure 3-17.
Figure 3-17
68
12:05pm
Page 68
Schwartz
c03.tex
V3 - 12/26/2008
12:05pm
Chapter 3: Content Tagging The user rates the document by selecting a value from the drop-down list and entering a comment. Once a particular document has been rated, SharePoint shows a series of stars based on the average rating, as seen in Figure 3-18.
Figure 3-18 Anyone can view the details behind a given rating by clicking the View Comments link. As Figure 3-19 shows, this CodePlex project does not rate content anonymously and, as of the writing of this book, provides no method for doing so.
Figure 3-19 Administrators can view an entire list’s set of ratings, as shown in Figure 3-20.
CodePlex Content Tagging Solutions This chapter describes two CodePlex projects: CKS — Tag Clouds and SharePoint Document Rating System. Together, these projects greatly extend SharePoint’s content tagging capabilities beyond its
69
Page 69
Schwartz
c03.tex
V3 - 12/26/2008
Chapter 3: Content Tagging out-of-the-box capacities. But they fall short in certain areas, although many organizations may choose to accept these limitations (or may never encounter them). As the next sections explain, however, this is not the end of the story. Organizations that wish to more fully implement content tagging can look to the SharePoint platform itself or to third-party vendors.
Figure 3-20
SharePoint as a Technical Platform SharePoint is often described as an application platform rather than a simple application. The word platform is a very important distinction. Developers create applications that operate within a platform. Windows Server 2008 is a platform. Microsoft .NET 3.5 is a platform. Microsoft Word and Microsoft Excel, however, are applications. A platform provides services that developers use to create business functionality. SharePoint is both an application and a platform. It provides many application features out of the box, but it provides even more platform services. Organizations can use those services to extend SharePoint’s reach and to solve new business problems. The previous two CodePlex projects embody this concept. Each project leverages the SharePoint object model and other platform features to create content tagging solutions. The object model allows them to query SharePoint lists and libraries. They create custom columns and custom web parts. With the proper investment in training, any organization can duplicate those efforts (or, better yet, start with those projects, extend them, and then release their contributions to the community).
Vendor Offerings Recognizing the value and trend towards Social Computing, various companies are actively developing and selling solutions in this space. One such vendor is Newsgator (www.newsgator.com). Newsgator provides a comprehensive system called Social Sites that squarely addresses the social computing space, providing advanced content tagging and rating features. Organizations that wish to obtain off-the-shelf products have many options.
70
12:05pm
Page 70
Schwartz c03.tex
V3 - 12/26/2008
12:05pm
Chapter 3: Content Tagging
You Tr y It The next two sections offer you an opportunity to get your hands dirty and apply content-tagging concepts within a SharePoint environment. The first section has you implement the poor man’s solution. The second section builds upon that solution by leveraging the Community Kit for SharePoint Tag Cloud project.
You Try It: Poor Man’s Tagging Follow the steps in this exercise to implement a simple tagging solution in a document library using OOB features. To put the exercise in context, consider this business scenario: Imagine that there is a site administrator for a marketing information site. The site hosts a single document library containing a variety of marketing information. This information takes the forms of Microsoft PowerPoint documents, Microsoft Word Documents, and Microsoft Excel documents. The marketing department produces much of the information, but the company has an active sales force of several hundred individuals, many of whom create their own sales presentations. On occasion, sales representatives forward these documents to the marketing department for re-use or for templating purposes. Because the organization is active and vibrant, the marketing site’s administrator deals with hundreds of marketing-related documents generated by both marketing and sales. Like any good SharePoint implementation, the marketing department worked with the information architecture committee to create a formal taxonomy. However, the site has been online and active for over a year. The organization has been growing more aware of Web 2.0 concepts, such as content tagging and tag clouds, and the marketing group wants to execute a free-form tagging process to augment the formal taxonomy. The following steps walk through the process of creating a site and document library to model the fictitious marketing site’s document library. Then the walkthrough will upload some documents, tag them, create a grouped view, and finally use out-of-the-box SharePoint searches to locate those records. You will then extend this solution by using CKS Tag Cloud to create a searchable tag cloud. You will need full control of the site in order to complete this exercise. If you have less than full control, a system administrator can perform steps 1 through 3, and you can continue from there with contributor access.
1.
Create a sandbox site: In your test environment, create a site based on the blank template named Social Computing.
2.
Create a site column: Go to the Site Actions menu and click Site Settings. In the Galleries list, select Site Columns.
3. 4. 5.
Click Create.
6.
Configure the document library: With the empty document library in view, click Settings and select Document Library Settings.
7. 8. 9.
In the Columns section of the library settings, click the link Add from existing site columns.
Enter the data shown in Table 3-1. Create a document library: In the social computing site, create a new document library, Marketing Material with Simple Tagging.
Locate the SimpleTextTag from the list and click the Add button. Leave Add to default view checked.
71
Page 71
Schwartz c03.tex
V3 - 12/26/2008
Chapter 3: Content Tagging Table 3-1 Field
Instructions
Column Name
SimpleTextTag
The type of information in this column is:
Single line of text
Group
Select ‘‘New Group’’ Enter ‘‘Social Computing’’ as the group name
Description
Tag this document!
Require that this column contains information:
No
10. 11.
Click OK.
12.
Create a Grouped View: Click on the drop-down list next to the View: label and select Create View.
13. 14.
Click the All Documents link under Start from an existing view, at the bottom of the screen.
Upload and Tag Documents: Create a dozen or so empty documents on your work station and upload them. For the purposes of this exercise, it does not matter whether they are all the same type of document (i.e., Microsoft Word documents). It may be helpful, in a conceptual way, to create a mix of empty PowerPoint, Excel, and Word documents. Upload those documents and enter a variety of tags as SharePoint prompts for them. Be sure to use the values Competitive Information, EMEA, and Conference (among others).
Enter the data as shown in Table 3-2, leaving all fields set to their default value unless otherwise specified.
Table 3-2
72
Field
Instructions
View Name:
Grouped by Simple Text Tag
First group by the column:
Scroll down past the Filter section Expand the Group By section Select to group by SimpleTextTag
15. 16.
Scroll down to the bottom of the screen and click OK.
17.
Search: In order for searches to return results, you will have to wait until the next incremental or full-index crawl. Most companies run incremental index crawls fairly regularly (several times hourly). If you do not know the schedule, contact your system administrator.
Check your work: The above instructions should result in a view similar to the document library seen in Figure 3-21.
12:05pm
Page 72
Schwartz c03.tex
V3 - 12/26/2008
12:05pm
Chapter 3: Content Tagging 18.
In the search box on the marketing site, near the upper right-hand corner, enter the following string and press return: SimpleTextTag:EMEA. The documents you tagged with EMEA should display in the results.
Figure 3-21
You Try It: CKS Tag Cloud This next exercise extends your previous effort by adding a Tag Cloud with integrated search, courtesy of Community for SharePoint — Tag Cloud. The business scenario is the much the same, but now the simple tagging approach has taken off, and users are beginning to embrace the concept. Your organization wants to provide a different (and possibly more intuitive) view into all available marketing data. A tag cloud is just what the doctor ordered. In order to complete the exercise, you will need administrator permissions to install CKS Tag Cloud to the site collection hosting your sandbox site. You will need designer permissions for the Social Computing site. Follow these steps to complete the exercise:
1. 2.
Install CKS Tag Cloud (see Appendix A).
3. 4.
Add tag cloud web parts: On the web page zone labeled Left, click the link Add a Web Part.
5. 6.
Go into Edit Mode on the Social Computing page: Expand the site actions menu and select Edit Page.
Scroll through the list of web parts in the Miscellaneous section and select two web parts: Tag Cloud and Tag Browser. Click the Add button at the bottom of the screen. Drag the tag cloud web part above the tag browser web part.
73
Page 73
Schwartz
c03.tex
V3 - 12/26/2008
Chapter 3: Content Tagging At this point, your page should look very similar to Figure 3-22.
Figure 3-22
7. 8.
Configure the tag cloud web part: Click the edit link and, from there, Modify Shared Web Part. Scroll to the bottom of the web part configuration screen and expand the grouping Tagging Setting.
Enter data as shown in Table 3-3.
Table 3-3 Field
Instructions
TagColumnName
SimpleTextTag
TagPageURL
/socialcomputing/Tags.aspx?tags=
9. 10. 11. 12. 13.
74
Click OK, at the bottom of the page. Configure the tag browser web part: Go into Edit Page mode again. This time, modify the tag browser web part. Expand the Tagging Setting section and enter SimpleTextTag into the TagColumnName field. Click OK. Exit edit mode and check your work. Your screen should look very similar to Figure 3-23. Perform a tag cloud search: Click on EMEA. The screen should refresh, showing links to the EMEA marketing materials in the tag browser web part.
12:05pm
Page 74
Schwartz
c03.tex
V3 - 12/26/2008
12:05pm
Chapter 3: Content Tagging
Figure 3-23
You Try It: Summary The two Try It Out exercises walked you through the process of first using OOB SharePoint features to create a poor man’s tagging solution, showing off core platform features such as entering a tag, creating a view in a document library to group by tags, and showing off SharePoint’s integrated search capability. You then extended the solution by introducing CKS Tag Cloud, providing an alternative, and potentially more intuitive, view into the data corpus.
Success Factors for Content Tagging in Organizations Content tagging and rating may seem easy to implement, but doing so is far from a trivial task in the context of an enterprise. As previously discussed, organizations must be aware of and prepared to deal with several potential obstacles. This section describes how an organization can successfully incorporate content tagging into its daily operations.
Walk before You Run The most useful piece of advice is this: Walk before you run. Select a small group of the best users in the organization and whiteboard a phased plan. Discuss the benefits and features that content tagging can bring to the organization. However, be sure to address the obstacles as well (such as risk to author’s pride from bad peer reviews). With this core group, implement the extended poor man’s solution using a choice column within just one or two libraries. Create some grouped views and live within SharePoint’s framework for a week or two. Add additional functionality in increments. Download the Community Kit for SharePoint Tag Cloud project and implement it with the same core group. Encourage the group to collaborate on defining tags and to incorporate tagging and the tag cloud into their daily routine. Before long, the group should have created several dozen or more tags and will be able to generate useful tag clouds with integrated search capabilities. Continue this iterative process, adding content ratings and possibly extending the tagging solution to more document libraries, lists, and perhaps even sites. This process will help the organization understand
75
Page 75
Schwartz
c03.tex
V3 - 12/26/2008
Chapter 3: Content Tagging how well content tagging will be received, as well as the particular problems that must be overcome, and will help you generally help plan (or, if necessary, kill off) the next phases.
Market the Solution Enterprises large and small include decision makers and influential members of the community at all levels within the organization. Some of them may be aware of social computing, but others may not. Regardless, the message must spread and should be done in a manner that makes the social computing initiative attractive and approachable. Nothing is more convincing than a live and functioning solution already implemented within the domain. It allows the content tagging evangelists to speak with the kind of authority that is only possible with direct exposure to tools. Set up demonstrations, listen carefully, and prepare a plan for moving forward.
Build, Buy, or Both Once an enterprise initiative has gained steam, it is time to decide: Build, buy, or both? An organization should avoid researching off-the-shelf applications until it has built up a core of knowledge with which it can evaluate vendors’ offerings. Knowledgeable customers can ask probing questions, allowing vendors to provide more detailed and useful feedback regarding whether their solution will meet the necessary requirements. If the organization’s culture is such that it normally builds solutions in-house, start with the community offerings. The code for open-source offerings is already available and will give the organization a head start in development.
Summar y This chapter introduced and demonstrated tagging through tag clouds and rating content. Wordle.net and delicious.com are perfect examples of tag clouds, and Microsoft’s MSDN site exhibit content-rating and feedback aspects. Out of the box, SharePoint provides excellent support for formal information taxonomies, but not so much support for informal folksonomies — and virtually no support for rating content. But the community, third-party vendors, and the SharePoint platform itself enable organizations to fill the gaps, making SharePoint as functional as any other tool for Web 2.0–style content tagging. Content tagging is a compelling feature for organizations, for it draws employees and other community members into the tagging process — individuals who may otherwise never participate beyond their job requirements. The organization as a whole benefits from the result. Search can produce higher-fidelity results, and tag clouds can provide a useful graphical view into the corpus; content rating can help direct the organization’s documentation efforts to better align with community requirements.
76
12:05pm
Page 76
Schwartz
c03.tex
V3 - 12/26/2008
12:05pm
Chapter 3: Content Tagging Key takeaways about content tagging: T
Content tagging and rating help an organization add flexibility to formal taxonomies that can grow outdated as the organization grows and evolves.
T
The usefulness of content tagging and rating in enterprise portals should convince IT departments that the benefits outweigh the risk of losing control of the enterprise’s taxonomy.
T
Start slowly, using simple, out-of-the-box features and freely available open-source implementations before purchasing commercial software or building new solutions.
The next chapter continues this theme of community participation and knowledge-sharing by describing another important social computing feature: wikis.
77
Page 77
Schwartz
c03.tex
V3 - 12/26/2008
12:05pm
Page 78
Schwartz
c04.tex
V3 - 12/26/2008
12:19pm
Wikis Back when the Internet was like a young child, web pages were written in boring text editors, much like Windows Notepad, by computer scientists and college students, normally sitting in dimly lit rooms with empty pizza boxes surrounding them. Scores of webmasters memorized complex rules, enabling them to create tables of data and wrap images with text, some of which could even blink on and off. Animation! As the Internet got a little older, tools were created to reduce the complexity of HTML web page programming. Names like HomeSite, Dreamweaver, and FrontPage started showing up on bumper stickers and r´esum´es around the world. These tools spawned an entire new profession, the web designer. Wearing black turtlenecks and peering through slightly steamed glasses over the edges of their paper latte cups at the screens of their Apple laptops, web designers used a combination of visual design tools and color-coded HTML text to create tables of data and wrap images with text. The Internet got a little older, went out, and got a job working at a big company. Now that the nametag on its shirt says ‘‘intranet,’’ the same old technologies the Internet had been using for years were starting to show limitations. When people interact with an intranet, they want to be able to participate in the affairs of their company and contribute in a meaningful way. Fortunately, the Internet hadn’t lost any of its edginess when it went out on the town in its spare evenings. It had begun to experiment with this new batch of technologies that had been named ‘‘Web 2.0’’ by those in the know. The hallmark of Web 2.0 technologies is the ease of use and socially connected aspect of computing. Now the Internet had replaced the need for editing tools with web pages, allowing themselves to be updated instantly. And the people rejoiced as they commented on photos of other people’s children on Flickr and messaged back and forth with two thousand of their closest friends on MySpace. Back at work, Web 2.0 technologies are finally starting to show up on the corporate intranet. Corporate users are choosing to save their work in online repositories rather than stuffy network file shares. Corporate executives and human resource departments are broadcasting messages to corporate citizens via corporate blogs rather than email blasts. A new kind of web site was being used to create living and organically growing documents, capable of being edited by anyone who has anything of value to add. What is this new kind of web site? And how can it revolutionize corporate knowledge bases and project planning documentation?
Page 79
Schwartz
c04.tex
V3 - 12/26/2008
Chapter 4: Wikis
Wikis A wiki is a web site that enables users to easily edit the content of the page and easily create new pages. Ward Cunningham first articulated this astonishingly simple concept in 1995. According to Wikipedia, the world’s largest and most successful wiki, Mr. Cunningham was thinking about an old Apple technology called HyperCard while riding on the Hawaii airport transit bus. HyperCard was a desktop document technology that allowed users to easily create document pages and easily edit the pages. The bus Mr. Cunningham was riding on was the Wiki-Wiki bus, which is Hawaiian for ‘‘very quick.’’ With what has proven to be a blinding flash of insight, the concept of the wiki web site was born. The idea behind wikis, that is, linkable data that is both shared and universally editable, is in no way a new concept. In 1945, a man named Vannevar Bush wrote an article for the Atlantic Monthly called ‘‘As We May Think,’’ in which the analog equivalent of hypertext links were described in a theoretical mechanized microfilm device called the memex. Researchers at Carnegie-Mellon University expanded upon this proto-hypertext concept with the ZOG database in 1972. A distributed multi-user system with hypertext connections from one text-based frame to another, the ZOG system produced a few commercial applications, including the 1985 Document Examiner, designed for authors of the Symbolics computer manuals. Document Examiner was the model for Xerox’s NoteCards, an extremely well-documented ‘‘semantic network of notecards connected by typed links’’ (Halasz, Trigg, and Moran, ‘‘Notecards in a Nutshell,’’ 1984). NoteCards directly inspired the creation of HyperCard, which inspired Ward Cunningham to use Internet technologies, such as Netscape Navigator and HyperText Markup Language (HTML), to create the first wiki called WikiWikiWeb, which is still available at http://c2.com/cgi/wiki. Interesting side note: Vannevar Bush served as, among other impressive positions, a professor and dean at MIT, where he worked on a dizzying array of research projects, such as an analog computer called the differential analyser, which could solve equations with up to 18 independent variables. During World War II, Vannevar Bush was the director of the Office of Scientific Research and Development, which created the atom bomb, sonar, radar, proximity fuze, amphibious vehicles, Norden bombsight, penicillin, and sulfa drugs. At the age of 21, one of Dr. Bush’s MIT graduate students, Claude Shannon, wrote what may be the most important master’s thesis of all time, a demonstration of an electrical application of Boolean algebra that could construct and solve any logical numerical relationship. This single paper is credited with simultaneously founding both the digital computer and digital circuit. In his spare time, Dr. Shannon codeveloped a branch game theory with MIT mathematician Ed Thorp, which they used to make a fortune in Las Vegas and on the stock market. Another of Mr. Bush’s graduate students was Frederick Terman, the man credited with the creation of Silicon Valley, a genius radio engineer, and academic advisor to William Hewlett and David Packard. Both men took Dr. Terman’s advice to form a company near Stanford in Palo Alto. Thus Hewlett-Packard and Silicon Valley were born.
Because the concept of a wiki was so simple and immediately popular among computer scientists, dozens of different wiki web site engines were created and made available to the public. Some are open source or otherwise free, such as FlexWiki. Some are premium products backed by corporate developers and support organizations, such as Confluence. MediaWiki, the software that runs Wikipedia, is also available as free software for those who desire the familiar Wikipedia interface for their wiki projects. In fact, Wikipedia lists 15 different programming languages that one can select from when choosing a wiki software platform.
80
12:19pm
Page 80
Schwartz
c04.tex
V3 - 12/26/2008
12:19pm
Chapter 4: Wikis
Wikis Raison d’ˆ etre What is so special about a web page that can be edited quickly and easily? How is something like this really useful in any circumstance? Consider the following (obviously fictitious) scenario. Four busy people are planning to throw a surprise party for a mutual friend. If the group were planning this party the old-fashioned way, dozens of emails would be circulated while guest lists, menus, and locations were finalized. If each of the four people sent five emails containing valuable information, the final plan would be spread across twenty different emails. Bits of information might be missed in the blizzard of email, or perhaps one of the planners might not receive an important email. Tr`es disorganized! Now consider the same situation with a wiki as the central collaboration software rather than email messages. The first person could create a page for the party and list all of the menu items needed and a tentative guest list. The second person could add to the guest list and volunteer to take care of several menu items. The third person could suggest a location and volunteer to take care of some of the rest of the menu items. When the final person looks at the list, he or she should see location suggestions, menu items covered and menu items still needed, as well as a guest list. All in a single, easy-to-read, and easy-to-manage location! Nothing slips through the cracks, and no one misses an important detail due to not being included on email. Tr`es chic! While the previous example is clearly fictitious and will probably never happen in real life (imagine . . . a surprise party!), consider a slightly more business-focused use of wikis. Imagine a software company is creating a new product in collaboration with some of its customers. The software company would like to ask each of the customers to place his or her requirements for the new product into a single location where they can be ranked according to the need and feasibility. Once the list of requirements was received and processed, the details and use cases for each requirement can be explicitly spelled out with a customer interaction. A software company could rank each requirement and allow a period of customer comments on the ranking and the requirements themselves. As the software is developed, the requirements can be updated with descriptions of functional software operations. Slowly, the requirements document could evolve into the actual product manual. Customers could enter their comments about the functionality right on the pages of the software manual. As the software is updated through regular maintenance and new features, the manual is updated. No update documents are stapled on as appendices. The software engineers are happy because they only have to write about what they’ve changed in the documentation without having to manage entire design documents that become stale the moment the code diverges from the document. The project managers and salespeople are happy because their documents are always up-to-date and accurate. The customers are happy because, if they find problems with a feature and the wiki manual isn’t accurate, they can add comments directly to the manual or perhaps even read comments left by other customers who might be facing the same problem. Given the sample scenarios above, it’s easy to agree that a properly used wiki can be a powerful tool in a person’s personal and professional life. Living documents can be extremely powerful collaboration tools, especially when combined with the Web’s ability to grant nearly universal access. Wikis are certainly a powerful concept, but the secret is in the sauce. It’s time to look at the features that wiki implementations offer.
Common Wiki Features The most basic wiki implementation will include a minimum set of functionality, notably the ability for readers to edit pages and save those changes for future review and edit by other readers. Typically, the editing experience is built into a web page itself, though each wiki software implementation does things slightly differently. Take a look at implementations that several different open source wikis offer, as far as entering and modifying text is concerned.
81
Page 81
Schwartz
c04.tex
V3 - 12/26/2008
Chapter 4: Wikis Reading and Editing Pages First, take a look MediaWiki, the software that powers the ever-popular Wikipedia. Figure 4-1 is a photo of the Wikipedia page discussing French fried potatoes.
Figure 4-1 Notice the Edit This Page tab at the top. Clicking that tab will open the Edit page, seen in Figure 4-2. Featured prominently on the Edit page is the editable content, which is primarily easy-to-understand text and some special markers called tokens. Tokens will be discussed in-depth later in this chapter. There is also a Save Page button that will publish any changes out to the general audience. MediaWiki also offers the ability to view the history of changes on the page, as seen in Figure 4-3. This helpful feature allows readers to keep an eye on how an article has changed over time and includes the ability to undo revisions that might be in error. Finally, MediaWiki offers the ability to hold a discussion about the content on the page. As seen in Figure 4-4, these discussions are open comment boards that can help refine the material on the page without changing that content directly. MediaWiki, naturally, offers a significant set of additional features that are specific to the MediaWiki software itself and are a topic for a different book.
82
12:19pm
Page 82
Schwartz
c04.tex
V3 - 12/26/2008
12:19pm
Chapter 4: Wikis
Figure 4-2 Having seen how the MediaWiki implementation handles the basic requirements of the wiki concept, take a look at a different implementation. FlexWiki accomplishes the same goals in a slightly different manner. As in Figure 4-5, the Edit button is over on the left side of the wiki page. At the bottom of the left menu is where the history of the page has been incorporated into the page itself rather than being isolated on a different page. Clicking the Edit link will open the Edit page, as seen in Figure 4-6, which bears a resemblance to the plain text with tokens interface seen on the MediaWiki Edit page. Again, the presence of a Save button enables changes to be published out to the general public. As far as discussions about the content, the FlexWiki implementation has chosen to keep comments on the actual article page rather than isolated on a different page. Figure 4-7 offers an example of in-line comments and discussion on a FlexWiki page.
Creating Pages The previous section has covered four of the critical features of a wiki: Read page, Edit page, change history, and content discussion. It’s time to add the next major feature to the feature list: Create page. For a wiki to be truly functional, it must allow users to easily add new pages for related content. Both
83
Page 83
Schwartz
c04.tex
V3 - 12/26/2008
Chapter 4: Wikis MediaWiki and FlexWiki use tokens or special symbols to indicate that a word should be a link to a page. Tokens are discussed further in the next section of this chapter. If the page does not already exist, a new page is created with placeholder content. At this point, the user who created the link or any other user is able to put content onto the new page. Figure 4-8 shows the MediaWiki token syntax, that is, double square brackets at the bottom of the page, that is required to create a link to a new page. Figure 4-9 shows what that token looks like when viewed on a page in Read mode.
Figure 4-3 Figures 4-10 and 4-11 demonstrate how easy it is to create a new page with FlexWiki, again using the new page syntax (CamelCase words at the top of the page).
Tokens The last major feature of wikis worth discussing across implementations is the concept of tokens. Tokens are special markup characters that tell the wiki’s software engine how to display or treat the content. A simple example of HTML markup can be seen in Figure 4-12. In a manner very similar to other popular markup languages, such as HTML and XML, wiki tokens control the behavior of the text. Table 4-1 is part of the Wikipedia cheat sheet describing common MediaWiki tokens and how they are used.
84
12:19pm
Page 84
Schwartz
c04.tex
V3 - 12/26/2008
12:19pm
Chapter 4: Wikis Table 4-1 Description
You Type
You Get
Italicize text
‘‘italic’’
italic
Bold text
‘‘‘bold’’’
bold
Bold and italic
‘‘‘‘‘bold & italic’’’’’
bold and italic
Internal link
[[Name of page]] [[Name of page|displayed text]]
Name of page displayed text
External link
[http://www.example.org] [http://www.example.org displayed text] http://www.example.org
[1] displayed text
Anchor/Bookmark
{{Text used in TOC}}
Not rendered but used in internal links or TOC
Headings
==Heading 1== ===Heading 2===
Heading 1 Heading 2
Sign a post
∼∼∼∼
Your username 01:46 9 April 2008 (UTC)
FlexWiki has a similar set of tokens to perform the same actions, although there are a few differences, as seen in Table 4-2. Tokens enable simple, markup-driven text to become extremely readable web pages, but, as seen with these two reference tables and the screenshots of the Edit pages from both MediaWiki and FlexWiki, working with them brings back memories of those computer scientists and college students surrounded by pizza boxes.
Pros and Cons of Wikis This is an excellent time to discuss the strengths and weaknesses of wikis. Consider the following list in Table 4-3 of pros and cons: Sure, wikis have some potential pitfalls, and each snowflake is different, but it’s such a great concept that you surely have the religion by now. Repeat in unison: We must all collaborate together. Share a single view of the truth; hide it not in sneaky emails. Lo, I have seen the light, and I shall ‘‘wiki, wiki-wiki,’’ a quote from the holy Book of Wiki.
85
Page 85
Schwartz
c04.tex
V3 - 12/26/2008
Chapter 4: Wikis Table 4-2 Description
You Type
You Get
Italicize text
‘‘italic’’ _italic_
italic italic
Bold text
‘‘‘bold’’’ *bold*
bold bold
Bold and italic
_*bold & italic*_ ‘‘‘‘‘bold & italic’’’’’
bold and italic bold and italic
Internal link
NameOfPage (Pascal-cased words) ‘‘displayed text’’:DisplayedText
NameOfPage displayed text
External link
[http://www.example.org] http://www.example.org
http://www.example.com http://www.example.org
Anchor/Bookmark
Any WikiPageProperty is an anchor Ex: Summary: this page is about DogFood
Not rendered but used in internal links or TOC
Headings
!Heading 1 !!Heading 2
Heading 1 Heading 2
Sign a post
N/A
N/A
Table 4-3
86
Pros
Cons
Highly available collaborative environment
You can’t argue with that!
Low barrier of entry for simple content contribution and edit
Each wiki software implementation uses different tokens, so learning curves apply for all but plain text input.
Basic create, read, update, and delete operations exist in every wiki implementation.
Every implementation is different with different features beyond the six basic features discussed above. It’s likely that no single available wiki software will meet all needs for all people.
12:19pm
Page 86
Schwartz
c04.tex
V3 - 12/26/2008
12:19pm
Chapter 4: Wikis
Figure 4-4
Now comes the question that, at this point, must be in the minds of every reader. This is a book about SharePoint, yet the discussion thus far has only talked about open source wikis. How does this relate back to SharePoint? Excellent question!
Wikis in SharePoint Microsoft’s SharePoint Technologies ships in three major flavors: Windows SharePoint Services (WSS), Office SharePoint Server (OSS or MOSS), and the always tasty Extra Creamy (EC) flavor. Of course, each [real] flavor comes with its own unique price point. WSS is going to be the most interesting to the vast majority of readers because it is 100 percent free. Well, the company does have to own a license for Windows Server 2003 or Windows Server 2008, but, frankly, who doesn’t have a few dozen of those just lying around these days? WSS is free and comes with wiki capabilities built right in. At that price, how can anything go wrong? It’s time for a features tour to see how WSS stacks up against MediaWiki and FlexWiki. WSS and MOSS have both established themselves as the web-based Swiss Army knives of the IT department. Built into both products is the ability to create a Wiki site based on the selection of the proper template, as seen in Figure 4-13.
87
Page 87
Schwartz
c04.tex
V3 - 12/26/2008
Chapter 4: Wikis
Figure 4-5
Once the wiki site has been created, the organization is basically ready to begin the process of organically growing the site with all of that knowledge previously cooped up in emails and notepads. Figure 4-14 shows the newly created wiki site, complete with that new car smell. Notice the tabs at the top right of the content area that open to the Edit page and History screens. As seen in Figure 4-15, editing a wiki page in SharePoint does not require knowledge of special wiki tokens to apply formatting to the content, with one single exception. New pages can be created with a token just like in FlexWiki and MediaWiki installations. SharePoint tokens will be discussed in slightly more depth a little bit later in this chapter. Take a look at the History tab to see what has been changing. As can be seen in Figure 4-16, the page history shows what has changed on the page versus the previous version and grants you the ability to roll back to a previous version if you’re not a fan of the changes. Out of the box, that is, ‘‘by default’’ for those who don’t speak the IT acronym language that includes terms such as OOB, SharePoint doesn’t use any tokens to mark up the wiki content for formatting purposes. However, there is an exception to every rule, including this one. SharePoint does offer a single set of tokens for creating new wiki pages. The following instructions are taken directly from the How to use this wiki site instructions offered in every SharePoint wiki site.
88
12:19pm
Page 88
Schwartz
c04.tex
V3 - 12/26/2008
12:19pm
Chapter 4: Wikis
Figure 4-6 You can link to another page in this wiki site by enclosing the name of the page in double brackets on the Edit form. For example, type [[Home]] to create a link to the page named Home and [[How to use this wiki site]] to create a link to this page. To create a link to a page and have the link display different text than the page name, type a pipe character (|) after the page name, and then type the display text. For example, type [[Home|Home page]] to create the link labeled Home page that points to the page named Home. At this point, the chapter has presented an overview of SharePoint functionality, so it is time to judge the features on their merits and determine a winner. Table 4-4 contains a side-by-side comparison of the WSS SharePoint wiki, MediaWiki, and FlexWiki. As Table 4-5 shows, it seems like a three way tie, and it may truly be a subjective decision based on personal preferences or comfort with different types of software architectures. For example, open source software gives a look into how the product runs by offering access to source code, but support and release schedules are typically dodgy, if existent at all. Of course, the features covered so far are not the only features each wiki software implementation offers. So far, this has just been a review of the six core features a wiki software engine must implement. The
89
Page 89
Schwartz
c04.tex
V3 - 12/26/2008
Chapter 4: Wikis
Figure 4-7 real decision will be based on other considerations. As this is a SharePoint book, there won’t be any deep dives into MediaWiki or FlexWiki functionality. Now it’s time to cover some of the other features that the SharePoint wiki platform offers. For the purpose of this treatise, the fact that SharePoint can do other things such as enterprise content management, web publishing, enterprise search, business intelligence, Microsoft Office integration, and more will be ignored. While those are certainly impressive features in any single platform, they are discussed in other books and are completely outside the scope of a discussion about wikis and social computing.
Making SharePoint Wikis Work for You! Unlike the other wiki software implementations, SharePoint provides an excellent administrative view of the wiki pages. Wiki pages are treated just like any other Web Part page in SharePoint in that they are considered .ASPX pages in a page library. While pages cannot be sorted into folders, it is possible to create custom views of the Wiki Page Library. In fact, it is possible to add metadata (columns) to the Wiki Page Library and Web Parts to wiki pages! This is exciting stuff! Consider the following scenario, which will help crystallize the potential of this functionality. Sheila, a SharePoint administrator, has been tasked with creating a new knowledge base for the company. She needs to be able to capture a wide variety of information across multiple different departments.
90
12:19pm
Page 90
Schwartz
c04.tex
V3 - 12/26/2008
12:19pm
Chapter 4: Wikis
Figure 4-8
The wide array of knowledge that will be captured is far too vast for any one person to maintain. Each individual participant must be considered a source of knowledge that should be added to the knowledge base. Sheila loves the idea of a wiki, but how can some level of organization be imparted to a generally unstructured storage mechanism? Users will want to know which department a particular knowledge base article pertains to. Sheila might need to be able to tie a knowledge base article to a specific product or project, so she’ll have to consider that when planning the knowledge base. She’ll want some flexibility when it comes to presenting the data in the knowledge base, and she’ll want to be able to bring some data from other areas of the portal into the knowledge base articles. Luckily for Sheila, SharePoint wikis can handle all of these requirements. Rather than simply describe how cool this can be, it’s time to dive in and create a SharePoint site from the ground up and take advantage of the wiki functionality to meet the requirements of the above scenario.
You Try It The first step in implementing the knowledge base is deciding which site template to start with. There are least two choices when considering a WSS installation. The first choice is obviously using the wiki site template to create a new site. What’s nice about selecting this template is that everything is set up from the word go. The site’s default homepage is the home wiki page, the Wiki Page Library already exists,
91
Page 91
Schwartz c04.tex
V3 - 12/26/2008
Chapter 4: Wikis and the site navigation quick menu already has links to the wiki’s instruction pages. Another choice is to use a blank site, allowing for explicit design of everything to exact specifications. Because this is going to be more than a trivial walkthrough, skip the obvious wiki site template, and use the blank site instead.
Figure 4-9 This walkthrough is going to take a leap of faith. Assume your SharePoint installation already has a top-level site already created and everything to be done from this point forward is done to a subsite. The example company’s MOSS main intranet site is installed at http://sample.company.com, and the plan is to install the knowledge base site at http://sample.company.com/KB. The following steps walk through the creation of the knowledge base site:
1.
Create the new knowledge base site using the blank site template. Navigate to the SharePoint site under which the knowledge base site will be created. In the case of the example site, the proper user to navigate to is http://sample.company.com. Use the Site Actions menu, and select Create. In the menu of creatable items, select Sites and Workspaces. This will bring up the New SharePoint Site page, where the name and site template can be specified. The example site has been titled Knowledge Base and is based on the blank site template, as can be seen in Figure 4-17.
2. 92
Create the Wiki Page Library.
12:19pm
Page 92
Schwartz c04.tex
V3 - 12/26/2008
12:19pm
Chapter 4: Wikis
Figure 4-10 Now that the blank site has been created, give it the ability to serve and store wiki pages by creating a Wiki Page Library. Use the Site Actions menu, and select Create to bring up the list of options for storing data. In the Libraries column, select Wiki Page Library, as seen in Figure 4-18. Name the Wiki Page Library KB Articles. Click the Create button to actually create the Wiki Page Library and be taken to the new library’s homepage, as seen in Figure 4-19.
3.
Edit the wiki page. The site now has a Wiki Page Library called KB Articles. There is a homepage that contains a bunch of boilerplate intro to wikis text. A quick bit of work with the wiki page’s editor can turn the default homepage into something a little more relevant to the company. Click the Edit link on the page, and delete all of that boilerplate text. Feel free to start typing away using the WYSIWYG editor, adding hyperlinks and images along the way. As can be seen in Figure 4-20, a simple list of the departments of the company is a jumping-off point. It is worth noting that, if the wiki page editor is feeling a little more obsessive-compulsive, he or she can switch from rich text mode to HTML source mode by clicking the Edit HTML Source button, the rightmost button on the top row of the toolbar. This enables precise control over the formatting of a page. Pop open a favorite HTML designer tool, such as Microsoft’s SharePoint Designer 2007, and create something pretty. It is important to note
93
Page 93
Schwartz c04.tex
V3 - 12/26/2008
Chapter 4: Wikis that the wiki editor will strip certain HTML elements, such as the tag, out of the pasted HTML code as a security measure to prevent bad things from happening.
Figure 4-11
4.
Create and edit wiki pages. There are two ways to create wiki pages. The first way is to edit an existing page and use the square bracket token to create a link to a topic that doesn’t exist yet. That link will be underlined with a dotted line until someone clicks the link and creates the page for that topic. The second way is to navigate directly to the Wiki Pages Library and click the New button to create a new page. The difference is that the second method will create the page, but nothing is going to link to it. This can be dangerous as there is currently no automated way to see which pages have been orphaned or which pages have no links pointing to them. To create a new wiki page, place the homepage back into Edit mode and place double square brackets around each of the departments. When creating links, it’s easy to give pages short names but spell out a longer name or different name for display. As can be seen in Figure 4-21, the Marketing and Advertising link will really take the users to a page named Mkting, and the Information Technology link goes to the IT page. This is possible thanks to the pipe character in the link, as was described by the How to Use This Wiki Library page, which is added by default to every Wiki Page Library. Figure 4-21 shows the new homepage both in Edit mode and Browse mode, proving via dotted lines that none of the company departments have created its wiki pages yet.
94
12:19pm
Page 94
Schwartz c04.tex
V3 - 12/26/2008
12:19pm
Chapter 4: Wikis
Figure 4-12
Click the first link, Executive Management in this case. Then you’ll be taken to a blank Edit form for a new wiki page. Notice that the name of the page has already been filled in to match the link that has been clicked. Also notice that, below the rich text input box, there is a helpful reminder about how to create a link to another wiki page. Enter some text appropriate for an Executive Management wiki page, and click the Create button. Edit the page again, and add an image to the page. Unfortunately, the OOB experience for adding images to wiki pages is not very good. The image must be preloaded into an image library somewhere on the portal, and it’s helpful to copy and paste the URL into the pop-up window to prevent having to type it in from memory. Edit the page one more time, and edit the HTML source for the page. Put the following HTML snippet (labeled Table 4-6) at the bottom of the page to create a distinctively colored table with a link back to the homepage. This will impart a sense of navigation and hierarchy inside the wiki. Figure 4-22 gives a split view of both the Browse and Edit mode views of the page.
5.
View a page’s change history. Since the current page is a page with several different edits, now is a good time to view the history of the page. Click the History link on the top right to see a view similar to Figure 4-23, a view of the page with a history of page edits in the left column.
95
Page 95
Schwartz c04.tex
V3 - 12/26/2008
Chapter 4: Wikis
Figure 4-13 Clicking the page versions will show the page at each version. The toolbar at the top of the page allows a user to delete old versions and restore a previous version. Restore is an extremely useful tool as it lets the user roll back to an older version without erasing any of the changes. To prove the point, select the first version of the page and click the Restore this version button. The Browse mode page will load with the original content, minus the image and navigation table. Click the History link one more time. Notice that the restore function actually created a new version of the page. In the example case, using the Restore button to roll back to the first version of the page created a new version, Version 4. It was a simple task to restore Version 3 and recover all of the recent changes, including the image and navigation table. Another button in the toolbar, Version History, displays in a single screen all of the versions of the page, complete with formatting and everything. Figure 4-24 demonstrates this fantastic functionality, allowing you to see what change and which user made the change in a single screen. This page, complete with the ability to restore any version of the page, gives you some significant power when viewing and recovering page versions. It is worth noting that, by default, wikis will keep track of every version of the page, from the first line of text up through potentially hundreds of revisions. Ordinarily, this is not a problem, but some organizations want to keep a lid on the number of historical revisions they are keeping around to prevent the amount of space each wiki takes in the SharePoint database
96
12:19pm
Page 96
Schwartz c04.tex
V3 - 12/26/2008
12:19pm
Chapter 4: Wikis from growing too large. It is possible to specify a limited number of historical versions per wiki page inside of the Wiki Page Library’s Document Library Versioning Settings.
Figure 4-14
6.
Add metadata to wiki pages for sorting and filtering. In the wiki page editing sample above, you created an HTML table to add a link back to the wiki’s homepage. However, wouldn’t it be easier if users were able to tag the content with the appropriate department homepage by simply selecting from a list when they were editing the page contents? This would also help improve search results when users searched the knowledge base for answers. Fortunately, the sample portal already contains a useful list of departmental information, as seen in Figure 4-25. A lookup to this list can be added to the Wiki Page Library, giving each wiki page more contextual information. Navigate to the homepage for the wiki library, and click the name of the wiki library (KB Articles) in the breadcrumbs at the top of the page. This opens the Wiki Page Library’s All Pages view. In the Settings drop-down menu, select the Create Column option, as seen in Figure 4-26. Name your new column Department, and set the column type to Lookup. In the Additional Column Settings section, set the Get information from drop-down list to the Departments
97
Page 97
Schwartz c04.tex
V3 - 12/26/2008
Chapter 4: Wikis list, and set the In this column: to the Title (linked to item) value. Check the box to allow multiple values, as you can see in Figure 4-27. Then click OK.
Figure 4-15 The result of this new column will be that, when a department is selected, a reader can click the department name and view the details about that department stored in the Departments list. Now is a good time to add another column or two. The second column should be a Choice column named Article Type with the choices being General, Problem and Resolution, and Procedure. Exposing these choices as radio buttons seems like a good interface for this sort of thing. The last new column should be a single line of text called Tags. The purpose for this column is to let users tag content with whatever descriptive words they choose. This is essentially the same as the poor man’s tagging implementation in chapter 3. Imagine the power granted to end users if the rest of the tagging advice in chapter 3 was combined with a wiki implementation! For now, however, users will tag content by simply typing in whatever keywords they want. At this point, three new columns have been added to the KB Articles Wiki Page Library. Open the Finance page (or any department page) to see what has been done to the content
98
12:19pm
Page 98
Schwartz c04.tex
V3 - 12/26/2008
12:19pm
Chapter 4: Wikis itself. As can be seen in Figure 4-28, the empty metadata attributes are reflected as a blue area on the wiki page.
Figure 4-16 Click the Edit button, and fill out the appropriate attributes. If the steps up to this point have followed correctly, your screen should agree with Figure 4-29. Users now have the ability to assign values to the metadata attributes at the bottom of the page. Make some selections, and click OK to be taken back to the Browse mode, a screen similar to Figure 4-30. Notice that the Department value, Finance, is a link that can be clicked to open the details of the Finance department stored in the Departments list.
7.
Add views to filter pages. Imagine the wiki has now been in use for a little while. People are putting in new content all the time, and the company is suddenly faced with the need to filter the wiki pages in the knowledge base. This is where the metadata added in the last step comes in extremely handy. Navigate to the Wiki Page Library document’s view, as seen in Figure 4-31. Each column, as seen in Figure 4-32, can be used to sort or filter the contents of the library, making it easier to find what users are looking for.
99
Page 99
Schwartz c04.tex
V3 - 12/26/2008
Chapter 4: Wikis Table 4-4 Feature
MediaWiki
FlexWiki
WSS
Winner
Read Page
Everyone can display a wiki page.
Yeah, everyone can display a wiki page.
Yeah, everyone . . . What FlexWiki said.
TIE. Who can’t display a readable* web page (* note that we are not talking about themes or skins here).
Edit Page
You can edit in a small text box in a screen surrounded by instructions. Buttons above the text box help users insert the correct token.
You have a gigantic Edit window with help available in a separate window. There are no helpful buttons to assist with tokens.
No tokens are needed!* True WYSIWYG editing makes it easy for people familiar with Word (* not including the create page token).
WSS. WYSIWYG editing is a snap. There is no learning curve at all.
History of Page
You have a separate History page with feature-rich UI, allowing many change detection options.
History is displayed on the page itself for easy access.
A separate History page with easy interface shows differences between the selected version and the version just before the selected version.
FLEXWIKI. This may be a subjective judgment, but having the change log visible on the content page is helpful.
Comment on Page
This option provides a discussion tab to separate the content from the discussion of the content.
Comments must be made on the page with the content.
What FlexWiki said.
MEDIAWIKI. Comments about the content are not content and should be kept separate.
Table 4-5 Wiki Platform
Architecture
Cost
MediaWiki
PHP and MySQL Database Open Source
Free to download
FlexWiki
ASP.Net (C#) and SQL Server Open Source
Free to download
WSS
ASP.Net and WSS and SQL Server NOT Open Source
Free to download
100
12:19pm
Page 100
Schwartz c04.tex
V3 - 12/26/2008
12:19pm
Chapter 4: Wikis
Figure 4-17 However, sorting and filtering in this manner is a temporary action. It is not shared between users, and it is not even saved between sessions for the same user. Customized views, on the other hand, are a more powerful way to permanently sort and filter the contents of the Wiki Page Library. In the Settings menu is a Create View action. Clicking that opens the Create View screen, allowing you to choose a view format. Standard views are normally the most appropriate views for Wiki Page Library contents. The Edit View page offers the ability to: T
Name the view
T
Select the columns that will be displayed and in which order
T
Specify a sort order for wiki pages based on the data contained in any column
T
Filter the wiki pages based on the data in any number of columns
T
Group the pages
T
Total numerical metadata values
T
Count non-numerical values and more
101
Page 101
Schwartz c04.tex
Chapter 4: Wikis
Figure 4-18
Figure 4-19
102
V3 - 12/26/2008
12:19pm
Page 102
Schwartz c04.tex
V3 - 12/26/2008
12:19pm
Chapter 4: Wikis
Figure 4-20
Figure 4-21
103
Page 103
Schwartz c04.tex
Chapter 4: Wikis Table 4-6
Figure 4-22
104
V3 - 12/26/2008
12:19pm
Page 104
Schwartz c04.tex
V3 - 12/26/2008
12:19pm
Chapter 4: Wikis
Figure 4-23 Figure 4-33 represents a view called Homepages, which filters the wiki pages in the sample site, showing only those that have been tagged with the word homepage somewhere in the Tags column. Click OK to save changes and return to the Wiki Page Library, filtered by the new view. Thinking about how users might actually want to sort their information, it makes sense to create a few more views. Create one called ArticleTypes, which doesn’t actually filter the data but groups by the Article Type column instead and counts the number of wiki pages in each group. Another useful view is a Problems view, which filters by the Article Type column and shows only those wiki pages where the Article Type has been set to Problem and Resolution. Create a Procedures view that copies the settings of the Problems view and changes the Article Type filter to require the value to equal Procedure. Each of these views now has a unique URL that can be added to navigation links, such as on the site’s quick launch. These views can also be selected in the yellow View drop-down in the top right of the Wiki Page Library whenever a user is looking at the contents of the Wiki Page Library itself.
8.
Create a dashboard on the site’s homepage. With all these wiki pages, navigating to the right one might be a headache for users. Why not create a sort of a dashboard for them on the homepage, using some of the views that have just been created? Navigate to the homepage of the Knowledge Base site. Currently,
105
Page 105
Schwartz c04.tex
V3 - 12/26/2008
Chapter 4: Wikis it’s a blank site with only the Windows SharePoint Services logo on the page. Use the Site Actions menu to edit the page. Click the Add a Web Part button in the left Web Part zone. In the Lists and Libraries section, put a check next to KB Articles, and click Add. This will add a summary view of all wiki pages to the site’s homepage. In the KB Articles ListView Web Part, click the Edit drop-down, and select Modify Shared Web Part. Change the Selected View option from Current view to ArticleTypes, and click Apply. In the Appearance Group of Properties, change the title to Knowledge Base Articles by Type, and click Apply.
Figure 4-24 Add another view of the knowledge base articles to the right column by adding another KB Articles ListView Web Part. Once the new KB Articles Web Part has been added, click the Edit menu, and select Modify Shared Web Part. Set the Selected View to homepages. In the Appearance group, set the title to Department Wiki Homepages. Click Apply. Notice that there seems to be way too many unnecessary columns on the screen in this Web Part. Never fear, underneath the Selected View drop-down is an Edit the current view link, allowing changes to the ListView Web Part’s view settings, including the addition or removal of columns without affecting the actual Wiki Page Library view. Go ahead and edit the view. Remove all of the columns except the Name column. On this page, click OK to return to the site’s homepage. It’s looking pretty good, but it isn’t done yet. The site image should be on the top of the column, and that full toolbar looks pretty goofy on top of a list of names. Edit the page again, and reorder the Web Parts by dragging the site image back to the top. Modify the Department Wiki Homepages ListView Web Part, and set the Toolbar Type to No Toolbar, as seen in Figure 4-34.
106
12:19pm
Page 106
Schwartz c04.tex
V3 - 12/26/2008
12:19pm
Chapter 4: Wikis
Figure 4-25
Figure 4-26
107
Page 107
Schwartz c04.tex
V3 - 12/26/2008
Chapter 4: Wikis Click OK. The site’s homepage should now be a thing of functional beauty, replete with links into the Wiki Page Library for easy access to knowledge base articles. The best part is that these Web Parts will keep up with the wiki, changing automatically to reflect the organically growing wiki content.
Figure 4-27
9.
Add a web part to a page. The wiki is really starting to take shape now. There are more than a dozen pages, each identified by searchable and filterable metadata. Users are probably really beginning to buy into the concept of easily editable web pages as a mechanism for communicating with the rest of the company. One of the folks in the marketing department has a question. How can I add links to my important documents into the wiki pages without having to copy and paste a link to each individual document? ‘‘It’s simple!’’ you tell him. Just add a ListView Web Part to the wiki page. The blank stare tells you that Greek (or Geek) has just come out of your mouth. It’s time to open up Internet Explorer and show off those l33t SharePoint skillz. (That’s hacker for ‘‘Your kung fu is strong.’’)
108
12:19pm
Page 108
Schwartz c04.tex
V3 - 12/26/2008
12:19pm
Chapter 4: Wikis
Figure 4-28
Open the Knowledge Base site’s homepage, and click the Mkting link in the Department Wiki Homepages list. See, that dashboard created in step eight really is useful! Once the Marketing page loads up, put the page into Edit mode by clicking Site Actions and then Edit Page. Do not click the Edit button next to the History button. That’s a totally different kind of Edit Page function. When done correctly, the page should look like Figure 4-35. Notice the Web Part zone at the bottom of the page. Click the Add a Web Part button, and put a check next to the Marketing department’s document library. Select the view and chrome type that fits the requirements best. The page should look something like Figure 4-36. Now the Marketing and Advertising department has a really functional wiki page, complete with dynamic access to the Marketing document library. New documents can even be created right from the wiki page! How l33t is that? Very l33t, my friend. Very l33t indeed!
10.
Subscribe to changes.
109
Page 109
Schwartz c04.tex
V3 - 12/26/2008
Chapter 4: Wikis
Figure 4-29 The wiki is really beginning to take off. Users are all over it like white on rice. Now the most frequent complaint heard is that no one is sure when changes have been made to the wiki. This is a book on social computing, right? Where is the social part? How can the system notify users of changes to the wiki that other users make? Glad you asked! SharePoint 2007 offers two ways to keep up with changes in wikis: alerts and RSS. Alerts are an active method of notifying users of changes. An alert is an email message that SharePoint sends proactively to a user’s inbox. Figure 4-37 shows an example alert message. Users can subscribe to alerts by selecting Alert Me under the Wiki Page Library’s Actions menu. Alerts can be configured to only send based on the change type:
110
T
All changes
T
Only when new items are added
T
Only when existing items are modified
12:19pm
Page 110
Schwartz c04.tex
V3 - 12/26/2008
12:19pm
Chapter 4: Wikis T
Only when items are deleted
T
Only when a web discussion gets an update
Figure 4-30 Each of these change type settings is mutually exclusive, so, if the situation requires a combination of these settings, you will need to create multiple alerts. The alert can be set to send based on the person making the change using one of the following mutually exclusive options: T
Anything changes
T
Someone else changes a wiki page
T
Someone else changes a wiki page created by me
T
Someone else changes a wiki page last modified by me
T
Someone changes an item that appears in the following view [pick a view of the Wiki Page Library]
111
Page 111
Schwartz c04.tex
V3 - 12/26/2008
Chapter 4: Wikis
Figure 4-31 The frequency of alerts can also be controlled, for example, sending immediately, sending daily summaries, or sending weekly summaries. It is also worth noting that administrators and other privileged portal users can actually create alerts on behalf of other users. On the other hand, an alternative to a deluge of email alerts is the RSS feature of the Wiki Page Library. The RSS feed is available under the Wiki Page Library’s Actions menu. RSS is such a significant force inside of SharePoint 2007 that there is an entire chapter devoted to it (chapter 6), so the last thing said about RSS in this chapter will be that Figure 4-38 is a screenshot of Outlook subscribed to the RSS feed and Internet Explorer 7 subscribed to the Knowledge Base RSS feed.
11.
Secure executive pages. As is typical in IT projects, the last thing we’re going to talk about in this walkthrough is security. Fortunately, there really is not a lot to say. SharePoint Wiki Page Libraries support exactly the same kind of security trimming as every other SharePoint object. That is to say, if a user is denied permission to read or interact with an object, that user doesn’t even see that the object exists. Of course, for every rule, there is an exception. If a user navigates to a
112
12:19pm
Page 112
Schwartz c04.tex
V3 - 12/26/2008
12:19pm
Chapter 4: Wikis wiki page that has a link to a secured page, the user will still see and be able to click that link. Instead of seeing the page, he or she will get an Access Denied error message.
Figure 4-32 To see this in action, sign into the portal as an administrative user. Navigate to the Wiki Page Library, and manage the permissions of the Executive Management wiki page. Remove the rights for all visitor- and reader-level permissions. Now sign onto the portal as a visitor with only reader permissions. When the visitor user looks at the dashboard on the site’s homepage, the Executive Management links will have disappeared from the ListView Web Parts, and any totals will be appropriately adjusted downward. However, if the visitor user navigates to the KB Article’s homepage, he or she will see the original Table of Contents style listing that was set up back in step four (Figure 4-20). Have the visitor user click the Executive Management link to see the Access Denied error page.
Success Factors for Wikis in Organizations Having worked through a sample implementation of SharePoint’s wiki technology, the potential of this particular set of functionality should start to sound impressive. However, simply exposing the power
113
Page 113
Schwartz c04.tex
V3 - 12/26/2008
Chapter 4: Wikis of SharePoint wikis to an organization’s employees will not guarantee the success of the wiki. Several things must be in place before a wiki will be successful, regardless of technology.
Figure 4-33 The first requirement is that the wiki project will need at least two champions. The wiki needs more than one user who will be committed to putting content in the wiki and telling other people in the organization to use the wiki. Champions do not have to be managers or executives, but there will need to be more than one. Else, the wiki will end up as one individual’s journal. That’s not to say that an individual user’s journal isn’t valuable, but chapter 5 looks at blogs that are more suited to that purpose. In a wiki, two or
114
12:19pm
Page 114
Schwartz c04.tex
V3 - 12/26/2008
12:19pm
Chapter 4: Wikis more individuals will build on each other’s contributions and help bring new users to the wiki. Once the wiki has passed the critical adoption milestones described in chapter 2, the enterprise users will prompt each other to use the wiki. Both use and content creation will really take off.
Figure 4-34 The second requirement of a successful wiki site is fresh and valuable content. If no content is placed in the wiki or if that content never gets updated, then users are going to stop visiting the wiki. Keep in mind that, while the example presented in the You Try It section outlined a Knowledge Base, there are plenty of other uses for wikis. In fact, Wikia has identified 38 different uses for wikis at www.wikia.com/wiki/Uses_of_a_wiki. It would be a shame to see these great concepts wither on the vine due to a lack of participation. The third requirement of a successful wiki site is the overall need for a mechanism for sharing information. If the company is happy with its current set of collaboration tools, then there will be little incentive to move to a new platform. However, if there is a need for something or anything new, then there is space
115
Page 115
Schwartz c04.tex
V3 - 12/26/2008
Chapter 4: Wikis for a wiki to be successful. Users who are sick of communicating by status reports and small meetings will ordinarily be happy to share their information on a wiki, enabling them to reach a broader audience more easily. User who are extremely comfortable with Exchange Public Folders or email messages might require a little nudge to get them moving in the right direction, but, with the proper champions, even these users will eventually move.
Figure 4-35
Enterprise and Community Contributions SharePoint is a fantastic platform, but it is a platform that can be built upon to offer expanded functionality. For example, one of the most popular enterprise wiki platforms in the market today is Confluence from Atlassian. SharePoint is one of the most popular and fastest-growing software offerings from Microsoft. Because there is some overlap in terms of the users they target, the folks at Atlassian built
116
12:19pm
Page 116
Schwartz c04.tex
V3 - 12/26/2008
12:19pm
Chapter 4: Wikis the SharePoint Connector for Confluence. The Connector gives you the ability to use Confluence for its strong wiki and SharePoint for its strong workflow and content management capabilities. Furthermore, the Connector allows for cross-searching and cross-linking content from one platform to the other in a seamless fashion. Learn more about the Atlassian SharePoint Connector for Confluence at www.atlassian.com/sharepoint/.
Figure 4-36
The open source community is working hard for SharePoint at well. CodePlex is one of the most prominent Microsoft-based open source code repositories on the Internet today. Inside of CodePlex, one of the most active projects is the Community Kit for SharePoint (CKS). Made up of over twenty different subprojects, CKS includes an Enhanced Wiki Edition. The Community Kit for SharePoint Enhanced Wiki Edition (CKS:EWE) is still in its second round of beta testing at the time of this writing, but it already offers some significant enhancements on the core functionality that SharePoint offers. As reported by
117
Page 117
Schwartz c04.tex
V3 - 12/26/2008
Chapter 4: Wikis David Mann, coordinator of the CodePlex project, the major pieces of functionality in Beta 2 of the CKS:EWE are: T
Wiki Discussions: The Wiki Discussions feature extends MOSS 2007 Wiki sites to include integrated discussions. For each Wiki page, a SharePoint Discussion Board page allows you to maintain a threaded discussion on the topic. These are fully integrated so that the discussion thread simply appears as another facet of the wiki page. Deleting and renaming are automatically synchronized.
T
Frequently Asked Questions/Table of Contents: Through the introduction of some custom markup, this allows for the wiki-based construction of a Table of Contents containing links to tagged content on the current page.
T
Enhanced Wiki Markup: Using custom tokens, textual formatting (bold, italics, underline, and so forth) can be introduced using standard wiki markup.
Figure 4-37
118
12:19pm
Page 118
Schwartz c04.tex
V3 - 12/26/2008
12:19pm
Chapter 4: Wikis
Figure 4-38
Summar y Wikis are powerful tools that grant users the ability to participate in an organic many-to-many conversation. The tool supports the ability to automatically keep users informed of changes to the contents of the wiki, secure sections of the wiki away from unauthorized eyes, and tag content with powerful metadata for enhanced filtering and searching. Wikis are new to SharePoint 2007, but they are not new concepts to the Internet and enterprise. Adapting to SharePoint’s growing presence in the corporate IT ecosphere, enterprise wiki vendors such as Atlassian are working to integrate their powerful feature sets with SharePoint’s technologies. Open source developers are working in parallel with Microsoft and enterprise vendors to add to the already powerful set of features offered by SharePoint out of the box.
119
Page 119
Schwartz c04.tex
V3 - 12/26/2008
Chapter 4: Wikis Key takeaways about Wikis: T
Wikis are excellent tools that give users the power to organically grow a document or collection of topics, complete with versioning and comments.
T
Wikis are inherently unstructured, but organization can be imparted by in-page navigation structures, such as user-maintained tables of contents and content tagging capabilities.
T
Enterprise wikis make for fantastic alternatives to other styles of documentation, but multiple user champions are required to effectively spread the initial message about wikis. Once the message starts to spread, it tends to continue to do so in a viral fashion.
The next chapter continues this theme of user-directed content sharing by describing another popular social computing application, blogs.
120
12:19pm
Page 120
Schwartz c05.tex
V3 - 12/26/2008
12:49pm
Blogs Have you ever wanted to tell a story or just give voice to your thoughts on a particular topic and ask others what they think? Have you ever considered putting these stories and thoughts on the Internet to seek out a wider audience? If so, then a blog might be right for you.
What is a Blog? While each blog can offer unique functionalities and experiences, they all share some similar characteristics. A blog generally has owner-written postings, reader-written comments, category or tag sorting, and RSS subscriptions. Blogger, a Google property, defines a blog this way, ‘‘in simple terms, a blog is a web site where you write stuff on an ongoing basis. New stuff shows up at the top, so your visitors can read what’s new. Then they comment on it or link to it or email you. Or not. (www.blogger.com/tour_start.g). Boiled down to its essence, a blog web site is generated by a blog engine, a piece of web server software that turns the content written by the author into a web site with the aforementioned capabilities of article publishing, comments, and RSS subscriptions. Figure 5-1 displays an example blog post.
Postings or Articles The meat and potatoes of a blog, a collection of blog posts, or articles are the main content elements of a blog. The owner of the blog writes each post. General readers do not have the ability to contribute their own posts. Blog posts generally invite reader comments, are categorized in some fashion, and support the ability to be downloaded on an RSS feed.
Comments Readers of a blog have the ability to reply to the content in the post by filling out a short form at the end of the post itself. This comment then becomes part of the conversation between the blogger and the general audience. For example, suppose a blogger writes a post about the high amount of taxes he or she has to pay to the Internal Revenue Service on April 15 every year. Readers may
Page 121
Schwartz c05.tex
V3 - 12/26/2008
Chapter 5: Blogs elect to submit comments commiserating and perhaps suggesting tax-avoidance techniques such as 401(k) and IRA investment accounts. Future readers are then able to read the original post as well as the associated comments.
RSS
Post
Tags
Comments
Figure 5-1
Categories or Tags As the author writes the blog post, he or she has the ability to select descriptive categories or tags that readers can use to filter the contents. This filtering capability helps readers find the type of content they are looking for. For example, the authors of the popular political blog, Crooks and Liars (www.crooksandliars.com) arrange its content into nearly 250 categories such as Election 08 and Corruption. With nearly fifty thousand posts, the numerous categories will help readers find the blog posts that interest them the most.
122
12:49pm
Page 122
Schwartz c05.tex
V3 - 12/26/2008
12:49pm
Chapter 5: Blogs
RSS One of the most attractive aspects of following a blog is that there is frequently new content to read. However, it can be frustrating to have to remember to return to the blog’s web site repeatedly to check for new content. Imagine if you tracked dozens of blogs. Each may or may not be updated over the course of a week. That would definitely be tough to keep track of! Fortunately, blogs take advantage of a syndication technology that allows the use a software tool to automatically check for new content. This concept of voluntarily checking for new content on demand rather than the site emailing new content is called pulling content as opposed to pushing content. RSS has been so successful at delivering text content that the specification has been updated to allow for audio and video components, creating opportunities for podcasts and video blogs. Podcasts are discussed in more depth in chapter 8.
Histor y The term blog is a relatively new term for an extremely old social computing concept. Almost immediately after computers were first connected together, people began sharing information with each other, first in electronic messages (now known as email) and then on digital bulletin boards such as Usenet and CompuServe. While many of the earlier electronic communications online represented moderated discussion forums and email newsletters, the first distinction for being the first blog operated and maintained by a single individual probably belongs to the Usenet-moderated newsgroup mod.ber, created by Brian E. Redmond in 1984. Mr. Redmond would use his newsgroup to post summaries of interesting threads and postings happening elsewhere on the Internet back in the days before HTTP web pages. Once the Web as we know it today began to grow in popularity, several people began to chronicle their daily lives using personal web pages as an online diary. These diaries initially tended to focus on either the personal lives or the technological inclinations of the authors. Among the earliest of these online diaries is Justin’s Links from the Underground at www.links.net, begun by Justin Hall in 1994 and taken offline in early 2008, which focused on providing readers with a guided tour of the Internet as well as a detailed look into Justin’s personal life. Dave Winer’s Scripting News has been online since 1997, helping Mr. Winer champion RSS, podcasting, and other web content management techniques to which he has devoted considerable thought and effort. The term weblog itself was first used in 1997 to describe the budding Internet journalism and was shortened to blog in 1999. Blogs slowly moved from the realm of the technically inclined to the mainstream with the advent of the tools that supported blogging. Open Diary, LiveJournal.com, and blogger.com all opened for business in 1998 and 1999. Blogs diversified, covering news and politics in addition to the aforementioned personal and technical journals. The number of people contributing content to blogs also grew, slowly at first and then dramatically to the point where Technorati.com now tracks 112.8 million blogs! Blogging has certainly moved from a fringe activity to a widely recognized mainstream force. In the 2008 U.S. presidential campaign, paid staffers write a blog for each candidate. The thin line between mainstream journalism and blogging has blurred to the point that a political blogger has recently won the highly respected George Polk Award for Legal Reporting from Long Island University for coverage of the alleged politicizing of the U.S. Attorneys department (www.nytimes.com/2008/02/25/business/media/25marshall.html?fta=y). Blogging has certainly moved into the spotlight. More and more frequently, bloggers are the first to report on a news story and spread the word around the Internet. Mainstream media has reacted to
123
Page 123
Schwartz c05.tex
V3 - 12/26/2008
Chapter 5: Blogs this phenomenon by including their own blogs on their web sites. The New York Times has over sixty blogs on its current blog site (www.nytimes.com/ref/topnews/blog-index.html) and the Atlanta Journal Constitution points readers at nearly seventy different blogs (www.ajc.com/blogs). This global collection of blogs is now referred to as the blogosphere.
Reasons for Corporate Blogging Corporations with Internet sites have been posting what’s new pages and press releases for years before blogging was in vogue, but, with the increasing visibility of Internet journalism and audience participation in journalism, the time for blogs has truly come. These blogs can help keep the public informed about company activities and plans as well as keeping internal employees in sync with each other. In fact, a common pattern that has evolved around blogs is to keep several separate blogs, one that is publicly available on the Internet and another that is private for internal employees only.
Public-Facing Blogs Public-facing blogs allow an organization to extend beyond press releases to have a more immediate and interactive form of communication with consumers of its goods and services. Consider a software company who produces components for sale. The company’s technical architects may contribute to a blog that extols the virtues of the company’s software and demonstrates potential uses. A manufacturing firm may encourage product managers to release photos and details of new products on the public-facing blog in order to stimulate interest in new models.
Benefits Some of the biggest companies in the world have public-facing blogs, including Microsoft and Google. What benefits are they seeing from their blogs? Northeastern University and the Backbone Media group produced a Blogging Success Study (www.scoutblogging.com/success_study/index.html) in November of 2006 that identified five recurring factors of a successful company blog: culture, transparency, time, dialogue, and an entertaining writing style and personalization.
Blogs Help Humanize the Company A good corporate blog can help engage the company’s customers in conversations and build better relationships. Microsoft is a great example of how this can be extremely successful. Years ago, the public perceived Microsoft as a sort of evil empire bent on taking over the world while running companies like Netscape into the ground. Striving to change that image, Microsoft and its employees began to post to thousands of blogs, teaching consumers about the technologies and presenting a human face to the world. Microsoft’s developer blog site at blogs.msdn.com lists over 5,300 blogs (blogs.msdn.com/Opml.aspx)! Superstar Microsoft blogger Robert Scoble became so popular that he became part of the mainstream press himself before he left Microsoft to pursue a larger spectrum of journalism. This humanization of a company helps to build trust in that company and its products. This can be particularly effective when the company encourages its corporate bloggers to be transparent about their activities. Bloggers tend to be very open about themselves, which engenders a great deal of implicit trust. Having a blogger who is honest with the public goes a long way toward breaking through the veil of secrecy and promoting transparency. As the Blogging Success Study points out, there are several ways to promote transparency. Allowing blog comments to be open without moderation, bloggers who are willing to criticize their employers, and more can help to build that level of public trust.
124
12:49pm
Page 124
Schwartz c05.tex
V3 - 12/26/2008
12:49pm
Chapter 5: Blogs ‘‘Transparency builds trust; trust builds interest; and interest builds an audience’’ (Blogging Success Study, section 3.2). In the process of building this relationship and trust among the company’s Internet audience, the blog may become another forum for customer service and customer feedback to the organization. Consider the Dell’s blog and community site, Direct2Dell.com. With hundreds of posts about products and the software that runs on it, readers are kept abreast of product updates and are able to respond with questions and feedback. Two recent posts on Dell’s One2One blog feature full conversations back and forth between customer service liaisons and customers themselves: (direct2dell.com/one2one/archive/2008/08/01/dell-discusses-green-with-statelegislators.aspx#comments) and (direct2dell.com/one2one/archive/2008/06/17/a-beast-ofa-card-for-a-beast-of-a-laptop.aspx). Even the consumer products company Maytag experienced a new level of customer interaction on their Skybox blog as reported to Backbone Media in a 2005 case study (www.backbonemedia.com/blogsurvey/51-maytag-case-study.htm). Blogs can also help a company weather a crisis. BusinessWeek points out that communication is the key to correctly handling a business crisis in their 2007 article, ‘‘How to Handle a Crisis’’ (www.businessweek.com/managing/content/sep2007/ca20070924_876870.htm). Furthermore, BusinessWeek even goes so far as to recommend using company web sites to reach the necessary audience in their ‘‘Responding to a Crisis’’ article (www.businessweek.com/playbook/07/0904_1.htm). The ability to host a conversation, provide a unique voice for the company, and even help the company weather bad situations gracefully are all tremendous benefits to humanizing an organization with blogs.
Blogs Help Market the Company Hand in hand with humanizing a company is the ability for a blog to market the company and its goods and services. Blogs do more than simply reach out to the community at-large with information about a company. Blogs can assist with search engine marketing, build the company’s brand as a thought leader in the industry, and differentiate the company from competition. Search engines such as Google and Microsoft Live Search work by systematically crawling the web, looking for fresh content and links to and from pages. The practice of making one’s site more attractive to search engine crawlers and improving a site’s ranking is known as search engine optimization. Blogs play nicely into search engine optimization as the content on the page is frequently updated and frequently has links pointing both into the blog from other sites and out of the blog to other sites. All of this works together to improve a company’s relative standing in search results. Consider the examples pointed out by Cymfony and Porter Novelli in their 2006 survey, ‘‘The Discovery Age’’ (www.porternovelli.com/site/pressrelease.aspx?pressrelease_id=125&pgname=news). In their free report, they cover how more than 75 percent of surveyed companies reported an increase in media attention or web site traffic as a result of their blogs. A side effect of all the fresh content on the blog, provided the content is good content, is that readers come to associate the blog and owners of the blog with the material. This association helps build credibility and establish the blog authors and their companies as thought leaders in the market. This kind of association can be extremely helpful to the organization when marketing itself to consumers. Consider the example of Stoneyfield Farms. Their blogs have been featured many times in industry and business press articles, and representatives of the company credit their blogs with the company’s impressive growth. In an interview with BusinessWeek, Stonyfield’s professional blogger boasts about the company growing three times faster than the market category nationally (www.businessweek.com/magazine/content/05_18/b3931005_mz001.htm).
125
Page 125
Schwartz c05.tex
V3 - 12/26/2008
Chapter 5: Blogs Encourage an Open Corporate Culture Internally, having publicly available blogs both encourage an open culture and foster communication among an organization’s employees. The externally available blogs help crystallize the messages from inside the company to the public at-large and help the internal employees understand their customers better. By fostering these conversations and encouraging employees to speak frankly with blog entries, the tone of honesty and transparency will come through on the blog. In turn, this will foster interest and trust in the company itself.
Encourage You to Pay Attention to What Others Say about You in the Blogosphere By monitoring the pulse of the blogosphere, companies can use the Internet and comments about themselves on the Internet as a form of customer satisfaction survey or focus group report. In fact, back in 2004, researchers from Forrester were advocating that companies should monitor blogs as a minimum behavior to ‘‘learn what is being said about their products and services’’ (www.corporateblogging.info/2004/11/at-minimum-you-should-monitor-blogs.asp). Paying attention to those willing to make online comments allows a company to react quickly to issues. Consider the following example. When Dell Computers started to receive negative reactions on blogs about the wasteful packaging practices of putting USB memory sticks in cardboard boxes, they followed up on the specific issue and implemented a review of existing packaging practices to find more environmentally responsible shipping options (www.ecosmartworld.com/dell-computers-reacts-to-blog-bashing). Paying attention to blogs has actually become a business venture for some organizations. Companies like BuzzMetrics and Intelliseek actually charge as much as $100,000 per year to monitor the Internet for mentions of an organization. However, after reading this CNET news article about a Kraft Foods lawsuit, it is easy to see why companies are proactively seeking to understand public opinion as offered online (http://news.cnet.com/Why-companies-monitor-blogs/2100-1030_3-6006102.html). As the article points out, BuzzMetrics tracked over 2.6 million comments about trans fats, and Kraft products were mentioned in over 25 percent of the comments, with Kraft itself being mentioned in 17 percent. The controversy shifted government policy about food labels and caused a public relations nightmare for Kraft Foods.
Risks Blogging openly on the Internet does not come without risks. Companies that lack the open culture or are unfamiliar with blogging in general can actually incur negative reactions to blogs.
Negative Comments Among the most frequently feared consequences of an open blog online are that negative comments posted to the blog about the company or its products are generally there to stay unless the blog in some way moderates or censors the comments. In the anonymous environment of the Internet, negative comments are a near certainty. How a company deals with negative comments is a very telling indicator of how it treats its customers. Social marketing professional Mark Collier suggests four different approaches to negative comments on his Daily Fix blog (www.mpdailyfix.com/2006/10/handling_negative_comments_on.html).
126
T
Ignoring or deleting negative comments is generally undesirable as the organization will appear to be intent on stifling the open conversation between consumers and the company.
T
Antagonizing a negative commenter is likely to start a tit-for-tat escalation of negativity that will make no one look good.
12:49pm
Page 126
Schwartz c05.tex
V3 - 12/26/2008
12:49pm
Chapter 5: Blogs T
Pacifying a negative commenter may stop negative comments from that individual, but it may backfire in some unforeseen way.
T
Actually answering negative comments and addressing the issues raised is the best approach.
Neglect If a blog is intended to be an open conversation between the company and its customers, a neglected blog is almost completely without value. Unlike a discussion forum where customers have the ability to start the conversation, a blog requires that the company initiate the conversation with a posting. Only then will readers have the ability to communicate with the organization through their comments. By neglecting to post new material to the blog, the organization effectively ends the conversation.
Loss of Control over Message Organizations used to having a structured approach to the public through a professional marketing team may have significant concerns about releasing blog articles onto the Internet that the marketing team has not reviewed. This careful review process can certainly ensure that the company message does not get muddled or lost in a blog, but it may impact the integrity and transparency of the blog. While it may be expected that a company’s management might experience some anxiety over the potential loss of control over the company’s image in publicly available material, companies that foster an open culture among its employees are generally safe.
Unprepared for the Internet Where a company doesn’t want to see employees who don’t understand the corporate message posting potentially damaging content to a blog, blog authors who don’t understand the culture of the Internet can be just as damaging in the long run. Consider the following anecdote. At the suggestion of their public relations firm, Wal-Mart paid for a recreational vehicle and the expenses of a couple driving across the United States and spending the night for free in Wal-Mart parking lots. The couple blogged about their experiences and the people they met at Wal-Marts across the country in such an upbeat way that suspicions were raised about the pair’s authenticity. The resulting public relations nightmare for Wal-Mart even reached Business Week magazine in October 2006 (www.businessweek.com/print/bwdaily/dnflash/content/oct2006/db20061009_579137.htm). In this situation and others like it, blog authors who intentionally or unintentionally fail to live up to the expectations of other bloggers with respect to forthrightness and honesty are frequently called out as frauds or at least unethical.
Legal Liabilities A serious risk of supporting public blog postings and comments is that there may be some legal liabilities incurred as a direct result of the material published online. Defamatory writings have long been a source of lawsuits and online writings are not safe. A simple Google search for the phrase defamation blog lawsuit returns over 338,000! Consider the 2008 lawsuit filed that a pair of patent attorneys filed against Cisco, alleging defamation as a result of the blog postings of the head of Cisco’s intellectual property department (news.cnet.com/8301-10784_3-9903070-7.html).
Competitive Disadvantage Company bloggers may potentially reveal sensitive information such as financial data or trade secrets on the Internet and therefore cause the company to operate at a competitive disadvantage.
127
Page 127
Schwartz c05.tex
V3 - 12/26/2008
Chapter 5: Blogs Traditionally, this type of risk has been mitigated by company policies defining unacceptable blog material. For example, Sun Microsystems includes the following summary of what it considers important rules for bloggers to follow in its publicly available blogging guidelines (www.sun.com/aboutsun/media/blogs/BloggingGuidelines.pdf): T
Do not disclose or speculate on nonpublic financial or operational information. The legal consequences could be swift and severe for you and Sun.
T
Do not disclose nonpublic technical information (for example, code) without approval. Sun could instantly lose its right to export its products and technology to most of the world or protect its intellectual property.
T
Do not disclose personal information about other individuals.
T
Do not disclose confidential information, Sun’s or anyone else’s.
T
Do not discuss work-related legal proceedings or controversies, including communications with Sun attorneys.
T
Always refer to Sun’s trademarked names properly. For example, never use a trademark as a noun since this could result in a loss of our trademark rights.
T
Do not post others’ material, for example, photographs, articles, or music, without ensuring they’ve granted appropriate permission to do this.
T
Follow Sun’s standards of business conduct and uphold Sun’s reputation for integrity. In particular, ensure your comments about companies and products are truthful, accurate, and fair and can be substantiated. Avoid disparaging comments about individuals.
Author’s Hesitancies Bloggers who write material that is published on behalf of the company may feel hesitant to do so for many reasons, including their potential lack of incentive and potential increase in risk to their careers. Typically, company bloggers who are not either part of the company’s marketing department or otherwise professional bloggers are unlikely to be paid directly for their blog material. However, the company may reap significant benefits from having that blog. Also, as mentioned above in the risks of blogging, individuals who contribute content to a company blog may inadvertently put their careers at risk by writing inappropriate or damaging material.
Mitigation of Risks While the risks of open public blogging cannot be fully mitigated, it is possible to reduce these risks by implementing one or more of these options:
128
T
Allow individual authors to individually manage their own public blogs. Ask them to enforce their own interpretation of what is best for the company. Frequently, this situation is seen in organizations just beginning to blog without any formalized processes.
T
Implement and enforce blogging guidelines such as the ones suggested by Sun Microsystems.
T
Submit all blog posts to some form of corporate approval. The biggest problem with this approach is that the blog author’s freedom to be honest and transparent may be affected.
12:49pm
Page 128
Schwartz c05.tex
V3 - 12/26/2008
12:49pm
Chapter 5: Blogs
Internal Blogs Internally focused blogs are distinct from those that are publicly available on the Internet. Company employees write internal blogs for company employees, and these are often a valuable tool for promoting awareness and communication internally. For example, in a manufacturing organization, product managers may use blogs to keep the company informed about product changes. A human resources team may use a blog in place of email announcements to keep people up-to-date with policy changes, answering questions from employees right on the blog. Technology workers may keep each other up-to-date with the latest software tips and techniques in an interactive fashion. Blogs are either written from a bottom-up or top-down perspective. Bottom-up posts are written from the perspective of the line workers and low- to mid-level managers. These blogs are written to express ideas or experiences they have had. Top-down blogs are a way to deliver executive messages, such as strategic direction, corporate status, and announcements. Blogs act as a record of lessons learned, experiences, events, successes, and failures. The numerous benefits of internal blogs include knowledge sharing and team building
Knowledge Sharing Knowledge sharing occurs when information, experience, skills, or expertise is exchanged among people, friends, a community, or an organization. By its very nature, the act of blogging is a way to share information with the blog’s readers. The writer takes the time to think about the message he or she wants to deliver and attempts to express the message in a clear and understandable fashion so that many readers can consume it.
Team Building Blogs help to strengthen teams by allowing ongoing and constant communication between team members, regardless of distance. Blog posts and associated comments allow for group communication of ideas and questions without the intrusive effects of email distribution lists. As team members continue to communicate, bonds of trust between members are built on the spirit of collaboration that helps make the team stronger. This kind of communication works inside of a single team or department and across multiple teams. Internal blogs allow geographically distributed teams to easily communicate with each other in an easy and open way, whether that geographic distribution is around the world or just in the next room.
SharePoint Blogs When Microsoft surveyed its customers about the SharePoint Portal Server 2003 product while looking to find improvements, one of the many things it found its customers doing was using the limited 2003 functionality to mimic an Internet blog. Microsoft felt so strongly that blogs were an important facet of any company’s online presence that it included the blogging functionality with the free edition of SharePoint, Windows SharePoint Services (WSS). The third version of WSS is a free download on top of Windows Server 2003, and it is actually bundled with Window Server 2008. WSS is easy to install and does not even require the use of a dedicated instance of SQL Server, as it can install its own version known as the Windows Internal Database. All of this, with the exception of the Windows Server operating
129
Page 129
Schwartz c05.tex
V3 - 12/26/2008
Chapter 5: Blogs system itself, is completely free for internal corporate use, but there may be additional licensing costs to expose an installation of WSS to the Internet. There is an External Connector (EC) license (www.microsoft.com/windowsserver2003/howtobuy/licensing/extconnector.mspx), which is required in lieu of a client access license for each external connection. The EC license costs $1,999 through the volume licensing programs offered by various Microsoft resellers (www.microsoft.com/windowsserver2003/howtobuy/licensing/pricing.mspx). MOSS is a premium Microsoft product that is available in a wide range of configurations at an equally wide range of costs. For more information, please review the Microsoft Office SharePoint Server 2007 and Related Technologies pricing information online at http://office.microsoft.com/en-us/ sharepointserver/FX102176831033.aspx, or check with your favorite Microsoft reseller.
You Tr y It Authors of SharePoint blogs are able to use the SharePoint web interface to create their blog, author posts, and read and write comments. This being SharePoint, you can also use your favorite Office client such as Word and OneNote and even blog specific authoring tools to create and manage content on a blog.
Create a SharePoint Blog Site The first step in creating a SharePoint blog is the act of creating a web application for it in SharePoint’s Central Administration. This administrator activity assigns a URL and a database to the SharePoint site which will host the actual blog contents.
1.
Launch SharePoint’s Central Administration site on the server by pressing the Start button. Select Control Panel, and select Administrative Tools. Then select SharePoint 3.0 Central Administration.
2. 3.
Click the Application Management tab.
4. 5.
Select the Create a new Web application option.
In the SharePoint Web Application Management section, click the Create or extend Web application link.
On the Create New Web Application page, in the IIS web site section, fill in the following data values, as in Figure 5-2.
1. 2. 3. 4. 5. 6.
130
Create a new IIS web site Description: blogs.company.com Port: 80 Host Header: blogs.company.com Path: (do not change the default value)
On the Create New Web Application page, leave all of the default options for the Security Configuration, Load Balanced URL, and Reset Internet Information Services sections. The default values for each of these options are perfectly acceptable for all except the largest of organizations with heavily governed SharePoint installations.
12:49pm
Page 130
Schwartz c05.tex
V3 - 12/26/2008
12:49pm
Chapter 5: Blogs
Figure 5-2
7.
On the Create New Web Application page, in the Application Pool section, specify a domain username and password for the application pool identity. This account does not need to be a domain administrator and will be used to access the site’s database.
8.
On the Create New Web Application page, in the Database Name and Authentication section, replace any long strings of letters and numbers with the name of the site (blogs.company.com) so the database name matches the screenshot in Figure 5-3. This change in the database name will help database administrators identify which WSS_Content database belongs with which SharePoint site. In fact, this is a great idea for any SharePoint site and should be considered a best practice to follow whenever a new SharePoint site is created.
9.
On the Create New Web Application page, click OK to create the new web application. When the process is complete, the browser will be taken to the Application Created page, where you are presented with a link to the Create Site Collection page. At this point in the process, some changes have taken place on the server. A new IIS web site has been created, a new database has been added to SQL Server, and a new directory has been added to the server’s file system. While there is no browsable SharePoint content at this point, all of the infrastructure required to host a SharePoint site is now in place. All future changes made by SharePoint’s administrative tools will take place in the database.
10. 11.
On the Application Created page, click the Create Site Collection link. On the Create Site Collection page, fill in the following data values as in Figure 5-4.
1. 2.
Title: My Blog Description: Welcome to my blog, where I will be discussing a wide variety of interesting subjects
131
Page 131
Schwartz c05.tex
V3 - 12/26/2008
Chapter 5: Blogs 3. 4.
Template: Blog from the Collaboration tab Primary Site Collection Administrator username: a domain username that will be the administrator for all blog sites at blogs.contoso.com
Figure 5-3
132
12.
On the Create Site Collection page, click OK to create the new blog site. When the process is complete, you will be taken to the Site Collection Created page, which contains a link to the new blogs.contoso.com site. Before you can actually visit this site, one of two things must happen. An entry must be added to your company’s or the Internet’s domain name service (DNS) servers, or you must make an entry to your machine’s host file. The purpose of these steps is to associate the URL blogs.company.com with the IP address of the machine hosting the site. The DNS entry is likely to be the permanent solution, but, for temporary purposes, the host file entry is a perfectly satisfactory way to enable testing and demonstrations.
13. 14.
Click Start, and select All Programs. Select Accessories, and select Notepad. Click File. Open and navigate to the following path, c:\windows\system32\drivers\etc\. Change the Files of type selection from Text documents to All Files, as seen in Figure 5-5. Open the hosts file. Assuming you are making your changes on the SharePoint server itself, add the following entry to the bottom of the file: 127.0.0.1 blogs.company.com. Your host file should look like Figure 5-6 when you save and close it.
12:49pm
Page 132
Schwartz c05.tex
V3 - 12/26/2008
12:49pm
Chapter 5: Blogs
Figure 5-4
Figure 5-5
133
Page 133
Schwartz c05.tex
V3 - 12/26/2008
Chapter 5: Blogs
Figure 5-6
15.
Return to your Internet browser and click the link to blogs.contoso.com. Log in with the username you specified as the site collection administrator above. You will be taken to your new blog site, which is ready for new content and customization, as seen in Figure 5-7.
Basic Blog Settings Customizations Before you post any content to the blog, you’ll want to modify a few things in the default template, such as the available categories and permissions. Out of the box, the sample categories are Category One, Category Two, and Category Three. These are not very helpful so the first task is to replace these placeholders with real categories.
134
1. 2.
Under the Admin Links on the right-hand side of the screen, click the View all content link.
3.
In the Categories list, delete each of the sample categories, as seen in Figure 5-9. Add the new categories such as Hardware, Software, and SharePoint by clicking the New button on the List toolbar.
On the All Site Content page, in the Lists section, click the Categories list, as seen in Figure 5-8.
12:49pm
Page 134
Schwartz c05.tex
V3 - 12/26/2008
12:49pm
Chapter 5: Blogs
Figure 5-7
Figure 5-8
135
Page 135
Schwartz c05.tex
V3 - 12/26/2008
Chapter 5: Blogs
Figure 5-9
Posting to a Blog The blog site has been created, and some initial categories have been set up. At this point, you are probably itching to post your first blog entries. SharePoint offers several different ways to interact with the content on a blog as a blog author, including the web site itself, Office programs such as Word, blog authoring tools, and even email integration.
Posting to the Blog with the Web Interface The blog site’s web interface is easy to use and may be all that you ever need when it comes to creating and maintaining your content.
136
1.
Begin your examination of the web interface by clicking the Home tab to return to the blog site’s main page.
2. 3.
In the Admin Links list, click the Create a post option. On the Posts: New Item screen, give your new post a title, body, and category, as seen in Figure 5-10. In the screenshot, notice an Insert Hyperlink dialog box appears due to the highlighting of the word here in the body content and clicking the Insert Hyperlink button on the Rich Text toolbar. The Rich Text toolbar allows you to easily format your content as well as insert images and HTML links. In fact, there is even an Edit HTML button that is available to those who want explicit control over the appearance of their content.
12:49pm
Page 136
Schwartz c05.tex
V3 - 12/26/2008
12:49pm
Chapter 5: Blogs 1. 2.
Title: Intel releases new wireless drivers for Dell laptops
3.
Category: Hardware
Body: Dell laptop users take note. Intel has released some new wireless drivers that may alleviate some issues with wireless connectivity. Dell has not officially released these wireless drivers yet, so download at your own risk. Click here to go to the download site: (http://downloadcenter.intel.com/Filter_Results.aspx?strOSs=All& strTypes=All&ProductID=1847&OSFullName=AllOperating Systems&lang=eng)
Figure 5-10
4.
Click OK to submit the blog post content for approval. By default, SharePoint assumes it is operating in a team environment where multiple authors might be creating blog posts and content moderation is required. You can disable this option in the Posts lists versioning settings. You may have noticed that you also have the ability to save the post as a draft so you can come back later and finish editing the content.
5.
You will automatically be taken back to the blog’s homepage after clicking OK in the step above, but you may notice that your entry does not show up on the blog even though you are logged in as the administrator. This is because it first needs to be approved for publication. In the Admin Links list, click Manage Posts to be taken to the Posts list. Notice that the approval status for your new entry is set to Pending. To approve the new post, hover over the title, and select Approve/Reject from the drop-down menu, as seen in Figure 5-11.
137
Page 137
Schwartz c05.tex
V3 - 12/26/2008
Chapter 5: Blogs
Figure 5-11
6.
After approving the content, return to the blog’s homepage to see that the new entry has been added to the list of blog entries, as seen in Figure 5-12. Please notice that, if you modified the Published field on the Posts: New Item screen, the date of the posting changes in the list of blog entries. This Published date field is used only for sorting purposes and cannot be used to delay the actual publication of content until a specific date and time. Items dated into the future will remain at the top of the blog until that future date.
7.
To add a comment to this or any post, simply click the Comments link under the desired post to be taken to a Comments form, as seen in Figure 5-13. It is worth noting that the comment’s body field does not allow for rich text like the blog post itself. It is also worth noting that, by default, there is no moderation of comments. Every comment is immediately published.
Posting to the Blog from Word 2007 Writing blog entries directly through the web site is very convenient until you don’t have a network connection or some other connectivity problem occurs. If you have ever accidentally navigated away from an online text box without copying the content to your clipboard or Notepad, then you know another reason why writing to an offline tool might be preferred. Offline tools are not going to time-out or lose your content if you accidentally click the wrong place with your mouse. You can write your draft content on your local machine, take advantage of features such as spell-check, and format your blog posts to your heart’s content without having to know anything about HTML. Word 2007 is an excellent example of an offline blogging tool that a large number of people are familiar with.
138
12:49pm
Page 138
Schwartz c05.tex
V3 - 12/26/2008
12:49pm
Chapter 5: Blogs
Figure 5-12
Microsoft Office Word 2007 offers the ability to post blog entries to several different blogging engines, but SharePoint blogs are of particular significance to this text, as it is a book about SharePoint. To create and publish a blog post with Word, follow these steps.
1. 2.
Start Word 2007, and select the New option from the Microsoft Office button.
3.
The next step is to register your account. This is only required the first time you want to post to a particular blog. If you have multiple blogs, Word is capable of maintaining multiple accounts so all you need to do is remember which blog post goes to which blog. In the New Blog Account dialog box, select that the blog provider is a SharePoint blog, as in Figure 5-15.
4.
Click Next. Enter http://blogs.contoso.com as the Blog URL, as seen in Figure 5-16. In the event that your URL does not match the book’s example URL, your blog URL is the main page of the blog site without the default.aspx page name.
5.
Add a blog title and some text to the blog’s body in Word. Notice that you have a range of text formatting options, including fonts, styles, and colors. You also have access to tools like spell-check and the research pane. You also have the ability to insert charts, pictures, WordArt, and SmartArt.
6.
Click the Publish button to submit the document to the web site. When the publishing process has been completed, your Word document will change, as seen in Figure 5-17. A new
In the New Document dialog box, choose a new blog post from the blank and recent group, as seen in Figure 5-14.
139
Page 139
Schwartz c05.tex
V3 - 12/26/2008
Chapter 5: Blogs
Figure 5-13 post status message will be added to the top of the document. This document can now be saved on your file system and updated later. If the Word document is updated and republished, the original blog post is also updated. A second blog entry is not uploaded to the server in the event of content edits.
7.
Navigate back to your blog’s site, approve the post, and check out the new blog entry from Word on the main page, as seen in Figure 5-18. If you investigate the site a little more, you’ll notice that the SmartArt graphic has been saved as an image into the Photos picture library.
Posting to the Blog from OneNote Microsoft Office OneNote 2007 is a wonderful program that enables you to save tremendous amounts of information in an organic and freeform fashion on your computer. It’s not at all uncommon for users of OneNote to have dozens of notebooks with hundreds of notes and images in OneNote. If you’re one of these people, it might interest you to know that you can publish your OneNote content to your SharePoint blog. It is important to note that this process requires Word 2007 be installed on the same computer, as Word contains the Register a Blog Account functionality. OneNote simply takes advantage of Word’s saved settings.
1. 140
Open OneNote 2007, and find or create a page with content that you’d like to post as a blog entry. It is possible to select a subset of your notes on a page by selecting just the content
12:49pm
Page 140
Schwartz c05.tex
V3 - 12/26/2008
12:49pm
Chapter 5: Blogs you’d like to publish. If your desired content spans across multiple pages, hold down the Ctrl key, and select each page you’d like to publish.
Figure 5-14
2.
On the File menu, select Send To, and then click Blog. Or you can right-click the selected content and choose Blog This. Figure 5-19 offers a view of this sort of selection process.
3.
If you haven’t already registered your blog account in Word 2007, you will be asked to do so now.
4.
OneNote will generate a Word document out of the content you have selected. Click Publish in the new Word document to send your new blog post to the blog site. Figure 5-20 and Figure 5-21 show the generated Word document after clicking the Publish button and the site itself after the content has been approved.
Posting to the Blog from Windows Live Writer If the Office 2007 versions of Word and OneNote are not available to you, a free program available from Microsoft supports offline authoring and posting to SharePoint blogs. The Windows Live Writer tool is available for download on the Windows Live Writer Spaces site (http://windowslivewriter.spaces .live.com). One of the things that make the Windows Live Writer such a powerful and popular tool, aside from its low price tag, is the fact that dozens of plug-ins are available for it. These plug-ins make it extremely easy to add specialized content, such as Technorati tags, Live Maps, and even video content, to a blog post.
141
Page 141
Schwartz c05.tex
V3 - 12/26/2008
Chapter 5: Blogs
Figure 5-15 It is important to note that this tool cannot be installed on a server. To add a SharePoint blog account to Windows Live Writer, follow these steps.
1.
Download and install the Windows Live Writer on a Windows XP SP 2 (or later) or Vista machine.
2. 3.
Add an account by pulling down the Weblog menu, and selecting Add Weblog Account.
4.
Windows Live Writer will automatically connect to the site and download settings such as title and categories. It will prompt you for account information if that information is required. Internal SharePoint sites are frequently configured to not require user logins once the user has logged into his or her computer on the corporate network.
In the Add Weblog Account dialog, select the SharePoint weblog, as seen in Figure 5-22. Click Next.
Posting to the Blog by Email It is possible to configure SharePoint to receive and process email messages into lists. While the actual configuration of POP3 accounts and Exchange mailboxes is out of scope for this book, the basic idea is that the blog’s Posts list can be configured to have a unique email address. When you send an email to that unique email address, the body of the email message becomes the post content.
142
12:49pm
Page 142
Schwartz c05.tex
V3 - 12/26/2008
12:49pm
Chapter 5: Blogs
Figure 5-16
Enriching the Comment Experience Out of the box, the experience for blog comments is pretty basic. You have the ability to give your comment a title and type in some plain text, but that’s about the extent of the capabilities for comments. Follow these directions to give your comments a bit more flexibility.
1. 2.
Navigate to the Comments list, and click the Settings button. Select the List Settings option.
3.
Add the ability to associate the comment with a URL by clicking the Create column link in the Columns section. Add a new optional URL column of type Hyperlink.
4.
Adjust the column ordering to move the new URL field before the Body field, as in Figure 5-24.
5.
Back in the List Settings screen, in the General Settings section, click the Versioning settings link.
6.
The first option in the List Versioning Settings screen is to require content approval for submitted items. Set this to Yes to have your blog comments require approval before becoming visible to content readers. This is an excellent way to help manage potential comment spam, especially if this blog is going to be exposed to the Internet.
In the Columns section, modify the Body column to accept enhanced rich text so your visitors can embed images and hyperlinks. Figure 5-23 shows you the Change Column options.
143
Page 143
Schwartz c05.tex
V3 - 12/26/2008
Chapter 5: Blogs
Figure 5-17
7.
As a blog author and comment moderator, it will make your life easier if the system automatically informs you as new comments are received. Use SharePoint’s Alert system to send you notifications on an instant or daily summary basis by returning to the Comments list view, clicking the Actions button, and selecting the Alert Me option.
8.
As an exercise left to the reader, another optional step would be to enable automatic deletion of comments that have been rejected. This task is easy to accomplish with a SharePoint Designer workflow.
Blog Permissions You’ve just explored the blog interface a bit, including making some configuration changes, such as updating the categories. Now that the placeholder categories have been replaced with a few initial categories that make more sense for the content of the blog and you’ve added the first few blog posts, it is time to change a few other settings. In the blog’s current state, the only person who has any level of access is the site collection administrator. It would probably be helpful in terms of team communication if the site allowed other team members to read content and add comments. You may even want to make the blog readable to anonymous users on the Internet, complete with the ability to anonymously add comments.
144
12:49pm
Page 144
Schwartz c05.tex
V3 - 12/26/2008
12:49pm
Chapter 5: Blogs In the Admin Links on the main page, you’ll see a link called Manage Permissions. This link actually brings up the SharePoint help information about permissions in general. You are strongly encouraged to read that information to have a more well-rounded understanding of security in SharePoint. The first changes you’ll make will be to add members of your team to the list of users who have permission to read and interact with the blog components. Following that, you’ll be enabling anonymous user interactions.
Figure 5-18
Team/Internal-Facing Blog Settings An internally-facing blog can generally assume that SharePoint will authenticate everyone who interacts with it in some fashion. This gives you a great deal of control when considering the roles involved with the various aspects of the blog. For example, in a typical corporate blog, you have the following roles: content author, content approver, comment author, comment approver, and reader. Implement the following steps to create these roles on your SharePoint blog site, and grant users in these roles the appropriate permissions:
1. 2. 3.
Open the site’s main page as the site administrator. Click the Site Actions Site Settings button. In the Users and Permissions group, click the People and Groups option.
145
Page 145
Schwartz c05.tex
V3 - 12/26/2008
Chapter 5: Blogs
Figure 5-19 The following steps are designed to walk you through the process of creating a new site permission level. A permission level is a collection of authorized actions that is available to a user or group of users. At this point, you will be creating a comment author permission level. Comment authors are able to add comments, but not update or remove existing comments.
146
1. 2. 3. 4.
Click the Site Permissions link in the Quick Launch menu.
5.
Name your new permission level as Comment Author. In the List Permissions section, remove the ability to edit and delete items by clearing the appropriate boxes, as seen in Figure 5-25.
6.
Click the Groups link from the top of the Quick Launch menu to view the SharePoint groups already available for use. These SharePoint groups are analogous to the user roles. Groups are assigned various collections of permission settings called permission levels. While it is possible to assign a permission level directly to an individual user, it is considered a best practice to assign permissions to the role (SharePoint group) and add users to that role.
Pull down the Settings menu, and select the Permission Levels option. Click the Contribute Permission Level button. At the bottom of the screen, click the Copy Permission Level button to create a new permission level with the same authorized actions preselected.
12:49pm
Page 146
Schwartz c05.tex
V3 - 12/26/2008
12:49pm
Chapter 5: Blogs
Figure 5-20
7.
Add the following new groups and grant them the associated permission levels. Figure 5-26 is representative of the screens you will be seeing. As you create each group, add a different sample user to make it easy for you to test your security settings. The sample user accounts could be machine accounts or domain user accounts. To sign on as each account, you will need to know the account passwords. T
[Group Name]: [Permission Level]
T
Content Author: Contribute
T
Content Approver: Design
T
Comment Approver: Design
T
Reader: Comment Author
The next steps are to adjust the permissions of the Posts and Comments lists to enable only the users you want to be able to add content to the blogs and approve content. For each list (Posts and Comments), perform the following steps:
1.
Go to the list’s settings by clicking the Settings drop-down list and selecting the List Settings option.
147
Page 147
Schwartz c05.tex
V3 - 12/26/2008
Chapter 5: Blogs 2. 3.
In the Permissions and Management section, click the Permissions for this list link.
4.
Place checkmarks next to the groups whose permissions you wish to remove from the group. Remove the groups according to this table by clicking the Actions menu and selecting the Remove User Permissions option.
Pull down the Actions drop-down list, and select Edit Permissions. Click OK to the notification you are about to create unique permissions for the list.
Figure 5-21
Posts List
Comments List
My Blog Members
My Blog Members
Comment Approver
148
12:49pm
Page 148
Schwartz c05.tex
V3 - 12/26/2008
12:49pm
Chapter 5: Blogs
Figure 5-22 Figure 5-27 is a screenshot of what your Posts list permissions should look like after you have removed the unnecessary groups.
5.
Validate the user experience by logging into your portal as a content author, content approver, and reader to make sure everything works the way you’d expect it to. You now have a blog that works for all nonanonymous users.
149
Page 149
Schwartz c05.tex
V3 - 12/26/2008
Chapter 5: Blogs
Figure 5-23
Anonymous/Internet-facing Blog Settings Internet users are typically treated as anonymous users. Most Internet-facing blogs do not require that readers log into the site before being able to read or comment on the blog. Follow the following steps to configure your site to receive anonymous Internet readers. Please note that the actual effort of exposing the blog site to the Internet typically requires assistance from your company’s IT department. This merely gets the blog site ready for that time.
1. 2.
150
Navigate to your SharePoint server farm’s Central Administration site. On the Application Management tab, in the Application Security section, click the Authentication providers link to be taken to the list of zones for your blog site. Ensure the Web Application drop-down list has the URL for your blog site in yellow at the top of the screen, as in Figure 5-28. You should only have a default zone if you’ve followed the instructions to this point, so click the zone name, Default.
12:49pm
Page 150
Schwartz c05.tex
V3 - 12/26/2008
12:49pm
Chapter 5: Blogs 3.
On the Edit Authentication page, in the Anonymous Access section, as in Figure 5-29, place a check next to the Enable anonymous access option. Click Save at the bottom of the screen.
Figure 5-24
At this point, you have told the IIS web server that your particular web site will accept anonymous users, but you still need to configure the actual site itself in terms of what parts of the site are available for anonymous users. There are three options: T
Nothing is available to anonymous users.
T
Everything is available to anonymous users.
T
Selected lists and libraries are available to anonymous users.
151
Page 151
Schwartz c05.tex
V3 - 12/26/2008
Chapter 5: Blogs The last option really sounds like the best one, but it requires significantly more preparation and customization of the blog site, so, instead, enable anonymous access to the entire site by following these steps to configure your site.
1.
Close Central Administration if you still have it open, and return to your blog site’s homepage.
2. 3. 4.
Click the Site Actions button, and select the Site Settings option. In the Users and Permissions section, click the Advanced permissions option. Click the Settings menu option, and select the Anonymous Access option. If you do not see the anonymous access option, return to Central Administration and ensure you successfully enabled anonymous access for the correct authentication provider zone.
Figure 5-25
152
12:49pm
Page 152
Schwartz c05.tex
V3 - 12/26/2008
12:49pm
Chapter 5: Blogs 5.
On the Change Anonymous Access Settings page, select the Entire Web Site option, as in Figure 5-30. Click OK.
Figure 5-26 The site has now been configured to allow anonymous users access to the site. All that remains is to configure the correct level of anonymous access to the Comments list. Follow these steps to complete the anonymous access configurations:
1.
The Comments list needs to allow anonymous users to post new content. On the Comments list page, click the Settings menu option to select the Picture Library or List Settings option.
2.
Select the Permissions for this list option from the Permissions and Management section. Edit the permissions if you have not already done so.
3. 4.
On the Permissions page, in the Settings menu, select Anonymous Access, as in Figure 5-31. Grant users the ability to both add Items and view items, as in Figure 5-32. Click OK.
153
Page 153
Schwartz c05.tex
Chapter 5: Blogs
Figure 5-27
Figure 5-28
154
V3 - 12/26/2008
12:49pm
Page 154
Schwartz c05.tex
V3 - 12/26/2008
12:49pm
Chapter 5: Blogs
Figure 5-29
Figure 5-30
155
Page 155
Schwartz c05.tex
V3 - 12/26/2008
Chapter 5: Blogs
Figure 5-31
Figure 5-32
5.
156
At this point, you should be able to return to the blog’s main page and sign out using the drop-down list behind your username in the top right. Return to the site without signing in. You should see a screen similar to Figure 5-33. Notice that the top right says ‘‘Sign In’’ instead of a username. Experiment by adding a new comment to the blog. Sign back in to approve the comment.
12:49pm
Page 156
Schwartz c05.tex
V3 - 12/26/2008
12:49pm
Chapter 5: Blogs
Figure 5-33
Enterprise and Community Contributions While SharePoint does offer a minimum of blog functionality OOB, the experience is somewhat less than users may want after experiencing blogs available on the Internet. Important features such as search-friendly URLs and distinctively themed blogs are not easily achieved without significant development efforts on top of the default SharePoint functionality. Fortunately, the open source and commercial communities have noticed this gap in functionality. The following sections describe a few offerings in this space that are currently available.
Open Source In the previous You Try It section, you experimented with the OOB blogging capabilities of SharePoint. While these blogging capabilities are extremely powerful and highly extensible, you might
157
Page 157
Schwartz c05.tex
V3 - 12/26/2008
Chapter 5: Blogs be interested in an open source effort that has already done a great deal of work to extend the OOB experience. The Community Kit for SharePoint project on CodePlex.com is an open source effort that offers dozens of different SharePoint solutions to the general public at no charge. Among these offerings is the Enhanced Blog Edition (EBE), currently released as Version 2.0. EBE is available as an installable SharePoint solution package that offers the following enhancements to the OOB experience: T
Theming T T
Modular Theme Framework: This is an easy way to design new themes and insert the SharePoint blog content. Search Engine Optimization Friendly URLs: This makes blog post URLs look like /archive/2007/08/25/sharepoint-chart-tool.aspx instead of /Lists/Posts/ViewPost .aspx?ID=37.
T T
T
T
T
These five themes can be used as-is or get you started on the development of your own, including dynamic per-post links (e.g., Digg this), tag cloud, and so forth.
Linkbacks (Trackbacks) T
Send linkbacks to other blog posts you are linking to in your EBE blog post. (These show up as trackbacks on the other blog.)
T
Receive linkbacks from other blogs who are posting about your blog post. (These show up as trackbacks on your EBE blog.)
Spam control T
Akismet integration to detect comment spam
T
CAPTCHA to help block comment spam at the source
T
Option to automatically delete spam to Recycle Bin
T
Option to automatically approve spam-free comments
RSS T
Custom RSS link (e.g., http://feeds.feedburner.com/myblog)
T
Post trimming (only a portion of post is sent via RSS)
T
Specify RSS feed item count
T
Category specific feeds (e.g., /rss.xml?cat=coolstuff)
T
Validates W3C
Miscellaneous T
Securing of system pages (e.g., so anonymous users can’t browse your lists and libraries using SharePoint UI)
T
Metaweblog API to support Windows Live Writer and migration tools
T
Client Date/Time that displays date/time in time zone of user instead of server
Figure 5-34 is a collection of screenshots from the Community Kit for SharePoint site on CodePlex, which hits at the flexibility of the theming engine.
158
12:49pm
Page 158
Schwartz c05.tex
V3 - 12/26/2008
12:49pm
Chapter 5: Blogs
Figure 5-34
159
Page 159
Schwartz c05.tex
V3 - 12/26/2008
Chapter 5: Blogs
Enterprise Telligent’s Community Server 2008 offers deep integration to SharePoint 2007. Community Server 2008 is a natural fit for SharePoint organizations looking to enable enterprise-ready blogging. With the Enterprise edition of Community Server 2008, you can take advantage of the following benefits, as reported by the Microsoft SharePoint Team’s press release on their blog: T
Fully Integrated Experience Community Server: This is fully integrated into SharePoint through single sign-on and custom SharePoint Web Parts, along with deep support for SharePoint management of these new capabilities.
T
Enterprise Grade Blogging Utilizing Community Server: Enterprise-grade blogging product users of SharePoint can interact with Community Server blog content, allowing the user to view blog content in SharePoint and read, comment on, and post content. Community Server’s built-in support for rich media, moderation tools, permissions, and more bring SharePoint blogging to a whole new level.
T
Feature-rich forums: SharePoint users will benefit from the incredibly rich Community Server Web 2.0 message boards with full support for read, reply, and posting all within SharePoint. To unlock the full features of the forums, users can still go directly into their Community Server forums.
T
Social Streams Community Server: New Social Streams feature is additionally available in SharePoint. Similar to Facebook-style user activity, you will be able to browse a chronological list of updates from what your friends are doing both within SharePoint and Community Server. Figure 5-35 shows the Social Streams exposed via a Web Part in SharePoint.
T
Rich, detailed reporting: Utilizing the new Harvest® Reporting Server suite, you can now extract a tremendous amount of rich detail about how your users are using Community Server’s social networking and collaboration functionality.
Summar y The old business adage holds that the critical success factor for any enterprise is location, location, location. In the boundary-less world of the Internet, the critical success factors for any site, including blogs, is content, content, content. If your content is current and interesting, the intended audience will keep coming back for more. As an organization considering a blog for internal or external content, keep the commitment to fresh and relevant content at the top of the priority list. Beyond that, the balance of openness versus protectiveness is an individual decision. Try not to be too restrictive with the policies governing your blog. Be sure to encourage bloggers to post as frequently as possible with pertinent and exciting content. Key takeaways about blogs:
160
T
Blogs are among the oldest and most widely understood social computing applications. They have the capability to reach broad audiences inside and outside of an organization’s network.
T
Employee blogs can be a powerful force for knowledge sharing and improving organizational transparency, but a good set of governance policies is a must for self-protection.
12:49pm
Page 160
Schwartz c05.tex
V3 - 12/26/2008
12:49pm
Chapter 5: Blogs
Figure 5-35
T
Pay attention to blogs and the comments received. This includes blogs hosted by the company, blogs written by employees and former employees publicly available on the Internet, and blogs run by people who have no formal connection to the organization. Monitoring blogs and the comments on them can help companies understand how they are perceived in the marketplace, sometimes before expensive legal procedures become necessary.
The next chapter will cover RSS and ATOM syndication technologies and how these powerful concepts can be put to work in SharePoint to help you build a powerful set of social computing technologies.
161
Page 161
Schwartz c05.tex
V3 - 12/26/2008
12:49pm
Page 162
Schwartz
c06.tex
V3 - 12/26/2008
1:43pm
RSS and Atom As previously mentioned in chapter 5, blogs are a great way to publish and share information with friends and colleagues. However, it is not easy keeping up with multiple news sources. This is where RSS technology comes into play. With RSS, it is easy subscribe to the content of such blogs or sites and control the frequency for when this information is received. This approach is very different from email distribution groups and listservs, which broadcast information whenever there is information to send.
What Are RSS Feeds? With the popularity of social networking sites today, it is almost certain that many people have used RSS at one point or another. This is because this technology is the backbone of such sites and its popularity continues to grow as people see new ways to utilize this powerful technology. Enterprise RSS is becoming popular as well, and it makes perfect sense given the success of it outside of the enterprise. But what exactly is RSS? RSS feeds, XML feeds, and syndicated content contain frequently updated content published by a site. These technologies are also used to update news, blogs, or other sites, and they can include several different types of content such as audio, pictures, or video files. One can subscribe to such content to obtain the absolute latest information published by the author of the RSS feed. But why cover such technology on a book that is all about social networking and SharePoint? This chapter explains how RSS plays a tremendous role in disseminating information that resides in SharePoint. This chapter will give you as much insight as possible on this technology, which remains one of the hottest technologies out there and is possibly one of the least understood. It is, in fact, the backbone technology that drives many of the social networking sites out there now, including Microsoft Office SharePoint Server (MOSS).
Page 163
Schwartz
c06.tex
V3 - 12/26/2008
Chapter 6: RSS and Atom
Why You Need RSS? The world is a fast-moving place with news stories and articles of interest about a wide variety of topics appearing online at an incredible rate. Keeping up with a single news source is not very difficult. If you visit a web site and check for new content, you can revisit a few hours or days later and check again for new content. This simple process becomes a bit tedious when there are five or six web sites that require frequent polling. Now imagine managing this process when there are a hundred or more sites! Who has the time and the mental discipline to do this? This is exactly where RSS comes into play. Using RSS, one could pull the information from all of these source sites and display this information on a single page or in a single application. Figure 6-1 shows a single web page that is importing content from three different news sources. This single destination for news and articles, harvested via RSS from dozens of other sites, may be one of the greatest advances in the management of the Information Age deluge of data.
Figure 6-1
What Does RSS Mean? RSS stands for Really Simple Syndication (2.0). It is a feed that is distributed in a common XML format. It is also referred to as feed or web feed. The RSS acronym has also been referred to as Rich Site Summary (0.91) version [Libby, Dan (1999-07-10), RSS 0.91 Spec, revision 3]. Because RSS has a common format, many RSS publishing applications only have to worry about publishing content once. After the content has been published as an RSS feed, consuming programs can retrieve the information, regardless of what type of program it is, be it a desktop application or web-based application. There are many popular programs, typically referred to as RSS readers or RSS aggregators that are able to read the RSS feeds. Both Internet Explorer and Firefox support RSS feeds as a type of live bookmark. Bloglines is a popular free RSS reader web site designed to make the consumption of blogs easy to do from any computer in the world. Those desiring a rich client application on their computers can turn to Outlook and the free Omea Reader from JetBrains (www.jetbrains.com/omea/reader) as consumers of RSS feeds. WSS (Version 3) and MOSS 2007 both come with a built-in XML Web Part that allows a user to easily import news headlines and RSS feeds from any source. This XML Web Part will be discussed in more depth later.
164
1:43pm
Page 164
Schwartz
c06.tex
V3 - 12/26/2008
1:43pm
Chapter 6: RSS and Atom
Histor y of RSS RSS had its inception in the late 1990s. Below is a timeline taken from W3 Schools (www.w3schools.com/ rss/rss_history.asp) that gives an overview of the events took place as this technology evolved. W3 Schools is a free training web site focused on web-building technologies, including RSS. The History of RSS: T
1997: Dave Winer develops Scripting News. RSS was born.
T
1999: Netscape develops RSS 0.90, which supported Scripting News. This was simply XML with an RDF header.
T
1999: Dave Winer at UserLand develops Scripting News 2.0b1. This included Netscape’s RSS 0.90 features.
T
1999: Netscape develops RSS 0.91. In this version, Netscape removed the RDF header, but included most features from Scripting News 2.0b1.
T
1999: UserLand gets rid of Scripting News and uses only RSS 0.91.
T
1999: Netscape stops its RSS development.
T
2000: UserLand releases the official RSS 0.91 specification.
T
2000: A group led by Rael Dornfest at O’Reilly develops RSS 1.0. This format uses RDF and namespaces. This version is often confused as being a new version of 0.91, but this is a completely new format with no ties to RSS 0.91.
T
2000: Dave Winer at UserLand develops RSS 0.92.
T
2002: Dave Winer develops RSS 2.0 after leaving Userland.
T
2003: The official RSS 2.0 specification is released.
Today, RSS is the backbone technology for almost any social networking site, whether it is a public or corporate intranet site.
Structure of an RSS Feed As mentioned previously, an RSS feed has a common format or structure and includes metadata that describes the feed. Below, you can see within the Channel XML tag. One important metadata tag is the ttlchar:Code in Text. This indicates the time to live for this specific published content. An RSS reader can have specific settings that affect how often you get the newest data. We will show you how to change these settings in Outlook 2007 and Internet Explorer 7 later. version="1.0"? rss version="2.0" channel titleLift Off News/title linkhttp://liftoff.msfc.nasa.gov//link descriptionLiftoff to Space Exploration./description languageen-us/language pubDateTue, 10 Jun 2003 04:00:00 GMT/pubDate lastBuildDateTue, 10 Jun 2003 09:41:01 GMT/lastBuildDate
165
Page 165
Schwartz
c06.tex
V3 - 12/26/2008
Chapter 6: RSS and Atom docshttp://blogs.law.harvard.edu/tech/rss/docs generatorWeblog Editor 2.0/generator
[email protected]/managingEditor
[email protected]/webMaster ttl5/ttl item titleStar City/title linkhttp://liftoff.msfc.nasa.gov/news/2003/news-starcity.asp/link descriptionHow do Americans get ready to work with Russians aboard the International Space Station? They take a crash course in culture, language and protocol at Russia’s Star City./description pubDateTue, 03 Jun 2003 09:39:21 GMT/pubDate guidhttp://liftoff.msfc.nasa.gov/2003/06/03.html#item573/guid /item item titleSpace Exploration/title linkhttp://liftoff.msfc.nasa.gov//link descriptionSky watchers in Europe, Asia, and parts of Alaska and Canada will experience a partial eclipse of the Sun on Saturday, May 31st. /description pubDateFri, 30 May 2003 11:06:42 GMT/pubDate guidhttp://liftoff.msfc.nasa.gov/2003/05/30.html#item572/guid /item /channel /rss
RSS Specification Versions Currently, there are several versions of the RSS format. Listed below are some of the existing versions. According to www.syndic8.com, the most popular versions are 0.91, 1.0, and 2.0. Of these, RSS 2.0 accounts for 67 percent, and 0.91 only accounted for 13 percent of usage worldwide. These numbers do not include the Atom format. T T
RSS 0.90: Originally developed by Netscape, it was called RDF Site Summary. RSS 1.0: This was developed by the RSS-DEV Working Group (http://en.wikipedia.org/wiki /RSS-DEV_Working_Group)
T
RSS 1.1: This open format is intended to replace RSS 1.0.
T
RSS 0.91: This is definitely a much more simplified version released by Netscape.
T
RSS 0.92: This is more of an expansion of 0.91 format.
T
RSS 2.0.1: At this point, the meaning of the acronym RSS is changed to Really Simple Syndication, as it is known today. On this version, an explicit extension mechanism using XML namespaces was implemented.
Differences on Atom and RSS Despite the success of RSS 2.0, there are some areas where it falls short. The RSS 2.0 format was frozen at one point to maintain stability of the program. However, due to its limitations, Ben Trott advocated
166
1:43pm
Page 166
Schwartz
c06.tex
V3 - 12/26/2008
1:43pm
Chapter 6: RSS and Atom the creation of a new format. Consequently, Tim Bray and others formed a standards group called the Atompub working group, which eventually created Atom. The name Atom actually refers to two standards. The Atom Syndication Format and Atom Publishing Protocol (AtomPub or APP) is an HTTP-based protocol for creating and updating web resources. There are at least four areas where Atom differs from the RSS format.
Content Model RSS 2.0 typically allows for plain text or escaped HTML as payload, where one is not able to indicate which format of the two is being provided. On the other hand, Atom provides a mechanism to explicitly label the type of content being provided, which is helpful when applications receiving the syndicated content are attempting to figure out how to decode and display the HTML payload. In addition, Atom allows for broad variety of payload types, such as XHTML, XML, Base64-encoded binary, and references to external documents.
Date Format RSS 2.0 specification relies on the use of RFC 822 formatted timestamps to communicate information about when items in the feed are created or last updated. In contrast, Atom uses timestamps formatted according to the rules specified by RFC 3339, a subset of ISO 8601. The difference is that the Atom date format is easier to represent in XML schemas, making Atom easier to program against.
Internationalization While RSS has a mechanism to indicate a language for the feed, the publisher does not have the ability to specify the language for individual items or text elements. To address this shortfall, Atom uses xml:lang attribute to allow specification of language context for every piece of information on the feed. In addition, while Atom allows the use of characters outside the U.S. ASCII character set, RSS does not.
Modularity Elements of the RSS vocabulary are not reusable in other XML vocabularies. The Atom syntax was designed to allow this reusability outside of the context of an Atom feed. The following is an example of an Atom feed: version="1.0" encoding="utf-8"? feed xmlns="http://www.w3.org/2005/Atom" titleExample Feed/title subtitleA subtitle./subtitle link href="http://example.org/feed/" rel="self"/ link href="http://example.org/"/ updated2003-12-13T18:30:02Z/updated author nameJohn Doe/name
[email protected]/email /author idurn:uuid:60a76c80-d399-11d9-b91C-0003939e0af6/id entry titleAtom-Powered Robots Run Amok/title
167
Page 167
Schwartz
c06.tex
V3 - 12/26/2008
Chapter 6: RSS and Atom link href="http://example.org/2003/12/13/atom03"/ idurn:uuid:1225c695-cfb8-4ebb-aaaa-80da344efa6a/id updated2003-12-13T18:30:02Z/updated summarySome text./summary /entry /feed
SharePoint Search Results and RSS One fantastic feature that comes with MOSS is the ability to subscribe to search results, whether you are looking for colleagues or simply would like to keep tabs on specific content on a site. This is an excellent way to stay updated with specific content of interest to you and get notified immediately if new items that meet this criterion have been added, removed, or modified from a SharePoint site. The best part is that you can see these updates right on your Outlook 2007 inbox. You have the ability to subscribe to search results by clicking the RSS icon on the top right corner of the Search Results page. Figure 6-2 shows a standard SharePoint search results page. Notice the RSS icon in the upper right, above the paginated results. This RSS icon is the gateway to the RSS feed, which can be added to Outlook or other feed-reading applications.
Figure 6-2
People Search While document and data RSS searches are important for SharePoint, one of the most powerful uses of this feature is searching for other individuals within a particular company. One can use the People Search
168
1:43pm
Page 168
Schwartz
c06.tex
V3 - 12/26/2008
1:43pm
Chapter 6: RSS and Atom to not only stay connected with people within a company or group. Thus, this is one of many social networking elements now available in SharePoint, but it can also be invaluable for project managers, as explained with the following scenario: Imagine a manager who is trying to network with other managers to identify the right resources to staff a project. Here is a step-by-step guide on how that manager would go about finding people within his or her company by using SharePoint. Go to the Advanced Search page, and click the People tab. There are a couple options here. Enter a keyword in the Search box, or expand the Search options. When the Search options are expanded, users are able to search by name, title, skills, department, and even distribution membership. Figures 6-3 shows the Advanced Search form a user might see when he or she is preparing to perform a People Search operation in SharePoint.
Figure 6-3 Figure 6-4 shows the results of a people search. One of the first things you will notice about Figure 6-4 is that users have the ability to refine their search by selecting either a known job title or department. When you click a job title, for instance, SharePoint will return all the people who contain that specific job title on their profile. This search assumes that this type of information is available and populated via the Profile Import using the Shared Service Provider Administration site. In most organizations, the Profile Import tool is pointed at the company’s Active Directory, which traditionally functions as a mechanism for allowing users access to the network as well as storing a variety of information about each user. Microsoft Exchange also takes advantage of Active Directory to build company directories.
169
Page 169
Schwartz
c06.tex
V3 - 12/26/2008
Chapter 6: RSS and Atom
Figure 6-4
Search Action Links There is a lot of useful information on the People Search Results page. First, draw your attention to the top right-hand corner of the Search Results page. Here, you have an Action Link bar that allows you to do several things. For instance, it is possible to toggle between a relevance and social distance result. Social distance is discussed further in the next section. The Alert Me link allows users to subscribe to the search results and receive email alerts with any changes to this saved set of search results. Finally, the RSS link allows you to subscribe to this People Search results and view updates in your favorite RSS reader application. Imagine how powerful this can be! As an example of how this could be useful, it would be possible to use these techniques to keep track of who in the company is part of an organizational group, even as that group’s membership changes.
Social Distance versus Relevance On this Action Link bar, you will see that your results are ordered by social distance. People search results are returned by social distance by default. What is social distance? It is simply a way to order the results by how close one is to his or her colleagues according to the organizational chart information stored in each user’s Active Directory profile. If you look closely on the People Search Results page in Figure 6-4 above, you can see that the results are grouped. The first group shown is your colleagues, then colleagues of your colleagues, and, finally, everyone else. When you view the People Search results by relevance, social distance is ignored. In terms of relevance, people’s profiles are ranked the same as in a search for documents and lists, that is, by how closely the person’s profile information matches the search keywords.
170
1:43pm
Page 170
Schwartz
c06.tex
V3 - 12/26/2008
1:43pm
Chapter 6: RSS and Atom
Syndicating SharePoint Lists Using RSS Another helpful feature available to SharePoint 2007 is its RSS-enabled lists. This is extremely powerful, and it can be especially helpful when someone is a member of several sites and needs to track information on all these sites. Here is a scenario where this feature is quite useful: Imagine a user is involved in multiple projects and is a member of multiple project sites on the company’s SharePoint portal. Each of these project sites has several lists that contain important information the user needs to keep track of. The user could subscribe to content in the lists to keep updated on changes and additions. The user has the option of using alerts, which email the user the instant a change is made. However, multiple project sites, each with multiple subscribed lists, has the potential to generate a lot of email messages, which would be mixed in with all the other email messages that the user receives. On the other hand, if the user were to subscribe to the lists via RSS instead, the user could effectively view all this information right from Outlook 2007 or Internet Explorer in a single view. Figure 6-5 shows how a user can subscribe to any list’s RSS feed by selecting the View RSS Feed option under the list’s Actions menu.
Figure 6-5 As shown in Figure 6-6, once a user has subscribed to a list via RSS, both Internet Explorer and Outlook 2007 will display the syndicated content. To view feeds on Internet Explorer, visit the Favorites Center. (Press Alt+C inside of Internet Explorer to get there quickly.) A list of subscribed feeds will appear.
171
Page 171
Schwartz
c06.tex
V3 - 12/26/2008
Chapter 6: RSS and Atom
Figure 6-6 Even if the organization does not currently have an enterprise-level RSS implementation to aggregate multiple sources of data, users can reap the benefits of this technology within the SharePoint platform. See the Success Factors for RSS in Organizations section for more information on enterprise RSS implementations.
Enabling or Disabling RSS It is worth mentioning that all of the SharePoint lists allow for RSS syndication. However, this feature can be disabled if needed. RSS syndication can be enabled or disabled either at Web Application, Site Collection, or List level. When it is disabled at the Web Application level, site administrators are no longer able to view the RSS link on the Site Settings menu. Figure 6-7 shows the Central Administration’s Web Application settings screen, found on the Application Management tab. Near the bottom of this screen is the on/off switch for RSS for the entire web application. If RSS is enabled at the Web Application level, a site administrator is able to further configure RSS settings, as shown in Figure 6-8. This is accomplished by going to the Site Settings under Site Administration and then clicking RSS. It is worth mentioning that the copyright, managing editor, webmaster, and time to live are all fields that are mapped to the channel elements on the RSS XML that SharePoint outputs.
Enabling a SharePoint List to Syndicate via RSS When the decision is made to configure a SharePoint list to syndicate content via RSS, there are several available options. By default, RSS is enabled on each list. To configure a list so it stops syndicating its content via RSS, simply click the List Toolbar settings under List Settings. This will open to the List Settings page. Under Communication, the RSS configuration link will open the Modify List RSS Settings page, as seen in Figure 6-9. This page contains the option to enable or disable RSS for the given list, as well as the option to configure the channel information, available columns, and item limit for the feed.
172
1:43pm
Page 172
Schwartz
c06.tex
V3 - 12/26/2008
1:43pm
Chapter 6: RSS and Atom
Figure 6-7
Figure 6-8
173
Page 173
Schwartz
c06.tex
V3 - 12/26/2008
Chapter 6: RSS and Atom
Figure 6-9
Channel Information Users are given several options to configure what gets published on a list, including the ability to specify a meaningful feed title and description. This is helpful when the list does not have a name that is meaningful on its own. This is frequently seen when a list is part of a larger application or process that relies on the list as a data storage mechanism. Another controllable setting in the channel information group is whether to display an entire article or just the first 256 characters when the RSS reader pulls the feed data. Additionally, it is possible to specify a custom image for the feed.
Columns One of the most helpful settings is the ability to select which columns and in what order these will appear on the feed. Many times, there will be numerous columns in the list, but it is not necessary to have all of those columns published on the feed. Ultimately, SharePoint builds the RSS XML based on these settings with required columns indicated by an asterisk (*) next to the column name. Some of these columns are mapped to standard RSS tags, such as title.
Item Limit The feed typically includes the most recent changes. If an item limit is not specified, it defaults to 25. In addition, it is possible to specify the maximum days to include an individual item. For example, if
174
1:43pm
Page 174
Schwartz
c06.tex
V3 - 12/26/2008
1:43pm
Chapter 6: RSS and Atom configured for seven days, the feed will only show data that goes back seven days from the current date, up to the maximum number of items specified. If the maximum number is not reached before the configured date span limitation, the feed will simply feature fewer items than the maximum allowed.
Changing RSS Subscription Settings In addition to being able to subscribe to SharePoint list’s contents, you are given the ability to configure certain settings for that specific subscription right through Internet Explorer 7. To view these settings, subscribe to a SharePoint list’s RSS feed, as seen in Figure 6-10.
Figure 6-10
Return to the list. Then click the Internet Explorer toolbar option, View RSS Feed. SharePoint knows that the browser is already subscribed to the list, so it opens a page that prompts the user to make changes to the subscription by offering a link to the feed properties. When the user clicks the View Feed Properties link, a dialog box is provided, allowing the user to make changes. This dialog box, seen in Figure 6-11, allows users to change the name of the subscription, how frequently data is pulled, if Internet Explorer should download attached files, and how many items it should keep in the feed’s archive history. This archive option is important because it affects the size of the user’s inbox in Outlook 2007 when synchronizing RSS feeds between Internet Explorer and Outlook 2007.
175
Page 175
Schwartz
c06.tex
V3 - 12/26/2008
Chapter 6: RSS and Atom
Figure 6-11
Applications to View RSS At the beginning of this chapter, RSS was advocated as an application-independent content stream, easily consumed by a multitude of RSS reader applications. The vast majority of these applications are from third parties, but Microsoft does offer Outlook 2007 and Internet Explorer.
RSS Capabilities in Outlook 2007 One feature that is easy to appreciate from Outlook 2007 is the built-in RSS reader. It is now possible to view and manage all RSS subscriptions right from the inbox. Outlook also tracks unread items from each blog or site subscription. Figure 6-12 shows the Outlook RSS experience, complete with dozens of tracked blogs available in an extremely familiar format. Managing RSS feeds in Outlook is done through the application’s Account Settings dialog box, as seen in Figure 6-13.
RSS Reading Capabilities on Internet Explorer 7 Another application that supports subscriptions to RSS Feeds is Internet Explorer 7. Whenever Internet Explorer 7 is browsing a site and the site offers an RSS feed, the icon on Internet Explorer on the top right corner will be highlighted to indicate the site allows readers to subscribe via RSS to its content.
176
1:43pm
Page 176
Schwartz
c06.tex
V3 - 12/26/2008
1:43pm
Chapter 6: RSS and Atom
Figure 6-12
Figure 6-13
177
Page 177
Schwartz c06.tex
V3 - 12/26/2008
Chapter 6: RSS and Atom A really handy feature of Internet Explorer is that it can keep its list of RSS subscriptions synchronized with the Outlook 2007 RSS reader. This is great for users who like the Outlook RSS reading experience because, when a user browses a site and chooses to subscribe, Outlook will automatically have the new subscription added.
Email versus RSS Why use RSS instead of email? This topic has been debated quite a bit on various online articles. Essentially, it truly boils down to what is convenient for you personally. While RSS proves to be highly valuable for FYI type of information, email is typically used for actionable and two-way communication. Because of the many security measures implemented within a corporate environment, such as firewalls and anti-spam, it is highly unlikely that 100 percent will reach its recipient. Many corporate managers now decide between getting flooded with junk mail or running the risk of potentially missing an important message. For example, when an organization needs to send a report or corporate newsletter, RSS starts looking a lot more appealing, especially since the user is able to control how often he or she receives the information. Firewalls and spam traps don’t stop RSS.
You Tr y It It is fairly straightforward to subscribe to RSS content in SharePoint. But, as the number of subscriptions grows, there could be some manageability issues. For instance, how can one track his or her favorite RSS items? How does a user share his or her favorite items with friends and coworkers? Better yet, how can a user search multiple RSS feed subscriptions?
Bringing SharePoint List RSS Subscriptions to the Desktop Internet Explorer and Outlook are examples of rich client applications, but they are not the only game in town. This walkthrough offers the opportunity to try a new client application or two.
FeedDemon NewsGator’s FeedDemon, available for free at www.newsgator.com/Individuals/FeedDemon, is currently one of the most popular and highly rated RSS readers out there. It is a highly versatile RSS reader that allows users to keep up with their growing RSS subscriptions. Through this walkthrough, we assume you are working internally within your company’s corporate network to subscribe to SharePoint RSS content. FeedDemon can access secured SharePoint RSS content as well. At the time you subscribe to a feed, you are given the option to configure credentials. These credentials are used to access the feed in secured SharePoint sites. The following list of FeedDemon’s features comes right from the NewsGator web site: T
178
Newspaper format: When you select a channel, FeedDemon’s tabbed browser displays the channel’s news items in a newspaper for easy reading. You can display a newspaper of news items for an entire folder or view one feed at a time.
1:43pm
Page 178
Schwartz
c06.tex
V3 - 12/26/2008
1:43pm
Chapter 6: RSS and Atom T
News bins: You can store news items in a central location and collect items from different channels. If you find an interesting item that you might want to read again, just store it in a news bin for future reference. News bins are synchronized through the NewsGator Online platform so you can read these items from FeedDemon on other computers as well as other NewsGator readers.
T
Synchronization: Once you read a post in FeedDemon, it is marked as read in other NewsGator readers.
T
Shared experience: You can see what news is popular with other NewsGator users and find out who is linking to the news you’re reading.
T
Video: You can watch embedded video right within the newspaper view.
T
Panic button: Have you ever gone on vacation and gotten a little behind on your reading? The Panic button solves this and many other problems by quickly marking all older items read.
Finding Feeds: T
Watches: You can look for keywords in news items as they’re downloaded. After you create a watch, it examines every incoming news item whenever any channel is updated.
T
News comes to you: You can subscribe to feeds from all over the Web or choose some of the dozens of default feeds.
T
Search: You can search outside of FeedDemon’s subscriptions by selecting a feed search engine. Then enter your keyword. FeedDemon will subscribe to a dynamic channel containing the search results for that keyword.
Other: T
Podcasts: Powerful podcasting tools enable you to download audio files and automatically copy them to your iPod or other media player. The bundled FeedStation utility enables you to schedule your downloads so they happen overnight while you’re asleep. When you wake up, you’ll find new audio waiting on your media player of choice.
Installing FeedDemon Run the setup file, click Next on the setup screen, accept the license agreement, and click Next. NewsGator allows you to create a NewsGator account, which is used to synchronize your feeds with NewsGator Online, a web-based RSS Reader that allows you to access your feeds from different locations, for example, when using an RSS reader WebPart in SharePoint or using your mobile device. You can also choose to skip this step entirely and just start using FeedDemon.
Importing Existing Subscriptions The initial setup process allows you to import your current subscriptions. These can be from various sources, such as RSSBandit, Bloglines, NewsGator, or your Windows Common Feed List, which shows on your Internet Explorer 7 Favorites Center when you click the Favorites icon or press Ctrl+C. We selected Windows Common Feeds List so we can demonstrate how to view existing SharePoint RSS subscriptions within this tool.
179
Page 179
Schwartz
c06.tex
V3 - 12/26/2008
Chapter 6: RSS and Atom Once you selected to import your feeds, you are able to see all of your subscriptions on the main interface. Again, this tool makes it easy for you to manage existing subscriptions. Now it’s time to view all the imported RSS subscriptions and the one we just added. You can see those on the left pane of Figure 6-14. On the top right corner, you can search across your feeds by using keywords.
Figure 6-14
Managing Feed Properties If you wish to change properties of a feed, simply right-click on it to see the Feed Properties dialog box, as shown in Figure 6-15. You are given the option to change things such as feed title, URL, and homepage. In addition, you can disable the feed so it no longer updates, excludes the feed from all watches, or includes desktop alerts for when new items arrive. On the Updating tab, seen here in Figure 6-16, you are given the option to enter how many most recent items to keep. You can also update how often it is updated. On the Advanced tab, we get an array of options. One of the ones we found very interesting is the one that allows you to unsubscribe to a feed if it has not updated for a configurable number of days, defaulting to 60 days.
Subscribing to a SharePoint RSS Feed First, browse to a SharePoint list that you would like to subscribe to. Click Actions, and select View RSS Feed on the List toolbar. Alternatively, you can click the RSS icon on top right corner of Internet Explorer, seen again in Figure 6-17.
180
1:43pm
Page 180
Schwartz
c06.tex
V3 - 12/26/2008
1:43pm
Chapter 6: RSS and Atom
Figure 6-15
Figure 6-16
Figure 6-17
181
Page 181
Schwartz
c06.tex
V3 - 12/26/2008
Chapter 6: RSS and Atom On the next page, right-click the Subscribe to This Feed link, and select Copy Shortcut. Now go to FeedDemon. Press Ctrl+N, or select File and New Subscription. In the Subscribe to a Feed dialog box, seen in Figure 6-18, paste the SharePoint feed URL that you just copied. Leave the checkbox to check for problems. As shown in Figure 6-19, once you click Next, you may get a message that tells you that this feed requires a username and password. At this point, if you enter credentials to the SharePoint site, FeedDemon will remember and store those for future use.
Figure 6-18
Figure 6-19 This concludes the tour of NewsGator’s FeedDemon and its ability to subscribe to secured SharePoint RSS feeds. The application offers a wealth of additional features not found in most other products, including the ability to learn your reading habits and share interesting discoveries with others.
182
1:43pm
Page 182
Schwartz
c06.tex
V3 - 12/26/2008
1:43pm
Chapter 6: RSS and Atom
Windows Vista Gadget Feed Headlines Another great way to stay up-to-date with your SharePoint RSS feeds is by bringing your RSS subscriptions directly to your desktop by using Windows Vista Gadget Feed Headlines. For example, in Figure 6-20, we subscribed to a SharePoint list called PSD Events. When a particular item is clicked, we are able to see more details about that item. The Vista Gadget is a great, lightweight way to bring your subscriptions to your desktop. It is continuously available with no requirements for specific applications to be opened and running.
Figure 6-20
Viewing People Search Results RSS Feed Subscription As previously mentioned, you are able to subscribe to People Search Results via RSS. We have shown you how to view your RSS subscription via Outlook 2007 and Internet Explorer 7. But there is definitely value in being able to view fresh SharePoint information on your desktop without having to constantly go to the SharePoint site. Keeping up-to-date with your colleagues is easy. Simply configure the RSS Headlines Vista Gadget to point to your People Search Results RSS subscription, as seen in Figure 6-21.
Figure 6-21
Success Factors for RSS in Organizations Information overload in the corporate environment is a real problem for many organizations. Today, many information workers face an abundant amount of information from various sources. RSS has been proven to be efficient for individuals within an organization. However, having an unmanaged
183
Page 183
Schwartz
c06.tex
V3 - 12/26/2008
Chapter 6: RSS and Atom RSS solution can be detrimental to the enterprise. This can affect network bandwidth. Needless to say, security issues can arise. Having a well-planned enterprise RSS implementation is crucial to being successful in using this technology. Forrester Research has published several whitepapers that talk about why companies should consider having an enterprise RSS platform. Amongst other topics, these whitepapers highlight that a company should have a focus such as communication, aggregation, or marketing when implementing an enterprise RSS solution. It also highlights that some groups within an organization are more prepared than other groups when it comes to adopting this technology. Most solutions, if not all, are placed behind a firewall for better security. Forrester offers the whitepaper titled Using RSS As A Marketing Tool, written in July 2005 by Charlene Li, for free at www.forrester.com/Research/Document/Excerpt/0,7211,35005,00.html. There are several companies in the marketplace offering software to tame the RSS chaos. Companies such as Attensa (www.attensa.com) and NewsGator (www.newsgator.com) offer such enterprise RSS server products. These products add aggregation, filtering, analysis, and increased security of enterprise RSS internal and external feeds. In addition to these features, these products also make it easy to target content to various users or groups since they integrate with existing LDAP implementations.
Enterprise and Community Contributions While SharePoint 2007 comes with built-in RSS capabilities, there is always room to improve on the functionality. Perhaps you have specific needs that the built-in RSS capabilities in SharePoint does not meet. When that is the case, you have an abundant number of resources at your disposal from the SharePoint community. The following open source component can be used in your SharePoint deployment to aggregate RSS feeds in a single location.
RSS FeedReader by Tim Heuer This open source Web Part on CodePlex (www.codeplex.com/FeedReader) allows you to aggregate RSS feeds, a capability not available from the OOB RSS reader Web Part, from various sources. Tim has done a great job in making it easy for one to install the custom Web Part by following best practices in packaging his work as a SharePoint Solution File. Figure 6-22 shows the RSS Feed Reader consuming and grouping multiple blogs inside of the same Web Part. Depending on your environment, you may need to use a proxy server when using either the OOB RSS reader Web Part or any custom-built RSS reader Web Part. You have two options to configure proxy settings.
Web Config File You can configure proxy settings by modifying the web.config file on your portal. The following code can be added to your config file. Note that, if you use this method, you will need to ensure your proxy server allows non-user–authenticating traffic from your SharePoint box as you are not able to specify an account on the settings below. system.net defaultProxy proxy proxyaddress="server:port" bypassonlocal="true" / /defaultProxy /system.net
184
1:43pm
Page 184
Schwartz
c06.tex
V3 - 12/26/2008
1:43pm
Chapter 6: RSS and Atom
Figure 6-22
Figure 6-23
185
Page 185
Schwartz
c06.tex
V3 - 12/26/2008
Chapter 6: RSS and Atom
Web Part Properties The second option is to configure proxy settings for this particular Web Part by entering a proxy address and port on the Web Part Properties pane, as depicted below. Once you entered a semicolon-delimited list of feed URLs, you should see your feeds displayed, as shown in Figure 6-23.
Summar y In this chapter, we have shown you how RSS technology has been integrated into the SharePoint platform. Via built-in RSS capabilities, one is able to display an array of information on a page. We also showed you how easy it is to enable or disable RSS at the different levels on SharePoint. In addition, we have reviewed several RSS solutions that exist to augment the RSS capabilities that currently exist on SharePoint. We also covered a couple of tools that allow you to manage your RSS feed subscriptions and allow you to search, flag, and share them. But, most importantly, we showed you how easy it is to bring your SharePoint RSS subscriptions or data to your desktop. Key takeaways from this chapter include: T
RSS is a syndication technology that enables the publication of web content to a variety of reader applications.
T
SharePoint offers a multitude of configurable RSS feeds on list content and search queries, enabling users to keep their fingers on the pulse of numerous SharePoint repositories and activities
T
While RSS is a great alternative to potentially disruptive email alerts or burdensome manual visits to content sources, RSS feeds themselves are ripe for aggregation and analysis with tools like Omea Reader, NewsGator’s FeedDemon, and enterprise RSS platforms.
The next chapter will focus on social networking and how this concept works to bring people closer together by helping them discover commonalities they may have been previously unaware of.
186
1:43pm
Page 186
Schwartz c07.tex
V3 - 12/26/2008
1:59pm
Social Networking The term social networking has been used in various capacities with a number of explanations for each. It has been used to describe anything from establishing relationships between people to free-form content publishing on the Web. Although the term may be relatively new on the Web, the concept has been around for many years. Most people today are involved in the act of social networking in some way or another, sometimes without even realizing it. This chapter will take a look at what social networking means to different people and how technology has helped bring new value to an old concept. After an overview, the chapter will turn to how social networking can be used in SharePoint to provide real-world solutions to common business problems. A social network is a collection of people establishing associations with each other based on a common set of values. The connections are typically related to factors such as friendship, common interests, hobbies, sports, family ties, schoolmates, interest topics, and more. The resulting web of social connections is vast in structure and can often be complex. Notice that this concept does not require software or computers. Social networks have existed in the real world for as long as people have walked the earth. Expanding the reach of physical social networks and allowing the discovery of entirely new networks is where connected computers and software come into play. If you have ever taken the time to join an online service providing social networking, such as MySpace or Facebook, you quickly realize that it does not take long to establish relationships and build your own online presence. The feeling can be overwhelming as you search for friends, colleagues, family members, or even that crush you had in high school. Creating a profile takes only minutes. Then you add friends to establish your own network. Before long, invitations will come from old and new friends who are adding you to their network. Although you are now part of a much larger social networking community, the simple fact is that, even though the networks can be complex, the power and the value gained can be simple and very beneficial. Today, social networking provides us the means to unlock unrealized potential of our personal network. Let’s do some scenario-building. John is a help desk technician at a small insurance company, and he has recently given thought to applying for a new position that would utilize his network management skills. Like many people, he has tried to submit his r´esum´e on web site job openings, but he has had little success. Recently, he noticed a post on his LinkedIn bulletin area for a
Page 187
Schwartz
c07.tex
V3 - 12/26/2008
Chapter 7: Social Networking networking job at a company right near his home. It turns out the posting was created by his sister’s best friend, who also happens to be on LinkedIn and part of his social network. After making a couple of phone calls, John arranged an interview for the following week. In contrast, the same scenario would most likely not occur without software-based social networking. In reality, personal networks remain mostly hidden, frequently providing little to no value. So how can businesses now harness the potential of hidden networks and information to improve their bottom line? Initially, it seemed as if Web 2.0 and social networking were not going to be included as part of the business IT delivery strategy. The notion was that social networking only yielded benefit for personal objectives. People used social networking sites on the Internet to connect to friends and waste time. The business value was not apparent. Additionally, the ability for employees to publish uncensored information on corporate networks only introduced further concerns among information security officers (ISOs) and human resources departments. So what was it going to take for businesses to capitalize on the rapidly growing social networking phenomenon? Like many things in life, businesses adapt over time. Soon enough, business software emerged on the shelves that targeted social networking capabilities such as blogs, wikis, and personal spaces. This new grade of social networking software included enterprise-level features expected from business software. Areas such as multiple authentication models, role-based security, intelligent censorship, corporate branding, and audience targeting were included to address many of the concerns. How does SharePoint respond to these issues and deliver a social networking service? The best way to answer this question is to examine the tools provided by the SharePoint platform in the context of a real-world scenario. As you work through the chapter, consider some of the sites that are outlined as well as why some succeeded and why some failed. Be conscious of some of the success factors that helped some succeed. Determine which ones may help your organization. In order to begin building your organization’s social networking service, we will look into the history of social networking and how it has evolved over time.
The History of Social Networking The history of social networking, in theory, has been around for thousands of years when humans began developing civilizations and establishing trade. The network of personal connections established some of the first identifiable social networks between humans. Societies, during those times, were very reliant on strong social networks to cultivate order and achieve both individual and social progress. Resources that provided answers like we have today were not readily available. If a society member wanted something, he had to go out and get it. If the local craftsman did not have the particular item a person was in search of, he might be able to refer the searcher to another craftsman who may have it. The search would continue, including immediate and likely distant connections, until the item was found. This behavior was common in many facets of early civilization. Although the history of social networking can be an in-depth topic, the remainder of this section will maintain within the boundaries of social networking as it relates to the World Wide Web. Today, hundreds of sites exist that provide a social networking service. But what was the first known social networking site? That site was SixDegrees.com, launched in 1997. SixDegrees allowed users to create profiles, list their friends, and, beginning in 1998, surf their friends’ lists. These features were not pioneering to the Internet by any means. User profiles had been supported by most major dating sites and community sites. Chat software such as AOL Instant Messenger (AIM) and ICQ provided the ability to list friends, although those friends were not visible to others as the friends of friends. Classmates.com, launched in 1995, allowed people to affiliate with their classmates and surf the network of others who were
188
1:59pm
Page 188
Schwartz c07.tex
V3 - 12/26/2008
1:59pm
Chapter 7: Social Networking also affiliated. However, it did not permit users to create their own profiles and list their friends until years later. SixDegrees managed to bring all these capabilities together. While attracting millions of users, it failed to become a sustainable business and, in 2000, the service closed. Looking back, its founder believes that SixDegrees was simply ahead of its time (A. Weinreich, personal communication, July 11, 2007). While people were already flocking to the Internet, most did not have extended networks of friends who were online. Early adopters complained that there was little to do after accepting friend requests, and most users were not interested in meeting strangers. Since then, many more sites have emerged, providing similar capabilities with a richer set of activities after friendship connections have been made. Some have been more focused to target specific niches such as educational and business relationships. Others have focused purely on social aspects such as friendship and dating. Figure 7-1 provides a timeline of launch dates of major social network sites. Looking back at the major social networking sites (SNS), a few stand out as the leaders of the pack. MySpace and Facebook have set themselves apart with 245 million and 124 million users in their networks, respectively. Many other social network sites have managed to establish large user bases, but none have proved to be more active and connected as MySpace and Facebook. Another SNS that has made significant progress is LinkedIn. A business-oriented site, LinkedIn was designed for professional networking purposes, such as recruiting based on work histories.
Leading the Pack: MySpace and Facebook Since June 2006, MySpace has been the most popular SNS in the United States. Initially starting from employees from eUniverse, MySpace launched in August 2003 with the core infrastructure required to support rapid growth. eUniverse used its 20 million users and email subscribers to quickly grow the MySpace community. The site now attracts 230,000 new users per day, and it is rapidly changing in user demographics. Facebook launched on February 4, 2004, for users to have the ability to join networks organized by city, workplace, school, and region to connect and interact with other people. Based on the same premises of social networking, Facebook’s early adoption was through the university system. Founded by a student attending Harvard University, initial membership was limited to Harvard students, but it was expanded to other colleges in the Ivy League. It later expanded further to include university students, then high school students, and, finally, to anyone aged 13 and over. Figure 7-2 provides an overview of the features provided by the two sites: Together, MySpace and Facebook are major participants of the social networking scene. So what makes them so popular? Both center on user profiles and the ability to easily communicate within their respective social networks. Let’s take a look at the core features of both of their offerings. Common to both, the user profile is at the heart of their services. It provides a centralized resource for getting information on a selected individual or group, for example, in the case of MySpace, music bands. There is good value that can be attained by maintaining a profile. Let’s take a look at what users are experiencing: T
Connect with people you know in the real world. Face it. You can’t be around everyone you know at all times. Even if you have unlimited cell phone minutes, you probably can’t speak with everyone you know on a daily basis to find out what has happened in their lives. These sites provide an easy and effective way to stay informed on what is happening to the people you know.
189
Page 189
Schwartz c07.tex
Chapter 7: Social Networking
1997
Six Degrees.com
1998
1999
LiveJournal AsianAvenue BlackPlanet
LunarStorm 2000 MiGente
Cyworld 2001 Ryze
2002
Fotolog Friendster Skyblog
2003
Couchsurfing Linkedln MySpace
2004
2005
2006
Figure 7-1
190
Orkut Dogster Flickr Picazo Mixi Yahoo!360 YouTube Xanga Cyworld BlackPlanet (relaunch) QQ Facebook (13 and over) Windows Live Spaces
Trib.net Last.FM Hi5 Facebook (Harvard Only) Multiply eSmallWorld Dodgeball Care2 Catster Hyves Bebo Facebook (extends to HS) Ning AsianAvenue (relaunch) Twitter Cyworld MyChurch
V3 - 12/26/2008
1:59pm
Page 190
Schwartz
c07.tex
V3 - 12/26/2008
1:59pm
Chapter 7: Social Networking Features at a Glance MySpace Profile Features
Moods Blurbs, blogs, multimedia Comments Profile customization (HTML) Music
Additional Features Bulletins Groups MySpaceIM MySpaceTV Applications MySpace Mobile MySpace News MySpace Classifieds MySpace Karaoke MySpace polls
Facebook News Feed Wall Photos Gifts Marketplace Pokes Status Events Networks and groups Video Chat APIs Facebook Markup Language Facebook Connect
Figure 7-2
T
Connect with people you don’t know in the real world. In a simple world, your network would remain constant, and you would grow old with the same group of people around you. The world, however, is more dynamic. Your social network is constantly changing, and a SNS provides more opportunities and new avenues to meet new people you may not have the opportunity to meet otherwise. With each additional social network connection, additional opportunities for personal and professional enrichment abound.
T
Keep your friends informed on what you are doing and stay informed on what your friends are doing. By updating your status, mood, or other methods of self-expressions, a SNS provides user information on the status of people within a network.
T
Make it easy for people to find you. Publishing a profile makes your information easily accessible to others out on the Internet. Privacy measures can be taken to hide profiles to only first-level connections, but others can search your profile. If someone wishes to get in contact with you, he or she can do so easily through a connection request.
The profile in itself is powerful and useful. However, alone, it is not considered to be the reason why social networking sites have gained the popularity they have achieved today. Many people agree that one of the key reasons that MySpace and Facebook have gained rapid growth has been their ability to listen to customers and adapt quickly to feature requests. It’s the continuous addition of new functionality that keep customers engaged, active, and coming back for more. This approach has proven to work very well. The SNS provider entices users with new features; users keep the features up-to-date and relevant by maintaining the content.
191
Page 191
Schwartz
c07.tex
V3 - 12/26/2008
Chapter 7: Social Networking Leading Business-oriented Site: LinkedIn Founded in 2002, LinkedIn is the leading business-oriented SNS and one of the fastest growing sites on the Internet. All over the world, employees, contractors, and independents are trying to find new methods for growing their business and maintaining their contacts. LinkedIn provides a powerful method that extends beyond single dimensional contact management. From late 2006 to late 2007, the site experienced a 485 percent growth spanning over 150 industries. Like a traditional SNS, LinkedIn provides users with the ability to create their profiles and connect to other profiles. The difference is that LinkedIn provides features that are geared toward businesses: T
Build a contact network that is based on business relationships. Relationships can be established as colleague, classmate, business partner, friend, group and associations, or other.
T
Provide a job/opportunity network. LinkedIn can be used to find jobs, people, and business opportunities recommended by someone in one’s contact network
T
List jobs. Employers can list jobs and search for potential candidates.
As you can see, the focus of LinkedIn’s services is geared more toward common business activities that occur in the workplace. These services are quite different from other sites that are knowledge-centric and mainly used to tap into people’s experiences and expertise.
What Sets an SNS Apart Why does this chapter focus on just a few of the many social networking sites available on the Internet? The ones picked for this chapter have something in common, which they have been able to do better than their competitors. Taking aside the concept of user profiles and linked contacts, all of the sites have managed to build on a unique set of services that appeal greatly to their target audience. For instance, MySpace has built a large following around its multimedia, specifically its music profiles for new and upcoming musicians to promote their work. LinkedIn has understood that business revolves around good talent and recruitment is typically a topic of most organizations. Providing the ability to post r´esum´es and job positions has become a highly successful feature in its service portfolio. Facebook has focused on simplicity and targeting of a younger student crowd. Students can have the ability to list the classes they’re taking so they can create of network of people from those classes so they can share notes and conduct other peer activity to improve their productivity. Of course, as students graduate, they take their familiar social networking application with them into the real world. All of the sites have demonstrated that, even though a foundation on a user’s personal space is necessary for social networking, organizations must make the effort to understand what their audiences are interested in and provide additional capabilities that target those interests. Additionally, in order to provide a more unique experience, MySpace, Facebook, and LinkedIn have all published APIs that allow application developers and programmers to extend on their services within their own unique environments. These sites have all been able to provide these services quicker and better then their competition, setting them apart from the rest.
The Business Value Proposition Generally speaking, businesses will embrace new technologies cautiously, but many have been quick adopters once the technology is accepted. In fact, behind many technologies on the Web are organizations that participate on panels influencing the direction of new technologies. Web 2.0 was no different, and the concepts and technologies were initially designed for specific social purposes that provided users a more interactive model for communicating with other users on the Web. For a while, industry viewed
192
1:59pm
Page 192
Schwartz c07.tex
V3 - 12/26/2008
1:59pm
Chapter 7: Social Networking Web 2.0 and immediately associated it with risk. Value was just not possible from free-form distributed contributions that were virtually censorship-free. Soon enough, businesses caught on that value could be derived from Web 2.0. Some early adopters, such as eBay, Amazon, and Google, had demonstrated success with Web 2.0 before it was fashionable. The argument is they did this by leveraging user contributions and offering open web services for others to integrate with. The result these organizations were experiencing is that potential customers were more willing to engage in business with them based on positive comments from existing customers. This type of reaction attracted the attention of other businesses. Slowly, others started catching on. Seeing the value they could offer customers and employees through their online presence was only as finite as their investment in dollars and resources. Web 2.0, combined with the social networking it engendered, broke through this limitation and unlocked a potential that is virtually infinite in possibility. Businesses that have adopted social networking in their corporate intranets are realizing it is an exceptional enabler of distributing employee knowledge that was previously unknown. The most visible examples of social networking are personal spaces, including blogging and wikis. Personal spaces have allowed employees to publicly provide information on what their role is in the organization and information on the work they are performing. Blogging has enabled business users to participate in the content development of intranets without having to know anything about technology. Wikis, on the other hand, have enabled ways of collaboration and development of online knowledge repositories that were once possible with expensive proprietary software. Blogs and wikis were discussed in detail in chapters 5 and 4, respectively.
Why Web 2.0 Is Important to Business Businesses have centered on application development, maintenance, and operations of systems for years. Each evolution of computing, whether it be from mainframe to client/server, has brought dramatic improvements in efficiency, lower costs, and reduced complexity. Again, Web 2.0 is not any different. Some things are a fact of life when it comes to business. Trends come and go, but ideas that breed innovation never go out of style. Success in business does not come easy. When it comes to evolving technology, the organization is either on board or left behind by the competition. Organizations that tap into new technologies, such as Web 2.0, leverage the collective creativity of their employees and customers. These organizations are not looking for a single, groundbreaking, new technology that revolutionizes the way they conduct business. Rather, they have created business approaches and adopted philosophies and technologies known as Web 2.0 that foster innovation, promote collaboration among team members, and raise awareness within the organization. The result is an organic following that engages employees to develop a sense of ownership in their work product while increasing the awareness of what is occurring within the company.
Success Factors for Social Networking in Organizations Success factors can vary from organization to organization. This is especially true when the success is based on human participation and behavioral trends. The results can vary, causing one implementation that has proven successful at one organization to completely fail at another. There are, however, approaches that are common to most successful social networking implementations, including the ones that are built in SharePoint. Consider these factors early in the design phases and make sure they have been discussed thoroughly:
1.
Understand the importance and the impact social networking can have to the company. Although some people believe it is a great benefit for every organization, this is not
193
Page 193
Schwartz
c07.tex
V3 - 12/26/2008
Chapter 7: Social Networking necessarily true. How successful social networking is a function of several factors, such as company size, type of business, and structure. Take, for instance, the size of the company. Does a company of 10 employees benefit from social networking? How about a company of 100? What if those 100 users were geographically located in six offices across the globe? The value social networking can bring to an organization can vary. Try to determine this, and plan according to the return expected.
2.
Target the interest of the employees at the organization. Create surveys that grant insight into what topics employees are interested in learning more about. For example, if the project is to build a social networking environment for several hospital organizations that are all connected, consider building RSS feeds into the base template that provide up-to-date information on medical-related publications across the multiple organizations.
3.
Provide incentives for users to participate. Many organizations feel that providing the social networking capability is all that is needed. If you have been around long enough, you know that the motto ‘‘build it and they will come’’ is far from true. The hardest part of getting a social network started is early adoption. People quickly realize that the network is thin and never return. Try to create prizes or awards that recognize users who have built the best personal spaces. Some might consider this to be counterproductive, as the company is awarding individuals to spend more time on building a personal space rather than doing their work. This type of thought challenges the fundamental principles of social networking. If an individual is able to build a good personal site with valuable blogs, discussion topics, and shared documents, then the value returned to the masses in the organization far exceeds the time spent by that individual. Turn back to chapter 2 for more guidance on end-user adoption.
Social Networking in SharePoint SharePoint Server 2007 has a wealth of new features that facilitate the connection between users in a company and the information in that organization. With personalization capabilities throughout, SharePoint establishes a strong framework for providing social networking within an organization. The social computing technologies that are offered in the SharePoint product technologies are listed in Table 7-1: Many of the features listed already have dedicated chapters to discuss in greater detail. The focus of this chapter will remain on two key features that underpin social networking in SharePoint: user profiles and My Sites. Both require Microsoft Office SharePoint Server (MOSS), and both are under the control of the Shared Service Provider (SSP) in MOSS.
User Profiles User profiles in SharePoint contain the details about individuals in the organization. Properties like first and last name, title, email, and department only name a few of the fields that are stored in a user’s profile. There are three methods to populate the profile database in SharePoint: T
Manually adding and editing profiles
T
Import through Active Directory or an LDAP server
T
Other business systems that can be exported through the Business Data Catalog
Organizations that have committed to technologies like Active Directory will have an easier time populating their profile database. Once a user profile is created, a basic noncollaborative version of the user’s My Site is created. This page is a placeholder that contains core information. Web Parts that reference the
194
1:59pm
Page 194
Schwartz c07.tex
V3 - 12/26/2008
1:59pm
Chapter 7: Social Networking user’s profile, such as the results of a people search, will point to this placeholder page until the My Site has been provisioned for the user. Additional examples of Web Parts that point to the user’s My Site are the Colleague Tracker and the Organizational Hierarchy Web Parts. Figure 7-3 shows what a basic My Site looks like before it has been provisioned.
Table 7-1 Feature
Microsoft Office SharePoint Server 2007
Windows SharePoint Services 3.0
Discussion Forums
X
X
Wikis
X
X
Blogs
X
X
Real Simple Syndication
X
X
Presence Communication
X
X
My Sites
X
User Profiles
X
People Search
X
Web Part Framework
X
Social Networking Web Parts for My Sites
X
X
The information displayed on the basic My Site page is comprised of data properties pulled from the user profile. SharePoint 2007 comes with 46 predefined properties. Of which, 21 are mapped and pulled in during a profile import. Be sure to evaluate all of the properties and determine if any new properties should be created that may provide additional value when viewing people in the organization. For example, when dealing with a technology firm, it may be beneficial to include a property that allows users to enter their certifications in addition to their skills. Users can either input their own certification names or select from a list of company-related certifications, such as MCSE or MCAD. Another example would be if the company relies heavily on instant messaging for simple communications. In this case, it is probably a good idea to include MSN, AIM, and Yahoo accounts used for instant messaging. Even though there are 46 predefined properties, not all are available for users to access and edit. Only the administrator of the SharePoint farm can manage some properties. They must be managed through the SSP and, in some instances, edited in Active Directory. There are, however, 19 properties that a user can view in the Details section of his or her profile. Of these properties, seven are read-only fields, and the user can edit twelve. This includes targeting information to the one of the five privacy roles: T
Everyone (default selection that includes all authenticated users with access to My Sites)
T
My Colleagues
T
My Workgroup
195
Page 195
Schwartz
c07.tex
V3 - 12/26/2008
Chapter 7: Social Networking T
My Manager
T
Only Me
Figure 7-3 Table 7-2 provides each property and default settings and tells if the user can change them. A user can edit these properties by navigating to Details under My Profile in the left-hand navigation menu. Depending on what he or she changes, the result will update his or her profile and alert his or her colleagues through the Colleague Tracker Web Part. Figure 7-4 shows a user updating his or her skills and selecting for those skills to only be displayed to his or her manager. The information stored in a user’s profile can be a critical success factor to the success of your social networking effort. The data gathered here is used through SharePoint 2007 to disseminate and target information to users, establish connections with other colleagues with similar interests, and search for people within the enterprise. If the information is not current, there is a risk of users losing confidence in the value of My Sites, social networking, and enterprise people search. One way to keep the information up-to-date is by training users how to properly make the most of My Sites.
My Sites Recall that personal spaces in both MySpace and Facebook act as the entry point for providing services to its customers. They are at the crux of the social networking paradigm. With SharePoint 2007, My Sites are the personal spaces for its social networking infrastructure. By default, users do not have a My Site. In order to create a My Site, a user must click a link at the top right-hand corner of any of the SharePoint sites he or she has access to, as shown in Figure 7-5.
196
1:59pm
Page 196
Schwartz c07.tex
V3 - 12/26/2008
1:59pm
Chapter 7: Social Networking Table 7-2 Property
Access
Show To
Show To Options
Name
Read
Everyone
None
Title
Read
Everyone
None
About Me
Write
Everyone
None
Picture
Write
Everyone
None
Responsibilities
Write
Everyone
None
Skills
Write
Everyone
All Privacy Roles
Past Projects
Write
Everyone
All Privacy Roles
Interests
Write
Everyone
All Privacy Roles
Schools
Write
Everyone
All Privacy Roles
Birthday
Write
Everyone
All Privacy Roles
Assistant
Write
Everyone
None
Mobile Phone
Write
My Colleagues
All Privacy Roles
Fax
Write
Everyone
All Privacy Roles
Home Phone
Write
My Colleagues
All Privacy Roles
Account Name
Read
Everyone
None
Work Phone
Read
Everyone
None
Office
Read
Everyone
None
Manager
Read
Everyone
None
Work email
Read
Everyone
None
A couple of things occur when the user clicks My Site for the first time. The user is prompted with a dialog box during the site creation that allows him or her to set the My Site as his or her default My Site. The dialog box is shown here: ‘‘Microsoft Office is attempting to set this site as your default My Site. Verify this is a location you trust as Microsoft Office connects with your My Site to offer it as a place to
197
Page 197
Schwartz
c07.tex
V3 - 12/26/2008
Chapter 7: Social Networking save your documents and share information. Do you want to set your default My Site to http://server/personal/username/?"
If the user accepts, a few things will occur. A registry key will be created at HKEY_CURRENT_USER\ Software\Microsoft\Office\12.0\Common\Open Find\Places\UserDefinedPlaces\ PersonalSite. Second, the My Site location will be added to Active Directory under the WWWHome-
Page attribute. And, third, the user’s My Site location will be included in the Save dialog boxes of Microsoft Office applications. In addition, Outlook will also maintain a synchronized copy of your Personal Documents. Changes can be made offline. When connected, they are immediately synchronized with the SharePoint My Site.
Figure 7-4
Figure 7-5 A My Site is a Windows SharePoint Services (WSS) site collection that is a site template exclusive to MOSS. There are multiple purposes for the My Site, but all are meant to help the user work more effectively. In other words, My Site will make sure the user has access to most of his or her everyday information, plus access to information about other users. As soon as users begin to understand My Site, they immediately love the features and flexibility it has. Because it is a slightly customized WSS site collection, the user has virtually all control over the content, structure, and permissions. He or she is, essentially, the site collection owner of his or her own site.
198
1:59pm
Page 198
Schwartz
c07.tex
V3 - 12/26/2008
1:59pm
Chapter 7: Social Networking When first logging into a My Site, notice the two tabs at the top of the page labeled My Home and My Profile. These tabs organize content into two different views, each with its own template: T
My Profile (Public View): The public view is accessible to all users who are authenticated within the network of the SharePoint site. The default layout consists of general contact information, organizational hierarchy, Shared Documents, colleagues in common, blog entries, and site memberships that are in common with the visiting user.
T
My Home (Private View): The private view is accessible to only the owner of the My Site. This site is used to store personal documents, receive subscriptions to RSS feeds, and access Outlook information like Inbox and Calendar. Additionally, the owner can add, edit, and delete colleagues and site memberships as well as add new content that can either be set for public or private purposes.
The My Profile Page By targeting information, the My Profile tab enables the owner to control the content delivered, based on relevance to the visitor as it was originally intended. Information is controlled through privacy roles and grouping that determines what and how information is displayed. By default, there are two groups: general and peers. These groups help organize information as it is displayed on the screen. Additional groups can be added to this list. On the other hand, privacy roles are not editable. They determine what information is displayed to the screen. By default, there are five privacy roles:
1. 2. 3. 4. 5.
Everyone My Colleagues My Workgroup My Manager Only Me
With privacy roles, the owner of the site can add a link and specifies for it to show to only My Colleagues. Then the link will not display to anyone but the owner of the site and users who are associated with the owner as a colleague. The owner has the ability to add new users and groups to this association. SharePoint 2007 has added many new features that increase the control of content on My Sites since the previous version of SharePoint Portal Server. By targeting content to their colleagues, users will experience increased interest and efficiency, which results in My Site visitors becoming more inclined to return again. Figure 7-6 provides a default My Site page as displayed to a visitor. If the visitor of the page is not already a colleague with the owner of the site, he or she may add him or her as a colleague directly from here. An option at the top right-hand corner will launch a dialog box shown in Figure 7-7, which will provide the capability to add the user as a colleague. This function is similar to viewing someone’s profile on MySpace or Facebook and adding him or her as a friend. There are, however, two differences to keep in mind. Most public SNS requires a confirmation by the user to add a friend or a connection. In SharePoint, no confirmation is required. This is partly because colleagues are associated in a single directional manner. If you add a user as a colleague to your profile, you are not necessarily a colleague on his or her profile. The My Site page that visitors see is very similar to the My Profile page an owner can access. On the My Profile page, as shown in Figure 7-8, the owner has the ability to select a privacy view that simulates
199
Page 199
Schwartz c07.tex
V3 - 12/26/2008
Chapter 7: Social Networking the view based on the privacy role. Although this will provide a good representation of what the page will look like according to the user’s privacy settings, the page will always have unique characteristics, depending on the visitor’s associations with the owner.
Figure 7-6 When a My Site is initially created, the My Profile page is built using a default layout. Because the owner is a site collection owner with full control of the site, he or she can add, edit, or remove Web Parts from this page. It is important to make the decision early on in the MOSS system design life cycle, whether the default layout is acceptable or not. Because each My Site is considered its own site collection, a change to the layout would have to be deployed to each My Site separately if they have already been created. In addition, each site is created with 100 megabytes of default storage. Consider the disk impact based on number of users and expected activity to determine whether that number should decrease or increase. If the decision has been made to accept the default My Profile layout, notice that it is broken into several Web Part zones, which determine the presentation of data on the pages. Three sections collectively make up the page: T
200
Navigation Pane: This section displays a default image set by the owner of the site. Below it, there are links to navigate to sections of the site.
1:59pm
Page 200
Schwartz
c07.tex
V3 - 12/26/2008
1:59pm
Chapter 7: Social Networking T
Middle Pane: This section contains the majority of the content that describes the owner of the site. The top of the section contains the title, location, phone number of the user, and a brief description of the user. These attributes, along with the picture and responsibilities, are set to be viewed by everyone in the organization and cannot be changed. Additional information for the user is displayed based on availability and whether the visitor is a member of the privacy role with permissions to view the content. The middle pane also presents the organization hierarchy that is produced by SharePoint during the user profile import. When importing profiles, SharePoint will automatically build connections between users based on the manager in Active Directory. This is one of the social networking Web Parts that shows connections between users in respect to the organizational structure of the company. Additionally, all users reporting to the same manager are automatically added to the same My Workgroup privacy role. Other information that is displayed on the middle pane is blogs, documents, and a presence web part that displays the colleagues of the owner of the site and their presence information.
T
Right Pane: The right pane contains a Web Part that displays the colleagues that the visitor and the owner have in common, the first manager they both share, and any memberships they both have in common. There is also a membership and links Web Part. The membership should automatically be populated with all sites the owner of the site is a member of. This list is updated through the SharePoint timer service.
Figure 7-7
Figure 7-8
201
Page 201
Schwartz
c07.tex
V3 - 12/26/2008
Chapter 7: Social Networking The My Profile page is a powerful tool with a lot of flexibility. But how do users get access to their own information and information about their colleagues without going to each colleague’s site? The My Home page was designed specifically for this purpose.
The My Home Page Alongside the My Profile page resides the My Home page. It is considered to be a page built to make the lives of people working with SharePoint on a daily basis much easier. The My Home page can be many things to users, depending on what they want to use it for. In some cases, some users may use it to only track their documents and get access to private files. In this capacity, many people consider the My Home page to be the successor to the home network drive that organizations have used for years to store information that was only accessible to the owner of the drive. Other users may use it as a single source of information within and outside of the company through My Inbox, My Calendar, and RSS feed Web Parts. By default, the My Home page is populated with the Web Parts described in Table 7-3. The My Home page, as shown in Figure 7-9, also contains a personalized picture of the owner of the site along with a standard navigation menu that is similar to that of Team Sites in SharePoint. The photo can be updated through the details of their user profile. The owner of the site also has the ability to add any type of list or document library in order to store the information he or she needs for the job function on his or her site. With full control of the site, the owner can determine who has access to newly created lists and document libraries.
Figure 7-9 When reading the list of Web Parts on the My Home page in Table 7-3, notice that many require the owner of the site to perform an action in order to use the Web Part. Keep in mind who the target user base is and what their technical levels are. It is frequently necessary to include a training manual that provides some guidance. Some approaches to training are discussed later in this chapter.
202
1:59pm
Page 202
Schwartz
c07.tex
V3 - 12/26/2008
1:59pm
Chapter 7: Social Networking Table 7-3 Web Part Name
Description
Getting Started with My Site
Provides a guide for how to start using My Site features. There are five suggestions made that, if followed, will create a basic user profile. Once you have completed the recommendations, this Web Part can be safely deleted.
RSS Viewer
A Web Part that allows connectivity to an RSS feed within or outside of the organization if your firewall permits. This Web Part is initially blank by default.
SharePoint Sites
This Web Part provides a rollup capability that displays the SharePoint sites the user is a member of. In addition, it will display any documents or task belonging to that user throughout the sites. By default, this Web Part is blank, but it is populated by incremental search scope updates set to every 14 minutes by default. Users also have the option for adding additional sites
My Calendar
Displays the user’s calendar from Exchange. The user must open the tool pane and enter the Exchange Web URL. This Web Part will only work with a Microsoft Exchange 2000 or 2007 server mailbox.
Colleague Tracker
Provides a list of the user’s colleagues that are, by default, populated during a profile import. All users who report to the same manager as the owner of the site will be associated as a colleague. The user can add additional users. It also provides updates on recent activities of colleagues. Some examples of the activities include updates to personal information that you have access to and membership to new sites or distribution groups. These settings can be changed when you click Change what gets tracked on the Web Part. The tool pane will open, allowing you to track the following activities: T
Anniversaries
T
Profile Property Changes
T
Membership Changes
T
New Documents
T
Out of Office
T
Blog Changes
There are also options to change the view and filter the colleagues to show only colleagues with or without changes, those colleagues only in your workgroup, number of colleagues to return, and number of columns Recent Blog Post
This Web Part displays by default after a user creates a blog. By default, it has a ‘‘Welcome to your Blog!’’ entry.
203
Page 203
Schwartz
c07.tex
V3 - 12/26/2008
Chapter 7: Social Networking Adding Web Parts to My Site The default list of Web Parts seems like a good start, but what if the owner wants to add additional information to his or her My Site? On normal Team Sites, the ability to control the look and feel of the site is reserved for the web designer role. This is not the case with My Sites, as the owner has full control of the site collection. Let’s take the example where an owner wishes to display his or her Exchange inbox in his or her My Home page. Luckily, the folks over at Microsoft thought about that and included that Web Part with MOSS.
Configure the My Inbox Web Par t 1. 2. 3. 4.
Open My Site, and locate Site Action at the top right of the screen.
5.
The Web Part will display some text that opens the tool pane. Click the Open the tool pane link to open the configuration pane.
Click Site Actions, and select Edit Page. On the zone you wish to add the Web Part, select Add a Web Part. Locate the Outlook Web Access (OWA) group, and click the check box next to My Inbox. Click Add.
The following configuration pane contains two settings you will need to enter and validate: T
Mail server address: This must be configured to use the same address the organization uses to access Exchange Server through OWA. Typically, it looks something like: http://mail.mycompany.com/exchange. If that does not work, talk to the administrator to see if OWA is blocked or if the URL is correct.
T
Mailbox: This can either be the first part of your email address or your entire email address.
T
View: Select the default view for your inbox. The options are: T
Two Line
T
Messages
T
By Sender
T
By Subject
T
By Conversation
6. 7.
Click OK at the bottom of the pane to save the settings. To test the Web Part, double-click an item in your inbox. A pop-up window should provide the details of the email. You can reply to make sure it is working properly.
Several other OWA Web Parts can be added to the page. In addition to My Calendar and My Inbox, SharePoint offers My Contacts, My Mail Folder, and My Tasks. These might seem great, but there are
204
1:59pm
Page 204
Schwartz c07.tex
V3 - 12/26/2008
1:59pm
Chapter 7: Social Networking some drawbacks. All of the these Web Parts provide some interactivity to view existing items, but none allow you to create new items, such as writing a new email or creating a new task. Another downside is that, if a user stores email in folders in Exchange, he or she must add a My Inbox Web Part to display each folder he or she wishes to have on the page. Only the My Mail Folder Web Part is compatible with Exchange 2000. The remaining Web Parts require Exchange 2003 or 2007. Other Web Parts can be added to further personalize and make the My Home page more relevant to the owner. Take the time to look through the Web Parts available and try them out. In some cases, based on the zone you are working in, SharePoint may make some suggestions for what to add. For example, the middle zone will provide suggestions for the Web Parts displayed in Figure 7-10.
Figure 7-10 It can be difficult to understand all of the possibilities My Sites have to offer, and that can be overwhelming if uninitiated end users are not guided through the processes. In almost all environments, training will be required. But how can every user in the organization receive training? The following section provides some guidance that may help.
Training Your Users It is always a good idea to consider end-user training when releasing a new capability into any organization. The best way to train end users is a decision based on a number of factors. There are many forms of training, including instructor-led, Internet-based, and instruction manuals. If members of the organization are fairly technology savvy and can follow an instruction manual or web-based training, then those are the ideal and least costly approaches to training. On the other hand, if your organization’s users may need a more interactive session where questions and answers can be supported, then instructor-led training may be the only option. Be aware that, for large organizations, instructor-led training for a large number of employees is cost-prohibitive and not time-feasible. Regardless of how user training is carried out, there are several topics to include for getting the most out of social networking in SharePoint. Use the list as a starting point, and adjust according to each organization’s specific requirements for social networking T
Provide incentives for the first 100 or 1,000 people who complete their user profiles. Make sure users understand the importance of having a complete and accurate user profile database.
205
Page 205
Schwartz
c07.tex
V3 - 12/26/2008
Chapter 7: Social Networking T
Many of the Web Parts on the My Home page require some configuration. Provide information on getting started with My Sites that include instructions for users to configure the Web Parts with the organization’s Exchange Server and RSS feeds if they are available.
T
Include guidelines on what is prohibited for users to post to their blogs and wikis according to the company’s governance policies.
T
Provide users with how-to guides for the most common function, such as adding and managing colleagues, customizing Colleague Tracker, posting blogs, and managing photos.
T
Provide users with an example My Site for a fictitious user that is completely populated with information such as blogs, colleagues, memberships, and specific information that is relevant to the company.
One of the strengths SharePoint has built a reputation for is its simplicity and familiarity with users. Although this can be a strength, it can quickly turn into a risk when user training is avoided. My Site rollouts are no different. Make sure to include training for users to ensure success in any social networking deployment.
You Try It This You Try It is based on a real-world implementation of SharePoint social networking. George Mason University is a small school that takes pride in its science and engineering programs. Its students come from a diverse background, but they share a common interest in computing technologies. They are all required to take at least two courses in computing to meet their general electives. Every semester, the faculty faces the challenges of preparing for the new semester and providing students with the information they need to start the course off in the right direction. Recently, the school’s IT department published MOSS 2007 for the school’s intranet, and it has given every student, faculty member, and staff person the ability to create a personal space. In this deployment, the SharePoint administrator plays a key role to the success of the portal. Knowing that the faculty and students have different characteristics, the administrator decided to make sure a good understanding of each role was achieved. The first step in building the solution was to determine the audiences and what purposes they would have with the personal spaces. This helped define each role and solution focus points.
206
T
Students: The student body is comprised of roughly 20,000 students that is split between 4,000 on campus and 16,000 commuters. The primary purposes for social networking for students will be to learn more about their professors and peer students. They can use the site to get relevant information, schedules, and updates from their professors. They can also use the site to meet other students in their classes to establish study groups.
T
Faculty: There are about 1,200 professors. Some are full-time; others are adjunct professors who only teach one or two courses a semester. The faculty can use social networking to provide their students continuous access to course material and update schedules. Faculty members can also align with other faculty members to gain insight into what new techniques and methods teachers are using for their teaching their courses.
T
Staff: There are 1,000 staff members who help contribute to the success of George Mason University. They play the supporting role for managing facilities and infrastructure, such as computing, networking, and general campus maintenance. Because staff members are considered a supporting role, their roles in the university’s social networking initiative are considered minimal to the success of the deployment.
1:59pm
Page 206
Schwartz
c07.tex
V3 - 12/26/2008
1:59pm
Chapter 7: Social Networking While looking at each of the roles in the organization, the administrator recognizes that the data for each of the roles is not necessarily the same. For example, students do not have a manager, which results in no hierarchical structure. They also do not have titles. However, faculty and staff do. These two roles will vary in how the user profiles are structured. Additionally, the stakeholders of the deployment have informed the administrator that a clear distinction in appearance must be achieved between public My Sites for the different roles. The institution feels that people need to quickly determine whether a profile is for a faculty member or student. The SharePoint administrator has decided that at least two Shared Service Providers (SSPs) will be necessary. One will be required to store the profiles and My Sites for students; another will be for faculty/staff members. In addition to the two required, the SharePoint administrator has created a third SSP to manage the university’s intranet site.
When deploying My Sites in SharePoint, the user has the ability to customize his or her private profile to any luck and feel they choose. However, the public profile is not editable by the user and will be set to the default template unless the SharePoint administrator changes it. If your requirements call for unique public My Sites based on user roles, you must create a unique SSP for each role. Use caution when exercising this approach, as each SSP consumes system resources and could have a negative impact on overall system performance.
The first thing the SharePoint administrator did was create the university’s portal and default SSP. This SSP will be used for configuring the Shared Service settings for the university’s intranet. Although a My Site will exist on this SSP, no profiles will be created on it. The second task was to create two more SSPs. One SSP will be created for the faculty; another will be for the students. Each one will contain its own My Site with a unique URL. After the administrator has created the SSPs, the structure will resemble: T
T
T
GMU_SSP (Default) T
GMU
T
mysite.gmu
T
ssp.gmu
SSP_Faculty_GMU T
mysite.faculty.gmu
T
ssp.faculty.gmu
SSP_Student_GMU T
mysite.student.gmu
T
ssp.student.gmu
If configured correctly, the result will look like Figure 7-11.
207
Page 207
Schwartz c07.tex
V3 - 12/26/2008
Chapter 7: Social Networking
Figure 7-11
Customizing the Student SSP Many times, fine-tuning is necessary to get a more unique environment out of the My Sites. Even though profiles come with a set of properties, most environments have additional attributes that, once implemented, can establish a more relevant social networking ecosystem. With three SSPs created, the environment is now ready for customizing the profiles. Because only two of the SSPs will be used for My Sites, they will be the ones that the administrator will focus on. The administrator has decided to add additional properties to increase the relevance between students and faculty members. The following action was performed on the student SSP (SSP_Student_GMU).
Adding to the User Profile 1.
Adding a property to the user profile is done in the User Profiles and My Sites section of the SSP. On the SSP page, click User profiles and properties.
2.
On the bottom of the User Profiles and Properties page, click View Profile Properties, as shown in Figure 7-12.
Figure 7-12
208
1:59pm
Page 208
Schwartz
c07.tex
V3 - 12/26/2008
1:59pm
Chapter 7: Social Networking 3.
After reviewing the list of available properties, the administrator decides to add a property. At the top of the page, click the New Property button.
4.
The Add User Profile Property page allows the administrator to add a new property to the user profile. In this scenario, the administrator is adding a new property that allows faculty and students to associate themselves with a particular course using the settings as outlined in Figure 7-13 and Figure 7-14.
Figure 7-13 Notice that the administrator added the property as a multivalue separator. Multivalue separators allow users to enter information, separated by a comma or semicolon. The information is parsed, and the string between each delimiter is maintained individually. Each time a new course is added, the next student or faculty member can pick from a list of available courses rather than typing it in for them themselves.
209
Page 209
Schwartz
c07.tex
V3 - 12/26/2008
Chapter 7: Social Networking Students can select the courses they are currently taking, and faculty members can select the courses they are teaching. The administrator also added the following additional properties to the profile: T
Housing/Dorms
T
Clubs/Intramurals
T
School Teams
T
Student Organizations
Figure 7-14 All of these properties will help students establish connections with each other and establish relevance within the social network. The result should be increased interest and higher adoption rates. Once the properties were added, a new section named Custom Properties is created, displaying the new profile properties, as shown in Figure 7-15. Because these fields will display on the default user profile, they will be grouped by the Custom Properties heading. The system administrator has changed the heading Custom Properties to Campus Information. The newly added properties will also be visible for users to edit in their profile details and for display on their public profile page. Once the properties have been added, the administrator also goes through each of the properties and removes the ones that are not relevant to students. Some of the properties cannot be removed, but the display settings can be set so they are not displayed on the default profile. For example, the SharePoint administrator has decided the responsibilities should not be displayed on student profiles.
210
1:59pm
Page 210
Schwartz c07.tex
V3 - 12/26/2008
1:59pm
Chapter 7: Social Networking > Custom Properties
Section
Associated Courses
string
Clubs/Intramurals
string
School Teams
string
Student Organizations
string
Housing/Dorm
string
Figure 7-15
Customizing the Faculty SSP The SharePoint administrator follows a similar process when creating the faculty SSP. Because the profiles for this role are maintained in a separate SSP, the profiles do not overlap. Any changes made to one are not affected to the other. This provides complete control of the environment and how the profiles are customized. The administrator creates two new properties for the faculty roles: Associated Classes and Research Projects.
Additional Customization With both SSP profiles created and tuned, the SharePoint administrator can now create custom templates for the My Sites to provide a unique experience to each role. A custom template is needed in order to make the public-facing My Site unique between users. With two different templates, the administrator can control what information is displayed and how. For example, the Hierarchical Web Part is removed from the student My Site, while the Associated Classes, Clubs/Intramurals, School Teams, Student Organizations, and Housing/Dorm are added. All of these properties can be included in the people search. If desired, the administrator can also further customize the faculty My Site by adding role-based templates for the different types of faculty. Role-based templates for SharePoint My Sites are custom templates, designed for Office SharePoint Server 2007 and the My Site functionality. They are tailored to address the unique needs and requirements of specific roles within an organization. To find out more, visit http://office.microsoft.com/en-us/sharepointserver/HA102147321033.aspx.
Creating Audiences The SharePoint administrator has determined to make a multiple My Site deployment work and have more flexibility on information dissemination; audiences will need to be created. Audiences play a powerful role in the SharePoint infrastructure for both targeting information to a subset of users and managing how My Sites are created. In this scenario, the main intranet for the university is associated with the GMU_SSP. Because most of the information, news, and updates will be on the intranet, this is where the SharePoint administrator has created two audiences: faculty and students.
1. 2.
From the default SSP page, click the Audiences link. This opens the Manage Audiences page. To create a new audience, click Create Audience.
211
Page 211
Schwartz c07.tex
V3 - 12/26/2008
Chapter 7: Social Networking 3.
Type a name for the new audience and a brief description. The owner of the audience can be the SharePoint administrator or a delegated user account that is responsible for how information is disseminated to this audience. In large farms where there are many audiences, it is good practice to use unique account for the owners of audiences. Depending on the rules, click either Satisfy all or any of the rules. In this scenario, the administrator uses Satisfy all of the rules. Figure 7-16 provides an example of the information to fill.
Figure 7-16
4.
Click OK. The system will prompt you to add a rule to define how users are selected to be a member of the new audience. You can look through the available options to determine the best method for identifying and filtering down to the subset of users you wish to target. In this scenario, the university has kept all students and faculty members in its own Active Directory groups. Because this option was available, the SharePoint administrator has selected:
a. b. c.
Operand: User Operator: Member Of Value: StudentGroup
Once the process has been completed, the screen should look similar to Figure 7-17.
Figure 7-17
212
1:59pm
Page 212
Schwartz
c07.tex
V3 - 12/26/2008
1:59pm
Chapter 7: Social Networking 5.
Click OK. The audience is created. On the View Audience Properties page, click Compile audience to run the rules against the profile database and import any accounts that match the rule criteria.
6.
Once the audience finishes compiling, the properties will display that the audience is compiled and the number of members in the audience. Make sure no errors occur in the compilation errors. If there are errors, check the SharePoint logs to troubleshoot.
The same steps are performed for the faculty audience. Once complete, the deployment now has two audiences defined that can be used within the university’s intranet. These audiences also have additional uses to help customize the behavior of how users access their My Sites. In order for faculty and students to be directed to their correct My Site location, trusted My Site locations can be created and associated with audiences. This will enable the intranet to determine where to direct users based on audience.
Trusted My Site Location Once the audiences are created, the faculty and student My Sites can both be included as a trusted My Site location on the GMU_SSP. Creating a trusted My Site location allows the administrator to target specific audiences to My Site locations within the farm because the administrator creates two different My Site locations: one for the students and one for faculty members.
Creating a Trusted My Site Location 1. 2. 3.
From the default SSP page, click the Trusted My Site Host Locations link. On the menu toolbar, click New Item in the drop-down list. On the New Item screen, enter the web address of the My Site location, a brief description, and the audience that will be used for the My Site. After entering the information, make sure that your screen looks similar to Figure 7-18.
Figure 7-18
4.
Click OK. Then create any additional trusted My Sites needed.
The administrator has finished creating the two trusted My Site host locations. With this step complete, users are now directed to their correct My Site location from the university’s intranet, based on audience. This provides a very powerful method for controlling content within the intranet and on each My Site location. In this real-world example, the administrator has enabled features that provide the users to have more options that are relevant to their working scenario. Students can find other students based on courses, student organizations, and other new properties added by the administrator. It is important for the
213
Page 213
Schwartz
c07.tex
V3 - 12/26/2008
Chapter 7: Social Networking administrator to collect usage feedback and continue to make similar changes to continuously improve the quality of the system. Remember, social networking is a living process that is only as good as the activity and contribution of the user community. It is the responsibility of everyone in the organization to propose new ideas and concepts to improve the system. As this example provided, SharePoint establishes a strong foundation for creating a social networking platform that is flexible to meet your organization’s needs.
Summar y In this chapter, you learned how social networking can unlock hidden potential within people in your organization. However, a social networking initiative is only as successful as how well it is deployed and how well users adopt it. To achieve adoption, personalize the environment to how the employees in the organization communicate and share information. By default, MOSS uses My Sites, user profiles, people search, and social networking Web Parts to achieve the business value gained from social computing. Additionally, MOSS My Sites are integrated with Office applications, when available, on the user’s client computer. Content on My Sites are personalized through set roles: Everyone, My Colleagues, My Workgroup, My Manager, and Only Me. Finally, the chapter walked you through a sample implementation that created multiple SSPs to host more than one My Site template. This, along with using audience targeting, can add additional flexibility in targeting information to specific users in your organization Key takeaways from this chapter: T
The following are key factors to focus on when deploying a social networking environment in SharePoint. Understand the importance and the impact it can have on your company. Target the interest of the users in the organization, and provide incentives for users to participate.
T
User profiles are a key component to the success of My Site deployments. Profiles should be customized to meet the unique characteristics of your organization
T
My Sites are broken into two main sites: My Profile (public) and My Home (private) views. The user can edit the My Home page, and it is engineered to help make everyday tasks easier for users. The My Profile page is the public site as seen by other users in the organization.
T
You should always include training as part of your social networking deployment. Provide the most interactive training method feasible based on company size and resources.
The next chapter will bring some social computing concepts together in the form of podcasting from SharePoint.
214
1:59pm
Page 214
Schwartz
c08.tex
V3 - 12/26/2008
2:16pm
Podcasting Over its short history, podcasting has become a widely used and accepted form of social computing because of the standardization of RSS and the heavy adoption of MP3 players such as the iPod. This chapter includes information pertaining to the nontechnical and technical aspects of podcasting, including everything from audience identification to the podcast creation as well as hosting a podcast from within SharePoint. Not all podcasts are relevant to all audiences. It is imperative that the audience not only be identified but be understood in order to create podcasts that make them keep coming back for subsequent episodes/chapters. The principles of how to understand an audience and targeting content to a specific audience will be covered in the early sections of this chapter. There are multiple ways of creating podcasts, which are comprised of an RSS feed file and some sort of multimedia (audio/visual) playback file, which is referenced from the RSS feed file. This chapter contains an example of creating a podcast using freeware/shareware tool that is served by Microsoft’s IIS web server. By nature, SharePoint, because of its built-in support of other forms of social computing (blogs, wikis, and so forth), is a natural candidate to host podcasts. This chapter ends with both a technical (custom code/configuration) solution and a community-supported option for hosting a podcast from within SharePoint.
Histor y As described later, podcasting has protocol/file format dependencies on RSS and MP3, so, in order to fully understand the timelines surrounding podcasting, one must understand the history of RSS and MP3. A detailed history of RSS was covered in chapter 6, but a few of the key milestones will be reiterated so they can be related to podcasts. The advent of RSS, as described in chapter 6, occurred in the late 1990s to the early 2000s with the RSS 1.0 specification being published in August 2000 and the RSS 2.0 specification being published in July 2003. The initial form of MP3
Page 215
Schwartz
c08.tex
V3 - 12/26/2008
Chapter 8: Podcasting was created by the German company Fraunhofer-Gesellshaft in the beginning of 1992 and was awarded a United States patent in November 1996. With RSS and MP3 in place, as well as the acceptance and growth of the Internet, the foundation for podcasting was laid. At a theoretical level, many people believe the weblog (blog) influenced the thought process surrounding the creation of the podcast. Analyzing these two forms of social computing helps to identify two key similarities. The first is the fact that both blogging and podcasting are ways of recording and sharing thoughts/information. The second is that both of these information-sharing mechanisms, in some shape or form, adhere to a subscription process. At a very high level, the only main difference between these two technologies is the method of playback, that is, visual for a blog versus audiovisual for a podcast. The history of podcasting, though relatively short from a strict timeline perspective, is quite in-depth due to its rapid growth and adoption. Figure 8-1 contains a short timeline of key events related to podcasting. By most accounts, the term podcasting was officially coined in February 12, 2004, when Ben Hammersley, in his article in the Guardian, used the word podcast for the first documented time.
January 2001
October 2003
February 2004
October 2004
October 2005
September 2008
RSS 0.90 UserLand Notion of designed by RSS 0.91 enclosures Netscape specification conceived/ proposed
December 2000
October 2000
June 2000
US patent issued for MP3
March 1999
November 1996
Early 1992 MP3 file format defined
Enclosures added to RSS and 0.92 specification created
Enclosure tag used to embed Grateful Dead song
RSS enclosures used by iTunes to download and transfer audio file to iPods
Term podcast coined by Ben Hammersley
2,750 Google hits for “podcast”
Steve Jobs demonstrates video podcasts
About 151,000,000 Google hits for “podcast”
Figure 8-1 Though Ben Hammersley is credited with the first use of the term, he did not invent the technology. The technology is accredited to Tristan Louis, Dave Winer, and Adam Curry. Dave Winer is considered the original author of the RSS specification, and Adam Curry is an former MTV VJ. In October 2000, Tristan Louis proposed the RSS specification be altered to allow for enclosures. Consequently, Winer, after discussing the concept of audioblogging with Curry and other customers, decided to add enclosures to the RSS 0.92 specification. The enclosure tag is used to attach multimedia to RSS. The following XML snippet is an example enclosure element from the official RSS 2.0 specification found on Harvard University’s site, which can be found at http://cyber.law.harvard.edu/rss/rss.html.
In January 2001, Dave Winer used the enclosure tag to link to a Grateful Dead song from his news site. This is the first documented implementation of embedding an audio file into a RSS feed. From this time until October 2003, the use of RSS enclosures slowly gained in popularity. In October 2003, Adam Curry and Kevin Marks demonstrated how to download RSS enclosures and pass them to iTunes, which could then be transferred to an iPod for playback. Ben Hammersley had the foundation for his word, podcast. A podcast is an audio broadcast that can be played back on an iPod. The term has since taken a new form
216
2:16pm
Page 216
Schwartz
c08.tex
V3 - 12/26/2008
2:16pm
Chapter 8: Podcasting meaning Personal On Demand broadCASTing because podcasting is no longer dependent upon the iPod and iTunes. There are many devices and software programs in existence today that can subscribe to and playback a podcast. Since Hammersly’s historic coining of the term podcasting, the use and adoption of the technology has grown exponential. Podcasting is now a commonly used word. Individuals from all walks of life podcast a broad spectrum of information that ranges from presidential addresses, food receipts, and family news. Podcasts are usually created with the intent to educate or entertain a specific type of listener. The content of podcasts can vary tremendously, depending on the target audience. A podcast containing vegetarian recipes probably won’t be very successful if it’s hosted on a bank’s web site because individuals don’t typically go to a bank’s web site for vegetarian food recipes. They go to a bank’s web site to gather information on that specific bank or perform Internet banking activities. Determining the audience for a podcasts and targeting content to that audience will help to ensure its success.
Determine Your Audience The English department at Colorado State University (CSU) has a web site that contains several approaches to determining an audience. These approaches are typically targeted to some sort of writing media, but the underlying principles are the same for podcasting. The university has three basic criteria for determining an audience posted to its web site: who, what level of information, and context. Context is defined as ‘‘how the audience will be delivered the information’’ and is not overly applicable for podcasting because the context is podcasting. Though context is not applicable when determining an audience for a podcast, the who and what are because delivering a podcast that isn’t relevant to an audience is a surefire way of ensuring the audience will not listen to the podcast. T
CSU defines who as age, sex, education, economic status, and political/social/religious beliefs. Other more business-friendly criteria may be department or hierarchical level, for instance, entry-level compared to executive.
T
CSU defines what level of information as novice, general reader, specialist, or expert. The level of expertise is often determined by the who, so, when determining audience type, it is best to determine the who before the what.
As an overly simplified/extreme example, let’s assume a podcast needs to be created for all-male high school students on the topic of prostate cancer. The who in this example are males between the ages of fourteen and eighteen. The what level of information in this example is probably novice unless this is some sort of advanced premedical preparatory high school. With these two criteria defined, it is probably safe to say that the podcast should contain a high-level overview, that is, without medical terms, of what prostate cancer is and how it affects the body. Once an audience is identified, the next step in the content creation process is to actually create content that is relevant and interesting to the listener. Identifying an audience doesn’t do much good if the content delivered to that audience is not relevant. For instance, creating a podcasts on how to use a typewriter isn’t very relevant for college students in the United States. Creating a podcasts on using Microsoft Word effectively is much more relevant because most U.S. college students use a computer and are highly likely to use Microsoft Word for word-processing tasks.
217
Page 217
Schwartz
c08.tex
V3 - 12/26/2008
Chapter 8: Podcasting
Provide Content and Information Relevant to the Listeners A podcast is intended to inform, persuade, or entertain. Understanding how to create a podcast and post the podcast to a web server is not as important as providing relevant and interesting content. The goal of creating a podcasts to inform, persuade, or entertain will never be met without the proper content. There are many ways of ensuring a podcast has relevant content, but, if truly examined, most techniques roll up to the global technique of understanding the audience. The only way to truly provide content and information that is relevant to users is to understand the listener. As an example, one may be asked to create a podcast at some United States car manufacturing company. The content of the podcast is supposed to be changes in employment benefit packages due to new federal laws. Without knowing the audience, it is impossible to create this podcast and ensure the content is relevant to the targeted users because the users may be in a multitude of countries like Mexico or China. Obviously, laws differ from the United States to Mexico to China. It would not make much sense to create a podcast for the operations group in China that details the new health benefits as dictated by the Mexican government. Getting to know the audience is accomplished by doing one thing, research. Some common types of research used to create relevant podcasts are interviewing and feedback. In the above example, research may show the typical targeted Mexican worker speaks the American Indian language of Nahuatl, a language officially recognized by the government of Mexico and spoken by over six million inhabitants. They are in an area of Mexico that does not speak Spanish based on the population’s ethnicity. Additionally, research may show that the podcast is listened to while riding the bus to work. The longest bus ride out of all workers is fifteen minutes. These two pieces of information should dictate the podcasts be spoken in Nahuatl and be shorter than fifteen minutes long. How individuals listen to podcasts can be just as important as the content of the podcast. Interviewing target audience members is an extremely effective way of understanding the audience and what types of content that audience is interested in hearing. Interviewing audience members oftentimes provides surprising results that would not be identified from purely performing book based/Internet-based research. For instance, this would be like interviewing a finance department and finding out the content they are most interested in is updates to software. Traditional book/Internet-based research would lead to the conclusion that a finance group would want to hear about finance techniques/laws. Keep in mind that, with personal interviewing, if the entire audience is not interviewed, make sure to interview a subset of individuals who represent the entire audience. For instance, if an audience is comprised of ten women and ten men, it does not make sense to interview only four women as this is not a representative subset. A multitude of web sites and books cover proper interviewing techniques. These techniques are applicable when interviewing for the purpose of podcast content identification. Feedback is a great mechanism for understanding the audience. Feedback allows for the refinement of an understanding of an audience. Additionally, as most audiences are not static, that is, audience members can change, feedback is a mechanism to receive ongoing information that helps to identify the changes in audience. There are many ways of obtaining feedback. Some of these ways include interviewing the audience again and performing surveys. Assume a podcast has been created that helps to instruct users how to use Microsoft Office 2003. This learning aid contains a daily tip on using the new functionality of Office 2003. All of the initial research showed the audience was very much interested in learning how to use this software. Four years and
218
2:16pm
Page 218
Schwartz
c08.tex
V3 - 12/26/2008
2:16pm
Chapter 8: Podcasting twelve hundred Office 2003 podcast episodes later, the audience pretty much knows everything there is to know about Office 2003. Now Office 2007 gets rolled out for all of the target listeners. They are no longer using Office 2003 because of the Office 2007 rollout. This may mean they are no longer listening to the podcast because the information contained in it is no longer relevant. Having a feedback mechanism available, the listener would have helped to identify the fact that users were ready for Office 2007 tips. This is a pretty simple example, but it still shows how important receiving feedback from the audience can be to help keep content relevant. Chapter 3 offers some great pointers about feedback mechanisms that can be included in SharePoint. The ability to identify and provide content that is applicable to the intended audience is, by far, the most challenging aspect of podcasting. Knowing what to create is often harder than knowing how to create when podcasting. The creation of the podcast archive is a much easier when compared to content and audience identification.
Creating an Archive A podcast is a collection of two files: a RSS feed file and some sort of a multimedia file, for instance, an MP3 or Windows Media Audio (WMA) file. The podcast archive itself is independent of the device used for playback. It is the responsibly of the playback device to adhere to the RSS specification. As long as the correct specification is followed when creating a podcast, playback should be trivial. Once the two files are created and uploaded to a hosting server, the podcast is ready to be listened to on the playback device. Besides a little smoke and mirrors, it is that easy to create a podcast archive. Later in this chapter, the tricks behind the smoke and mirrors will be disclosed, but, until then, the goal is to just keep it simple. At a high level, the process of creating a podcast can be completed in five steps:
1. 2. 3. 4. 5.
Identify content and audience. Record content (multimedia file). Create the RSS feed file (XML file). Publish the two files to a server. Spread the word and subscribe.
Identify Content and Audience For this example, imagine a budding podcaster who wishes to share his son’s first words with his extended family. With a slight stretch of the imagination, pretend that everyone in his family is tech-savvy, even his grandmother. This means they will have some sort of podcast playback device like iTunes. As long the podcast archive is compliant to the RSS 2.0 specification, their various playback devices will be able to subscribe to the podcast. This will not only allow them to hear the podcaster’s son’s first words, but they will also be able to receive updates as his vocabulary grows.
Record Content Podcasting requires audio and perhaps videorecording equipment. This equipment could range from a professional microphone system, one that allows one to record with the purest of clarity, to a cheap desktop microphone that may be less than perfectly clear. A multitude of recording systems are currently available for purchase, ranging from tens of dollars to thousands of dollars. A free tool may be used to create a WAV file using the sound recorder on a cell phone. Once the file is recorded, it can be beamed
219
Page 219
Schwartz
c08.tex
V3 - 12/26/2008
Chapter 8: Podcasting to a computer via Bluetooth so a file is available for the budding podcaster to work with when creating the first podcast. In order to use the file, it needs to be converted into an MP3 file, which can be done by using a piece of MP3 converter software. Now this may seem very technical, but the toughest challenge in recording the content in the above scenario is getting a toddler to say anything specific on demand. Once the recording step is complete, an MP3 file is available for the following parts of this process.
Create the RSS Feed File The creation of the XML RSS feed file can be the trickiest task associated with creating the podcast archive. The good news is that many different freeware tools and editors are designed to make this task painless and trivial, such as the ListGarden RSS Feed Generator program available from Software Garden (www.softwaregarden.com). For simplicity sake, assume just such a tool was used, and there is now a valid RSS feed file. This is the smoke and mirrors as identified above. The output to this step is a valid RSS feed file that references the MP3 file recorded in the record content step.
Publish the Two Files to a Server The process to publish the files is different, depending on the server the files are being published to. So, if you are unfamiliar with this process, it is best to contact the server administrator for the correct steps. For this example, IIS will be used to host the podcast, so publishing is as easy as copying the files into the appropriate directories.
Spread the Word and Subscribe The final step in creation of a podcast is to spread the word that the podcast exists and it is ready to be heard. There are various methods of alerting an audience, and these methods should be weighed against the intended audience of the podcast. For instance, if the audience relies heavily on the company intranet as their sole source of information, it would be wise to alert the audience via a link on the intranet homepage. In this example, the target audience is a blogger’s extended family. They may use their email more than any other electronic communications method, so an email will be sent to them with a link to the podcast. Once they receive the email, they should be able to subscribe to the podcast by clicking the link. After clicking the link, the default RSS subscription software installed on the computer (Internet Explorer by default in Windows XP and Vista) will load the feed. Figure 8-2 contains a screenshot of an RSS feed loaded into Internet Explorer. Notice that Internet Explorer allows the user to click the Subscribe to this feed link to subscribe to the feed. The ability to subscribe with a single click is one of the reasons that RSS and podcasting is so successful. Internet Explorer makes the subscription process easy.
Figure 8-2
220
2:16pm
Page 220
Schwartz c08.tex
V3 - 12/26/2008
2:16pm
Chapter 8: Podcasting Instead of using Internet Explorer, another member of the podcaster’s family could have added the podcast to iTunes by simply dragging the link into the podcasts library. This would also give him or her the ability to transfer the podcast to his or her iPod for mobile playback. Figure 8-3 contains a screenshot of the podcast library structure in iTunes after the link in the email is dragged into iTunes. The iTunes software is not only able to playback the audio file, it is able to keep track of previous versions and determine when new versions are available. This is possible because of the information that is contained in the RSS feed file. If one were to sit back and really think about it, he or she would probably realize that RSS, though just XML, is pretty powerful because of all of the pieces of software that are created to consume it. What is even more incredible is the fact that individuals who are not overly technical can create the RSS feed file.
Figure 8-3 Granted, the above steps are overly simplified at a high level, but that is all it takes to create a podcast. The next section is a deep dive into the creation of the archive. It is in this section that all of the smoke and mirrors will be removed.
You Tr y It This section contains the technical steps to create a podcasts. It makes reference to Microsoft’s Internet Information Services (IIS), which is Microsoft’s web server. The Windows Server operating systems, 2000 and later, comes with IIS. Additionally, Windows XP and Vista contain versions of IIS. As long as the example is being executed on one of these operating system, IIS should be available.
Configure IIS This section contains steps to create a podcast and use IIS running on Windows Server 2003 to host that podcast. A default installation of IIS is not configured to serve podcasts. It is recommended that, if you are using IIS for this example and have not configured it to the RSS server, you should stop now and complete the following steps. If you are not using IIS or have already configured it, feel free to skip over the remainder of this section.
1. 2.
Open the IIS Manager. (Click the Start button, and select Administrative Tools.)
3. 4. 5.
Click the HTTP Headers tab.
Open the Properties window of the web site being used for the example. (Right-click on the web site, and click Properties.)
Click MIME Types. Click New.
221
Page 221
Schwartz
c08.tex
V3 - 12/26/2008
Chapter 8: Podcasting 6.
Use the following values for the text boxes. (See Figure 8-4.)
a. b. 7.
Extension: rss. MIMIE type: application/rss+xml
Click OK to the MIME Type, MIME Types, and Properties windows.
Figure 8-4
Identify Content and Audience The content and audience for this example will be the same as the Creating an Archive section. Just to recap, the content will be the podcaster’s son’s first words, and the audience is his extended family. For the purposes of this example, concentrate less on the content and audience and more on the technical details of creating the podcast.
Record Content The content for this example will be recorded using the sound recorder built into the Windows operating system. Using the sound recorder requires the availability of a microphone. Many laptops have built-in microphones that can be used. If no microphone is available, use any WAV file available, for instance, a track from a CD or one downloaded from the Internet. Using a downloaded WAV file will not impact the success of the example because, as mentioned above, this example focuses on the technical aspects of creating the podcast, not the content. From the Start Menu, open Sound Recorder. (Click the Start button, and select All Programs. Select Accessories, and then select Entertainment.) Record the content by clicking the Record button. When finished recording, click the Stop button and save the recorded content as a WAV file to the desktop or some other working directory. Next, convert the WAV file to a format that can be used in the archive. For this example, the WAV file will be converted into a MP3 file using Acoustica MP3 To Wave Converter Plus, a shareware program that can be downloaded at www.acoustica.com/mp3-wav-converter/index.htm. As exemplified by Figure 8-5, once installed, the process to convert the file is as simple as right-clicking the WAV file and choosing Convert to MP3, as shown in Figure 8-5. After creating the MP3 file, open the directory it was saved to. Copy the file to the example working directory. The content is now recorded and ready to be referenced in the RSS feed file.
222
2:16pm
Page 222
Schwartz c08.tex
V3 - 12/26/2008
2:16pm
Chapter 8: Podcasting
Figure 8-5
Create the RSS Feed File Creating the RSS feed file can be done by either writing the XML by hand or using a tool to generate the XML. It is recommended that, before using the tool, the RSS schema is fully understood. RSS was covered in Chapter 6, so this example will jump right to a tool. The tool that will be used is this example is the podcast RSS feed generator, which can be found at www.tdscripts.com/webmaster_utilities/podcast-generator.php. Open a web browser, and navigate to the above-mentioned URL. Figure 8-6 contains a screenshot of the tool. Populate all of the fields with the data required to generate the RSS feed file. The following are descriptions of the fields with example values. T
Blog/web site title: The title of the web site or blog that will host the podcast T
T
Example: My Vocabulary
Blog/web site URL: The URL of the blog or web site that will host the podcast T
Example: http://localhost
223
Page 223
Schwartz c08.tex
V3 - 12/26/2008
Chapter 8: Podcasting
Figure 8-6
T
Blog/web site description: A brief description of the blog or web site T
T
Language: The target language of the podcast T
T
Example: Contains audio of my son talking
Enclosure link: The link to the media file created during the Record Content step, that is, the link to the file once it is on the server. T
224
Example: My Son’s Vocabulary
Enclosure description: A description of the media file created during the Record Content step T
T
Example:
[email protected]
Enclosure title: A title for the media file during the record content step T
T
Example: Not copyrighted at all
Webmaster email address: The email address of the webmaster T
T
Example: English
Copyright info: Any pertinent copyright information T
T
Example: This web site hosts my family’s podcasts.
Example: http://localhost/podcasts/vocab.mp3
2:16pm
Page 224
Schwartz
c08.tex
V3 - 12/26/2008
2:16pm
Chapter 8: Podcasting T
Enclosure type (audio/MPEG): The type of file the podcast is linking to for content T
T
Example: MP3
Enclosure size (in bytes): The size of the file in bytes T
Example: 64242
The easiest way to determine the size of the file is to right-click the file and view its properties. Figure 8-7 is a screenshot that shows the properties of the file used in this example.
Figure 8-7 Once all of the information is entered into the tool, click the Create RSS 2.0 feed (first-time) button. The XML that comprises the RSS feed should be generated. Figure 8-8 contains a screenshot of the generated feed. The last step before creating the RSS feed file is to validate the generated XML. W3C has a tool that is free to use and will guarantee the feed is valid according to the RSS 2.0 specification. Navigate to http://validator.w3.org/feed/check.cgi, click Validate by Direct Input, paste the XML generated by the tool into the text box, and click Check. Figure 8-9 shows a successfully validated feed. This tool will also give recommendations if the feed is invalid or needs to be changed for interoperability reasons. Finally, open Notepad, and paste the generated XML into the window. Save the file as vocab.rss into the example working directory. At this point, the two files needed to create the podcast archive have been created and are ready to be published to the web server.
225
Page 225
Schwartz
c08.tex
V3 - 12/26/2008
Chapter 8: Podcasting
Figure 8-8
Publish the Two Files to a Server As mentioned above, this example uses IIS to serve the podcast. Since IIS was previously configured to serve RSS, the process of publishing the files to the server should be as simple as copying the files into the home directory for the web server. In this example, a subdirectory named podcasts off the home directory is being used as the directory that contains the podcasts. If the home directory is unknown, it can be found by going into the IIS manager and going to the properties of the web site. The home directory is located in the Local Path text box under the Home Directory tab (see Figure 8-10). Open the directory on the web server that is being used for the example, and copy the MP3 and RSS file into it. Test the feed by opening Outlook 2007 and subscribing to the feed. Outlook should look similar to the screenshot in Figure 8-11.
Spread the Word and Subscribe Spreading the word that the podcast is ready for subscription is as simple as passing along the address of the podcast. For this example, an email will be sent to the podcaster’s family, asking them to subscribe to http://localhost/podcasts/vocab.rss. As http://localhost is not a real address on the Internet, no one will actually be able to subscribe to this sample podcast.
226
2:16pm
Page 226
Schwartz
c08.tex
V3 - 12/26/2008
2:16pm
Chapter 8: Podcasting
Figure 8-9
Figure 8-10
227
Page 227
Schwartz
c08.tex
V3 - 12/26/2008
Chapter 8: Podcasting
Figure 8-11
Podcasting in SharePoint The You Try It above used very basic functionality of the IIS web server available for Windows Server 2003. What about SharePoint? How can this tool simplify the process of creating a podcast? SharePoint does offer a great deal in terms of functionality, but the following example is going to stretch the bounds a bit and open Visual Studio to create a custom Web Part.
Getting It All to Work Performing an Internet search for SharePoint and podcast will certainly return a multitude of options for getting podcast to work from within SharePoint. Though many of these solutions are great options and should certainly be investigated, the following example is completely custom in an effort to facilitate an OOB thought process. Though extremely technical, the following example is easy to implement if the instructions are followed. The overall goal of this end-to-end example is to show how the audio file, created in the previous example, can be housed, supported, and served from SharePoint as a podcast. The audio file and all associated metadata used in the RSS feed portion of the podcast will reside in a custom list, and the generation of the RSS feed portion of the podcast will be left to Web Parts written in ASP.NET.
228
2:16pm
Page 228
Schwartz
c08.tex
V3 - 12/26/2008
2:16pm
Chapter 8: Podcasting Environment Configuration This example was generated using Windows Server 2003 running MOSS 2007 SP1. To avoid environmental issues with the example, it is recommended that a similar configuration be used when executing the example. This example will make use of Visual Studio 2008 for custom Web Part development. Microsoft recommends deploying custom code as solutions/features. The creation of Web Parts, solutions, and features is outside of the scope of this book and will not be covered. To help hide the implementation details of Web Part development, the SmartPart template will be used. Before diving into this example, it is recommended that the SmartPart templates be downloaded and installed. The SmartPart templates are located on the CodePlex web site. These templates are a great way of giving a developer a head start, but they are not a substitution for a good understanding of solutions and features. With the development environment configured, the next step is to create a site to house and serve the RSS feeds. For simplicity sake, it is recommended the example be run using a clean SharePoint site. Additionally, since this example calls for directly editing the application’s web.config, it is recommended that a new web application be created for this example. Create a new application from Central Administration. Once completed, go ahead and create a site collection using the blank site template. Figure 8-12 is a screenshot of the SharePoint environment used in this example.
Figure 8-12 Next, create a document library, and name it as Pages. Use a document template of Web Part page. This document library will be used to hold a Web Part page created later in the example. Figure 8-13 is a screenshot with the appropriate field for the document library.
229
Page 229
Schwartz
c08.tex
V3 - 12/26/2008
Chapter 8: Podcasting
Figure 8-13
Finally, create a Web Part page named PodcastGenerator, and place it into the Pages document library, as shown in Figure 8-14. The Web Parts developed in this example require elevated permissions. Since code access security (CAS) files are outside the scope of this book and we are going to simplify the example, the web.config file needs to be altered to override the default security settings. This is not a recommended approach, and it should never be attempted in a production SharePoint environment without fully understanding the consequences. Before altering the security settings, it is best to make a backup of the web.config file. This can be done by simply copying and pasting the file. To make the changes required to successfully execute this example, start by opening the web.config file for your SharePoint site in your favorite XML editor. The web.config file usually resides somewhere below the Inetpub directory. The web.config file of the site used in this example resides in C:\Inetpub\wwwroot\wss\VirtualDirectories\8888, as shown in Figure 8-15. Once the file is opened, find the trust element and replace WSS_Minimal with Full. Before Edit After Edit
Save and close the web.config file. Make sure to reload the site being used for the example to ensure the changes made to the web.config file did not have negative effects on the site.
230
2:16pm
Page 230
Schwartz
c08.tex
V3 - 12/26/2008
2:16pm
Chapter 8: Podcasting
Figure 8-14
Figure 8-15
231
Page 231
Schwartz
c08.tex
V3 - 12/26/2008
Chapter 8: Podcasting If SharePoint returns the default error message at any time during the execution of this example, it is recommended that the development and test server be configured to turn off friendly error messages. This is not an appropriate setting for a production server. To do this, open the web.config file, and turn off the SharePoint error pages by turning off custom error pages:
1.
Search the web.config file for the phrase ‘‘customErrors’’ to locate the correct configuration option.
2.
Change to .
Have SharePoint return more informative error details by turning the call stack on:
1. 2.
Search for the phase ‘‘SafeMode.’’ Change to .
Creating the RSS Feeds Library A custom SharePoint document library will be created to house the MP3 file that was created in the above example and hold the information needed to build the RSS portion of the podcast. The first step is to create a new document library. The values captured in Figure 8-16 should be used when creating the document library. Notice the Document Template field is set to None because the target document type for this list is a MP3 audio file.
Figure 8-16
232
2:16pm
Page 232
Schwartz
c08.tex
V3 - 12/26/2008
2:16pm
Chapter 8: Podcasting Once the document library is created, go to the settings of the library and add the following columns using a column type of a single line of text: T
Feed site title
T
Feed site link
T
Feed site description
T
Language
T
Webmaster
T
MP3 title
T
MP3 description
Figure 8-17 contains a screenshot of the document library settings after the columns have been added.
Figure 8-17
Note that the single line of text column type is not the optimal column type for all of these fields. For instance, the Feed Site link should probably be a hyperlink or picture column type. The columns have been defined this way in an effort to make the Web Part code section of the example easier. Compared to a hyperlink or picture column, the single line of text column type is easier to work with. For more information, visit MSDN and research the SPFieldURL class. Upload the MP3 file created in the previous example, making sure to fill in all of the appropriate fields, Figure 8-18 contains a screenshot of an uploaded file and its associated field data.
Creating the Web Parts If you are unfamiliar with Visual Studio 2008 and Web Part development, it is recommended that you pay very close attention to this section of the example, especially during the configuration of the project. A mistake made during this section can be very tricky to figure out if one is new to features and solutions. SharePoint development is typically done on a server running SharePoint. This example assumes Visual Studio 2008 is installed on a server running MOSS 2007 SP1.
233
Page 233
Schwartz c08.tex
V3 - 12/26/2008
Chapter 8: Podcasting
Figure 8-18
Creating the Visual Studio Project Open Visual Studio 2008, and create a new project of type SharePoint Web Part (SmartTemplate) using a project name of Chapter8Examples. The project may be placed in any location on the local machine, but please make note of the location as you will need it below. Before clicking OK, clear the Create directory for solution checkbox. Figure 8-19 contains a screenshot of the values used to create the project used in this example.
Configuring the Visual Studio Project Before developing the Web Parts, the project needs to be configured by changing names of files, altering XML, and adding new files.
1.
Rename the file webpart1.cs to podcastlinks.cs, clicking Yes to the message box prompting whether or not to rename all project references.
2.
Open the file podcastlinks.cs, and perform a find and replace against the entire solution for webpart1 and replace it with podcastlinks. Five occurrences of webpart1 should be replaced.
3.
Copy the file podcastlinks.cs to the same directory, and name the file PodcastGenerator.cs.
4. 5.
Expand the directory WSP → 12 → TEMPLATE → FEATURES → Chapter8Examples. Rename the file Chapter8Examples.WebPart1.webpart to Chapter8Examples. podcastlinks.webpart.
234
2:16pm
Page 234
Schwartz c08.tex
V3 - 12/26/2008
2:16pm
Chapter 8: Podcasting
Figure 8-19
6.
Copy the file Chapter8Examples.podcastlinks.webpart into the same directory as Chapter8Examples.PodcastGenerator.webpart.
7.
Add a reference to SharePoint (Windows SharePoint Services). See Figure 8-20.
Figure 8-20
8.
At this point, the Visual Studio Solution Explorer should contain the same items as the Solution Explorer in Figure 8-21.
235
Page 235
Schwartz c08.tex
V3 - 12/26/2008
Chapter 8: Podcasting
Figure 8-21
9. 10.
Close all open files. (Many of the files will be reopened, but they are being closed to avoid confusion.) Open the file Chapter8Examples.PodcastGenerator.webpart, and change the XML in the file to mimic the XML below. Save and close the file after the changes are made.
Cannot import this web part. Podcast Generator Web Part Web part that when passed a List Item ID generates the RSS portion of a podcast
236
2:16pm
Page 236
Schwartz
c08.tex
V3 - 12/26/2008
2:16pm
Chapter 8: Podcasting 11.
Open the Chapter8Examples.podcastlinks.webpart file, and change the XML in the file to mimic the XML below. Save and close the file after the changes are made.
Cannot import this web part. Podcast Links Web Part Web part that creates links of podcasts using the items in a document library
12.
Open webpartsmanifest.xml, and change the XML in the file to mimic the XML below. Save and close the file after the changes are made.
At this point, the Visual Studio project is fully configured and is ready for the code. The feature now contains references to two Web Parts: Podcast Links and Podcast Generator. The shell for the project now exists. The following steps will actually add the source code to the correct files and grant the required functionality to the custom Podcast links and Podcast Generator Web Parts.
Update the Web Part Code Files The Podcast Links Web Part will use the document library created in the Create the RSS Feed Library section of this example to generate a list of available podcasts.
237
Page 237
Schwartz c08.tex
V3 - 12/26/2008
Chapter 8: Podcasting 1.
Open PodcastLinks.cs and change the C# code in the file to mimic the C# code below. Save and close the file after the changes are made.
using System; using System.Web.UI; using System.Web.UI.HtmlControls; using Microsoft.SharePoint; namespace Chapter8Examples { public class PodcastLinks : System.Web.UI.WebControls.WebParts.WebPart { protected override void CreateChildControls() { base.CreateChildControls(); //get all of the files we can generate podcasts for from the Document Library foreach (SPListItem oSPLi in SPContext.Current.Web.Lists["Chapter 8 MP3 Files"].Items) { //force a line break base.Controls.Add(new LiteralControl("")); //create an anchor element, set some properties and add it to the controls collection HtmlAnchor nextPodcast = new HtmlAnchor(); nextPodcast.InnerText = oSPLi["MP3 Title"].ToString(); nextPodcast.Title = oSPLi["MP3 Description"].ToString(); nextPodcast.HRef = "/Pages/PodcastGenerator.aspx?PodcastID=" + oSPLi.ID.ToString(); nextPodcast.Target = "_blank"; base.Controls.Add(nextPodcast); } } } }
2.
Open podcastgenerator.cs and change the C# code in the file to mimic the C# code below. Save and close the file after the changes are made.
using System; using Microsoft.SharePoint; namespace Chapter8Examples { public class PodcastGenerator : System.Web.UI.WebControls.WebParts.WebPart { protected override void OnInit(EventArgs e) { //used to make sure we got passed and integer int iId = 0; //notice we need to get the page the web part resides on and work with
238
2:16pm
Page 238
Schwartz c08.tex
V3 - 12/26/2008
2:16pm
Chapter 8: Podcasting that we are not working directly with the web part if (base.Page.Request.QueryString["PodcastID"] != null && int.TryParse(base.Page.Request.QueryString["PodcastID"], out iId)) { //get the list item that contains the MP3 file we are creating a podcast for SPListItem oSPLi = SPContext.Current.Web.Lists["Chapter 8 MP3 Files"].Items.GetItemById(iId); //we don’t want the current response because we are going to send back out own response base.Page.Response.Clear(); //set the MIME type to RSS base.Page.Response.ContentType = "text/rss"; //generate the RSS XML feed using a combination of hard coding and list item fields base.Page.Response.Write(""); base.Page.Response.Write(""); base.Page.Response.Write(""); base.Page.Response.Write("" + oSPLi["Feed Site Title"].ToString() + ""); base.Page.Response.Write("" + oSPLi["Feed Site Link"].ToString() + ""); base.Page.Response.Write("" + oSPLi["Feed Site Description"].ToString() + ""); base.Page.Response.Write("" + oSPLi ["Language"].ToString() + ""); base.Page.Response.Write("Not copyrighted at all"); base.Page.Response.Write("" + DateTime.Now.GetDateTimeFormats(‘R’)[0].ToString() + ""); base.Page.Response.Write("Chapter 8 Example Podcast Generator"); base.Page.Response.Write("" + oSPLi["Web Master"].ToString() + ""); base.Page.Response.Write("1"); base.Page.Response.Write(""); base.Page.Response.Write("" + oSPLi["MP3 Title"].ToString() + ""); base.Page.Response.Write("" + oSPLi["MP3 Description"].ToString() + ""); base.Page.Response.Write("" + oSPLi.File. TimeLastModified.GetDateTimeFormats(‘R’)[0].ToString() + ""); base.Page.Response.Write(""); base.Page.Response.Write(""); base.Page.Response.Write(""); base.Page.Response.Write(""); //we are done generating our response send it off base.Page.Response.End(); }
239
Page 239
Schwartz
c08.tex
V3 - 12/26/2008
Chapter 8: Podcasting else { base.OnInit(e); } }
} }
3.
Build the project, and verify there are no errors or warnings by examining the Visual Studio 2008 output window. If error or warnings are generated, go back through the example to identify and fix the discrepancies.
Deploying and Testing the Solution Congratulations, the example is now almost complete. All that is left is the deployment and test of the solution. Since the SmartTemplate was used to create the project and the project has been built successfully, an installation file now exists in a subdirectory to the project. Navigate to the directory the project is saved in, which was chosen earlier in the Create the Visual Studio Project section, locate the Setup subdirectory, and double-click the Setup.exe file. (See Figure 8-22.) For those familiar with solutions, notice this directory also contains the file Chapter8Example.wsp. If STSADM.exe is typically used to install the solution, this is the file that would be used.
Figure 8-22 Follow the installation screens to install the solution and deploy the feature, which contains the Web Parts. Make sure the feature is deployed to the SharePoint site created in the Environment Configuration section of this example. Once the feature is successfully deployed, open the above mentioned site and activate the Feature Chapter8Examples, as shown in Figure 8-23.
Figure 8-23 Navigate to the homepage of the site being used for the example, and add a Podcast Links Web Part. Once the Web Part is on the page, a list of available podcasts will be displayed from the Chapter 8 MP3 Files
240
2:16pm
Page 240
Schwartz
c08.tex
V3 - 12/26/2008
2:16pm
Chapter 8: Podcasting document library. This assumes items have been added to the document library. Notice in Figure 8-24 that the Web Part displays the same items in the document library.
Figure 8-24 Next, add a Podcast Generator Web Part to the PodcastGenerator page created earlier in this example. Navigate back to the site’s homepage and click on one of the podcasts. If everything is configured correctly, a new browser window and the RSS feed for the podcast will open, as shown in Figure 8-25.
Figure 8-25
241
Page 241
Schwartz
c08.tex
V3 - 12/26/2008
Chapter 8: Podcasting To validate the feed and the ability to subscribe to the feed, download and install a piece of podcast subscription software, and test it out.
Success Factors for Podcasting In Organizations Introducing podcasting into an organization, like any other change, whether that change is to process or software, should never be attempted without the proper planning. The introduction of podcasting into an organization will fail miserably if it is not taken seriously. The following four success factors, which are not specific to podcasting, are only intended to stir thought because success factors depend in many ways upon the organization. It would be impossible to list out all possible success factors and their organizational variations.
Early Adoption The early adoption of users is imperative with any change, and podcasting is no exception. Some of the benefits of having early adopters include having them help identify gaps/issues with new processes. They are typically intelligent users, at least in regard to what you are rolling out. They are usually advocates of the change. Targeting the correct set of early adopters will help to ensure the process of rolling out podcasting. For instance, chances are, the director in the finance department who is always listening to something on his or her MP3 player will be a better advocate of podcasting than the person in the treasury department who is still using a typewriter to complete his or her expense report. It is understood that this statement is somewhat stereotypical because, as everyone knows, you should never judge a book by its cover, but the point is to know your audience and choose the correct set of individuals to be the early adopters. Choosing a set of individuals who have never listened to a podcast or might not be the most technically inclined as your early adopters is a bit dangerous because there is always the potential that they don’t like receiving information in audio form. Even worse, they couldn’t figure out how to listen to the podcast and gave up.
Dedicated Resources Dedicating a resource(s) to own podcasting during and after the rollout is imperative to any successful podcasting implementation. This seems like it would be an obvious point, but, oftentimes, a technology gets introduced to the organization by some developer creating/installing a piece of software on some old computer that sits below his or her desk. This piece of software has no one to support it. More often than not, production environments are created by someone creating that first WSS site on a development server and letting someone in the business play with that site. Three months later, a help desk ticket is opened, stating a web site named Bill’s Sandbox just went down and all of the company financials are posted to that site. When asked for more information, all the opener of the ticket can say is something to the effect of, ‘‘Bill Johnson created the site for me before he left the company, and I get to the site by typing http://192.168.1.4." Every IT director knows he or she has received a ticket like this. The first thing that goes through his or her head is, ‘‘When did we decide to implement it? And I hope I don’t own it.’’ No matter what department an individual resided in and where he or she sits in the food chain of that department, ownership is important to success. Without ownership, there is no accountability.
242
2:16pm
Page 242
Schwartz
c08.tex
V3 - 12/26/2008
2:16pm
Chapter 8: Podcasting Without accountability, all that is left is finger-pointing. A podcasting implementation will fail if the only support that is available after or during the implementation comes from being on the wrong end of a finger-pointing session. A proper governance policy, as described in Chapter 2, can help prevent just this sort of problem. Every podcasting implementation, at a minimum, needs a resource to fill the follow roles:
Trainer The understanding and ability to use a new technology requires some sort of education. Someone in the organization needs to be responsible for the training of podcasting. This individual(s), at a minimum, has to be extremely comfortable with all aspects of consuming podcasting, including managing subscriptions, playback, and just overall good computer skills. Nothing is worse for learning morale than watching the person who is supposed to be the expert fumble when trying to use what he or she is teaching. The learner disconnects because, mentally, he or she thinks, ‘‘If the trainer can’t use it, how I am supposed to use it?’’ A train-the-trainer session should be executed for the person assigned to the training role so he or she can make training an enjoyable experience while effectively educating the end users on the subject of podcasting. Most organizations have individuals who are dedicated trainers, no matter what the subject. The person in the role of trainer should be a technology-inclined individual who has the ability to connect with his or her trainees.
Content Manager The content manager is the individual(s) who owns the content. This individual decides whether new content is needed or not and then creates the new content (podcast). This role is quite possibly the most important role because, without podcasts, a podcasting implementation is doomed to fail. The main duty of the content manager is to keep content fresh, which is another success factor that will be covered in the next section. In many organizations, the content manager is someone who is responsible for getting the word out. For instance, a local bank has monthly internal podcasts with content that includes the state of the organization. In this organization, an executive administrative assistant is responsible for creating the content. She is a charismatic person with a public speaking background. As shown by the local bank, the content manager, as long as he or she is given the correct tools, does not need to be a technological geek to create the content.
IT Support The IT support role is, in many ways, a trivial role because most organizations already have individuals responsible for infrastructure from both a software and hardware perspective. Even though these individuals are currently on staff, they are often overallocated, so adding another set of hardware/software may only slow their response time. Making sure the IT support has enough bandwidth to support the implementation is key to the success of the implementation. The first time the server goes down, it will no doubt be the first time the CIO or CEO decides he or she is going to subscribe to his or her first podcast. This will probably tarnish the reputation (in the eyes of what could be the most important user) of the implementation during a critical time in the adoption life cycle.
243
Page 243
Schwartz c08.tex
V3 - 12/26/2008
Chapter 8: Podcasting Fresh Content Keeping content fresh is neither a science nor new topic. Content freshness is an important success factor, no matter what the media. To exemplify this point, think of the last time a newspaper reran the same article two days in a row. It does not purposely happen. It goes without question that, if it were to replicate the articles on a daily basis, fewer and fewer people would read the product. The same can be said for podcasting. One applied use of podcasting in organizations is training. Recently, an organization in the Greater Denver area realized many of its employees were listening to books on tape during their long commutes to and from the office. The organization also realized that many of its employees were using iPods to play back the books on tape. This organization made the decision to create daily podcasts full of training and other pertinent company information, for example, the state of the office from the CEO and so forth. Using the survey capabilities of SharePoint, they also found out that more and more employees were subscribing and listening to the podcasts. The number one reason why they were doing this was because they could count on something new every day. It was the freshness of the content that not only sustained but increased the audience size.
Hardware/Software Ensuring the appropriate server infrastructure is in place for server podcasts is typically not a success factor that is missed. What is missed on the hardware/software front is giving the end users the right tools to consume the podcast. Quite a few organizations do not distribute speakers/headphones with their desktops. If podcasting is going to be a successful form of social computing in the organization, the organization must embrace the required hardware and software needs. It is possible that not all individuals in the organization need these tools, but, if their job role requires them to podcast, make sure to plan for their needs. As an example, the executive administrative assistant mentioned in the Content Manager section would need both a microphone and RSS feed generator software to effectively do her job. The typical response to giving individuals headphones and microphones is that they will use them for listening not related to their jobs, thus sucking up precious bandwidth. The correct solution to this problem is to not allow the streaming of content from the web. The proxy servers and firewalls should be configured to protect against this because, if individuals really want to listen to external content, they will find a way. As discussed earlier in this chapter, creating podcasts is a somewhat straightforward process that most any end user can perform with a little help the first or second time. It is important to remember that these users may need additional software or hardware to create podcasts. This is an important success factor because asking an end user to write a XML RSS feed with Notepad may create frustration that derails the adoption process. Besides the frustration factor, it isn’t really a good use of someone’s time to have him or her write a file that could take upwards to an hour when a piece of software can generate that file in a fraction of the time.
Enterprise and Community Contributions Perhaps the most prevalent contribution (if not the only supported contribution) to podcasting with SharePoint comes from the Podcasting Kit for SharePoint (PKS), which can be downloaded from www.codeplex.com/pks. This community-supported toolkit contains all of the tools necessary to launch a SharePoint podcasting implementation at an enterprise level. The following is a description from the PKS CodePlex web site that details what can be accomplished using the toolkit.
244
2:16pm
Page 244
Schwartz c08.tex
V3 - 12/26/2008
2:16pm
Chapter 8: Podcasting T
Listen and watch audio/video podcasts anywhere on your PC or mobile device (Zune, SmartPhone, or any podcasting device).
T
Share content by producing your own audio/video podcasts, and publish them on PKS on your own.
T
Connect and engage with podcasters via your integrated instant messaging program.
T
Find the most relevant content using the five-star rating system, tag cloud, and search engine. Provide your feedback via comments.
T
Get automatic podcast updates by subscribing to RSS feeds fully compatible with Zune and other podcasting devices: T
Simple RSS feeds based on a defined podcast series
T
Simple RSS feeds based on a person
T
Dynamic RSS feeds based on search results (will be implemented later in 2009)
T
Play podcasts in real-time using Microsoft Silverlighttm and progressive playback.
T
Retrieve instant ROI and metrics with the ability to track the number of podcasts downloaded and/or viewed, instant feedback via rating system and comments, and subscribers via the RSS feed.
T
Access the richness of SharePoint to extend the solution, including workflows, community subsites, access rights, editorial, and more.
T
Customize your own PKS user experience.
As mentioned on the CodePlex web site, overhead is involved in getting this toolkit implemented, especially if the goal is to implement it at an enterprise level. It is not as easy as clicking a button and having everything needed to podcast in SharePoint. That being said, it is very well documented with clear and concise instructions. Besides the PKS, there are very few packaged and supported SharePoint podcasting solutions. (At least none of which have been used by the author.) If the PKS does not meet the immediate needs of the organization, it is recommended that a custom solution be investigated. There are many Microsoft partners and independent consultants that can create and install custom solutions that will scale to the enterprise. As with any partnership, a detailed analysis of the partner organization should be conducted to ensure they have the credentials to conduct a SharePoint podcasting implementation, as there is more to it than just creating the software.
Summar y Podcasting has become a highly adopted form of social computing. In this chapter, we visited many of the topics surrounding podcasting through the use of both technical and nontechnical examples. As a recap, the following topics were covered in detail: T
Reviewing the history of podcasting
T
Determining your audience
T
Providing content and information relevant to the listeners
245
Page 245
Schwartz
c08.tex
V3 - 12/26/2008
Chapter 8: Podcasting T
Creating an archive
T
Podcasting in SharePoint
T
Providing success factors for podcasting in organizations
T
Promoting enterprise and community contributions
With podcasting under your belt, it is now time to continue down the road of social computing. Sit back and relax as you dive into the world of mashups. Through insightful examples and detailed descriptions, the world of mashups will soon be clear.
246
2:16pm
Page 246
Schwartz
c09.tex
V3 - 12/26/2008
2:30pm
Mashups Mashups are everywhere! They’re in our music, pictures, and video. Technology advances help everyday people do extraordinary things. Now virtually anyone with a PC can easily take several images or videos and put them together to create something interesting, informative, or entertaining. Music can help a listener recall some amazing memories. Without the need of an elaborate music studio, the ordinary person can create music based on several pieces of existing music and add some random (or well-placed) voiceovers to mash up something entirely new while still being very familiar. A lot of software is readily available that will enable people to accomplish their artistic goals as they lay a top track or end to end to evoke that emotional responses they are looking for. The same concepts have been applied to software development. In the beginning of time, there were monolithic applications. These monsters solved entire problems all by themselves and were not reusable at all. People started to realize they have written the same function repeatedly. Breaking these reusable functions out started a mantra, ‘‘This code will do one thing and do it really well.’’ Languages became more and more accommodating to this kind of thinking. Pretty soon, we had application developers who’d string together constituent components via graphical representations and APIs to create a composite application that was useful to someone in some way. This puts the developer in the business of developing composite applications instead of concentrating on components that can be used in applications. In an effort to give users the ability to do what they want without sucking the production out of the development team, time and effort is spent on allowing users to configure and customize the applications themselves. In looking at some of the first My Page applications, Yahoo! created My Yahoo! This page gave users the opportunity to configure what kind of news and information they wanted to see. Later, Yahoo! added functionality that let users gather and arrange information in any way they liked. If you were a realtor, you might want to quickly see the weather and news based on what the Federal Reserve had to say as well as upcoming local events. However, a gardener might want to see something entirely different. Since we have all this highly specialized code and wonderful user interface opportunities, wouldn’t it make sense to let users mash up their own applications? Chances are, they will mash up
Page 247
Schwartz
c09.tex
V3 - 12/26/2008
Chapter 9: Mashups something better than beef, carrots, and potatoes all mixed together. Chances are pretty good they’ll mash up something pretty useful. In the meantime, programmers and user interface designers can go back to building highly specialized functionality to be used in these mashup scenarios. And that’s the real difference between a mashup and a composite application. Business users build mashups; developers using APIs build composite applications. Many have tried to categorize mashups, and that could just make a person go crazy. Consider how mashups work instead. Mashups generally have four parts: data, logic, presentation, and the people who do the mashing and using.
Reasons to Assemble Data Because mashups are easy to create, they can discarded and forgotten. The problems that are trying to be solved may not be around two weeks or twenty years from now. Mashups provide a low barrier of entry for anyone, regardless of their programming training, to build applications that can solve their present problems. A salesperson might be burdened with the high price of gasoline as well as the time he or she has during the day. The salesperson could place his or her appointments and gas stations with prices to get an idea of where he or she should get gas that fits conveniently into his or her schedule. If the user was to incorporate his or her schedule and appointments into the map so he or she could park and walk or schedule himself or herself to get cheap gas, then this would be a more complex application that only people who care about that particular salesperson’s schedule would care to use. This user-driven development and customization makes the mashups particularly unique. Users are now the application developers who build composite applications, and the programmers are now building constituents to be used in these composite applications. With mashups, the folks who need a solution to their own problem can develop a very personal solution. The application they develop maybe useful only to them, or it may be useful to a mighty large number of folks. Building a mashup that shows gas prices on a map might generate some interest and web traffic, and there is a lot you can do with user interest and web traffic. Imagine a trucking company might want to know where to get cheap gas in order to reduce costs. It’s possible that this trucking company may wish to use the application built by an individual with no association to the trucking company itself. This is a great key to building successful business, doing the same thing you’re doing now but only cheaper. Some will argue that the key to success is agility. Some companies really care about what their competitors are doing. How much are they charging? How quick is the turnaround? Are customers happy with their products and services? Why are customers using your company? Why do they use your competitor? If given half a chance, most customers will vent about the vender they are using now and the ones they’ve used in the past. This information might be gathered from a call center, and the information can be used in comparison with information they already have. In a mashup-friendly environment a user in marketing could quickly put together a form that allows call center employees to gather information. A second mashup could be created to report combined data from several sources. Putting the entry to these two mashups in close proximity could be considered the makings of a system. Users sometimes just know best. They sometimes don’t have a clue of what they want, but, for the sake of this chapter, consider the ones who do. Mashups are the perfect framework where users and mashup
248
2:30pm
Page 248
Schwartz
c09.tex
V3 - 12/26/2008
2:30pm
Chapter 9: Mashups developers can build entire systems to solve their complicated business problems. Arguably, for a large percentage of the problems, the users can solve on their own. At times, new functionality will be necessary. When they do make a request to IT for something, they probably have a very good idea what they want after working through a mashup. Mashups empower people because they can build what they need when they need it. This kind of self-service application development lifts the burden from IT. But does that mean that the uniformity and governance that corporations once enjoyed is out the window? Absolutely not. All of the business rules could still be ensured inside of the mashup. A mashup developer doesn’t have to worry about the data getting into the wrong hands because it’s already taken care of. What’s more, the mashup developer can’t mess it up, even if he or she really wanted. So here’s a world in which a business can quickly respond to business problems of the day by empowering people to build applications that are subject to all of the existing and future business rules. It sounds like a pretty nice place. Recall the mashup reporting application discussed above, which combines reportable data. This is where the real magic happens, that is, when data is assembled from multiple sources.
Example Sites Mashups are still an emerging technology, and there are a few mashup environments out there with more to come. Popfly.com and Yahoo! Pipes are two examples of fairly robust mashup environments that are gaining in popularity.
Popfly Popfly.com is an interesting approach to application development. Everything is web-based. Anyone with a Windows Live account and the proper amount of motivation can conceivably create a game, web page, or mashup. Each of the three application outputs (game, web page, and mashup) are different, but they are very similar as they all run on Microsoft Silverlight. Blocks make up the smallest piece of functionality in a Popfly mashup environment. To better demonstrate how a mashup is created on Popfly, a campaign contribution scenario will be used. The Federal Election Commission makes campaign contribution information available down to the individual person, his or her location information, and his or her employer. Like any information of this magnitude, it’s fairly worthless until we can filter and aggregate it. A bar graph of total contributions for a given zip code of McCain and Obama might give information that is easier to use than what is readily available at www.fec.gov/. The end result is represented in Figure 9-1. The user enters a zip code and clicks Go. A bar graph comparing McCain’s and Obama’s campaign contributions appears. Building this mashup is pretty simple, and much more complicated scenarios could be had. The real takeaway here is the concept of hooking together individual blocks and building something useful. Starting with the basics, the Popfly mashup interface consists of a designer area, a palate of blocks, and some controls to edit and run the mashup. Figure 9-2 shows the environment as presented when you first enter the mashup development environment. The blocks categories on the left can be expanded to reveal individual blocks. These blocks can be dragged onto the designer surface and connected to one another.
249
Page 249
Schwartz
c09.tex
V3 - 12/26/2008
Chapter 9: Mashups
Figure 9-1 Rather than showing dragging and dropping of each block onto the designer surface, an assumption is going to be made that most readers have dragged and dropped something before. Figure 9-3 shows all blocks on the designer surface. Several blocks are available in the mashup environment, and people with development skills can build their own and make them publicly available as user-contributed blocks or just keep them to themselves. The web-based development environment consists of nothing more than a text editor where XML and JavaScript can be added. The simpler the tools are for development, generally the harder it is to develop. For a richer experience, blocks can be built using Visual Studio 2008 and the Popfly explorer, which provides a rich block editor. This gives developers a familiar place to work. At the end of the process, text files are produced. For this scenario, the given blocks will do just fine. There are four blocks that are used: user input, campaign contributions, sumBy, and bar graph. The user input is the block that lets the user enter a zip code. The zip code is then passed to the campaign contributions, and the contribution data is passed to the sumBy block. The final results are the two bar graph blocks. The connections are simply made by clicking the large dot on the side of the block. An
250
2:30pm
Page 250
Schwartz
c09.tex
V3 - 12/26/2008
2:30pm
Chapter 9: Mashups arrow is produced, and dragging that arrow to the next block’s dot and clicking makes the connection. Clicking the X next to the block removes it from the designer, and the lightbulb-looking icon provides mashup ideas that can be used with that block. The wrench is the configuration settings. Figure 9-4 shows the configuration screen for the user input block.
Figure 9-2 In this case, the label is Enter your zip code. Default text could be placed in the block to always show for a specific zip code. In this case, no default is specified. Even the button can be named. In this case, it’s Go. The block is designed to render the text box and button and pass the information to whatever block it’s connected too. It’s the receiving block’s responsibility to determine what to do with the information it receives. Configuring the next block in the chain is shown in Figure 9-5. The campaign contribution block knows how to go out and fetch the raw data from the Federal Election Commission web site. This block breaks the best practice rules of doing only one thing in a block because it also filters data. A filter block could be applied, that is, an expert at slicing and dicing the data. In this scenario, it’s a warmly welcome friend because it just means that it’s one less block we have to worry about. In Figure 9-5, there are four fields. Three have [custom] source and one has user input. [custom] refers to a static value provided by the block. The configuration for this block says that either candidate has
251
Page 251
Schwartz
c09.tex
V3 - 12/26/2008
Chapter 9: Mashups received contributions from donors in the zip code that matches the zip code passed in from the user input block. The SumBy block’s configuration consists of grouping by a certain column (candidate) and summing the amount. The last block, bar graph, has configurations for labels and bar colors. Headers and footers were left blank in this scenario.
Figure 9-3 Popfly, among the other services, is a mashup environment that lets mere mortals create applications. Developers can provide an even richer environment by adding new blocks, and new ones are added every day. Now functionality that took a lot time to deliver might well be found for free in a mashup environment. There is another mashup environment from Yahoo! called Pipes.
Yahoo! Pipes Each mashup environment is going to have its own followers and, as a result, will mature differently. Yahoo! behaves a little differently than Popfly, but the fundamentals are the same. To demonstrate this
252
2:30pm
Page 252
Schwartz
c09.tex
V3 - 12/26/2008
2:30pm
Chapter 9: Mashups by using a scenario centered around gas prices, we’ll walk through a mashup that creates an RSS feed (see chapter 6) to show the user where the cheapest gas is. This could be important if he or she is out canvassing neighborhoods and needs to fill up. Every little bit counts! Figure 9-6 shows a completed mashup, a Pipe. There are many similarities between Popfly and Yahoo! Pipes. There are components on the left-hand side that are dragged onto a designer surface. There are spaghetti-like connections that are made in the same fashion as the Popfly environment. The configurations screens are all immediately visible, and the output is much simpler. Popfly seems to have more graphical displays where Pipes tends to lean more toward RSS, JSON, KML (a Google Earth format), and other formats.
Figure 9-4 This Pipe was found just by doing a search for gas prices in the Pipes search. It was originally configured for New York. By simply changing a few things, we have one for Miami. The raw data comes from www.miamigasprices.com. The URL builder takes the four parameters that feed it to construct a URL,
253
Page 253
Schwartz
c09.tex
V3 - 12/26/2008
Chapter 9: Mashups miamigasprices.com being one of those parameters. The server at the other end of the URL knows how to pull the gas prices from this web page and renders an RSS feed. Finally, the fetch feed takes the URL from the URL builder and handles the RSS feed appropriately. Popfly and Yahoo! Pipes both offer the ability to use what you’ve created in another system. In the case with Popfly, it’s an embed tag. In the case of Pipes, it’s an RSS feed. This little bit of functionality is what makes the mashup world useful. Navigating to several pages just wouldn’t prove useful. Who doesn’t have one hundred bookmarks he or she doesn’t use already, mostly because he or she has too many and can’t find the bookmark? Grabbing the bits and pieces from each application and assembling them in context, next to each other on the same page, would be really useful. A campaign fund-raiser who needs to know where he or she stands with the competition and how to keep costs low in the process would probably benefit from having these two pieces of information together. As it stands now, he or she probably doesn’t look at either one. My Site functionality in SharePoint (see chapter 7) is a great place for people to start and work throughout their day. Users can lay out the My Home view of their My Site any way they want. In this way, they can put information they want to see to help them through their day.
Figure 9-5
254
2:30pm
Page 254
Schwartz
c09.tex
V3 - 12/26/2008
2:30pm
Chapter 9: Mashups
Figure 9-6
Mashups in SharePoint Right out of the box, SharePoint is a wonderful mashup environment. With its Web Part zones, Web Parts, and Web Part connections, the mind dances in delight at the many applications that can be assembled by users without the assistance of an IT department. Chapter 7 covered adding Web Parts in detail. Here, simply adding a page viewer Web Part to the middle left zone and setting its link property to a Popfly mashup will present the mashup on My Site, as in Figure 9-7. Adding an RSS Viewer Web Part to the middle right zone will display the gas prices mashup. Set its RSS feed URL property to the Yahoo! Pipes mashup, as shown in Figure 9-8. The RSS Viewer Web Part has interesting behavior. By displaying only the title, the user will only see the price and the location. But, as shown in Figure 9-8, when the user clicks the second item ($3.63 — Marathon — 6950 Okeechobee Blvd & Skees Rd, West Palm Beach), the description is shown. The description contains a variety of hyperlinks to take the user to more information or a map.
255
Page 255
Schwartz
c09.tex
V3 - 12/26/2008
Chapter 9: Mashups
Figure 9-7
Now that the two Web Parts are added and configured, the user of this My Site can see gas prices in context with his or her campaign information. This might help make a decision if he or she is going to drive to visit a prospective contributor or if it just makes more sense to call on the phone.
Connecting SharePoint Web Parts Similar to other mashup environments, SharePoint Web Parts can be connected together. This time, the designer has a bit more of a ridged layout in the form of Web Part zones, and these zones hold all of the necessary Web Parts that are needed to create the mashup. One key to a mashup is being able to send data between components. In a SharePoint mashup environment, this is simply called a Web Part connection. Just as in other environments, not every Web Part can consume or provide a connection. Web Parts are sometimes built just to consume information, as in a Web Part that is just responsible for the final presentation of some data. Filtering Web Parts may not consume a connection at all, but it will provide to another Web Part to help slice and dice data. In a master-detail data relationship, where the detail record then becomes the master record in a different master-detail relationship, the Web Part will be both a consumer and a provider. In all these cases, a single piece or cell of information could be passed around, or it could be the entire row. In other mashup environments, the configuration came in a form. Web parts have configurations, too, but the Web Part connection configurations are done at the time the connection is made through choices.
256
2:30pm
Page 256
Schwartz
c09.tex
V3 - 12/26/2008
2:30pm
Chapter 9: Mashups When making the connection, SharePoint will prompt the user for what information is being sent or received to which property. In other mashup environments, the connection had to start from the send and end at the receiver. SharePoint doesn’t care which end of the connection the user starts with because the system will query the user and determine what is needed.
Figure 9-8 The SharePoint mashup environment has something else that is very useful, and that’s a cross-page connection. A cross-page connection is also known as a server-side connection. This is simply done through a hyperlink and a decorated URL that passes a parameter to the next Web Part. It’s simple and works well.
Visualization on the Web SharePoint does a really remarkable job on the presentation layer. There are many Web Parts that come out of the box, and many more are available commercially and for free by the community. A SharePoint page consists of a Web Part page. A Web Part page has Web Part zones, and these zones hold Web Parts. Briefly covering the anatomy that has just been uncovered, we’ll start off with a Web Part page and its zones. The developer of the Web Part page will determine where the zone should be placed. Out of the box, there is generally enough variety to solve most users’ needs. Customization and development of new
257
Page 257
Schwartz
c09.tex
V3 - 12/26/2008
Chapter 9: Mashups pages happens when there is a specific business problem that needs to be solved that SharePoint or the underlying ASP.NET doesn’t cover. Using nothing more than a browser, a user can select a Web Part page and drag-and-drop Web Parts into zones where he or she thinks they might be most useful. Web Parts offer both a personal state and a shared state. Depending on the scenario, one or the other or both will be enabled. It’s completely feasible for consumers of these Web Part pages to move Web Parts around on a page where things are most suitable for them. Or everything can remain fixed so everyone sees the page in the same way. It just depends on the problem the user is trying to solve. Not only can these Web Parts be shifted around, they can also talk to each other via connections. This is simply termed connected Web Parts.
Page Viewer Web Part As already shown, the Page Viewer Web Part has to be the simplest Web Part there is. It does nothing more than present the page found at a web address. However, this can prove to be quite helpful. An entire reporting system would be a problem to move from one technology to another and probably wouldn’t have any advantage. The Page Viewer Web Part will take a web address and display it just as if the user navigated there on his or her own, essentially creating a window to another web page. Leveraging the Page Viewer Web Part exposes existing systems, saves time and money, and encourages people to start using the portal as their go-to place for information.
Content Editor Web Part This Web Part lets the user enter in any HTML, CSS, or JavaScript he or she chooses. Anything (except for the HTML tag) that can be interpreted by the browser is able to be entered into the Content Editor Web Part. This can be used to quickly add information or instruction to a page.
XML Web Part The XML Web Part essentially takes two properties: the XML URL or source and the XSL URL or source. Many times, there is existing XML data and corresponding XSL to create a unique presentation of the XML data. Or perhaps the organization has XML that is being sent to another system. The XSL can be hard-coded or referenced via a hyperlink to parse the XML into something useful.
Data View Web Part The Data View Web Part can really only be manipulated via a SharePoint designer (Professional Microsoft Office SharePoint Designer 2007, Woodrow W. Windischman, Bryan Phillips, Asif Rehmani, ISBN 0470287616), but, once created, other users can save and reuse it. The Data View Web Part connects to external data sources, making it a quick way to present data to the users. This reduces time to market in terms of development and lowers total cost of ownership by reusing existing data sources.
Power Query Web Part The Power Query Web Part is a Codeplex project located at www.codeplex.com/PowerQueryWebPart. Similar to the XML Web Part, the Power Query Web Part can take XML and XSL and produce HTML output. The Power Query Web Part also takes CAML Queries as well as a custom data source that can be reused and parsed differently, repurposing the same data in many beneficial ways. CAML is
258
2:30pm
Page 258
Schwartz
c09.tex
V3 - 12/26/2008
2:30pm
Chapter 9: Mashups an XML-based data language that SharePoint uses heavily. A deeper discussion of CAML follows in the sections below.
Sources of Data Data is everywhere. Some of it is structured; some of it is not. Typically, data has to be cleaned up before we can do anything useful with it. Otherwise, we are just simply reusing the data in its current markup.
Pulling Data from SharePoint SharePoint data can be concerned with contemporary problems and issues or previous ones. In order to arrive at solutions or find opportunities of problems, it’s best to see everything in many different contexts. By context, we are referring to data that is relevant to each other. So a business user might want to find out if there is a correlation to customer income in relationship to prompt payments or if it’s something else. Is it recently serviced customers? Maybe all it takes to get a prompt payment is a simple phone call to see if the customer is having a nice day. Nobody knows until somebody looks at all of the data in context. Pulling this contextual data together can be a challenge because it can be spread out over a variety of other systems. SharePoint provides native APIs and web services to get to the data it houses. While the SharePoint API is useful if your code lives in the same SharePoint farm, the web services are available from anywhere your code can see the web front end. These techniques are pretty common, but what’s new is CAML.
Collaborative Application Markup Language (CAML) Collaborative Application Markup Language (CAML) is a cornerstone of SharePoint technologies. There are several CAML schemas, including view, list, and site to name a few. One small part of CAML is the query schema, and that is going to prove most useful when building mashups. The query schema is interesting because it is faster than using the API and, of course, the web services. But it’s new, and it’s something else that has to be learned. Luckily, MSDN has everything you need to learn about CAML in the Windows SharePoint Services SDK (http://msdn.microsoft.com/en-us/library/ms462365.aspx). Just to get our feet wet, let’s look at what’s involved. The following code shows a CAML query that pulls data from a list filtered by three columns or filtered by two others. Something to notice is the way the AND comparison statements are constructed. value anotherValue
259
Page 259
Schwartz
c09.tex
V3 - 12/26/2008
Chapter 9: Mashups a thirdValue val4 val5
Notice how there is one big OR element with two AND elements inside, and that seems pretty straightforward. Then you look at the element EQ, there are a lot LT and GT for less than and greater than while EQ represents equals. The first node of EQ is the column name (in our case, column1). Then there’s the value. Here, it’s simply the text value. Thinking intuitively, one might expect that the AND container would be enough to hold all of the elements. That’s not the case. It will only hold two comparisons. So, as in this example, the next two elements are contained in their own AND container. This may not be as intuitive as we’d like. Fortunately, there are people in the world who have written tools to help out with this. The next few pages will cover three community tools that will make life much simpler with this. No one actually wrote the CAML query in Figure 9-9. A web site, the Online SQL to CAML query tool, (www.spsprofessional.com/sqlcaml.aspx), was used to convert the SQL syntax Where clause, shown in the following code, to the CAML query found in the previous code example. WHERE (((column1 = "value") and (column2 = "anotherValue") and (column3 = "a thirdValue")) or ((column4="val4") and (column5="val5"))) GROUPBY column1 order by column1, column2 ASC, column3 desc
The guts of this web-based tool were brought to the world by Carlos Segura Sans, and he’s published it at www.ideseg.com/SharePointYetAnotherCAMLQueryTool2.aspx and called it YACAMLQT. YACAMLQT doesn’t quite roll off the tongue, but what it stands for is pretty funny, ‘‘Yet Another Collaborations Application Markup Language Query Tool.’’ This tool probably won’t be the last, and, as the name foreshadows, it obviously wasn’t the first. The folks over at u2u wrote a CAML Builder tool — www.u2u.info/Blogs/Patrick/Lists/Posts/ Post.aspx?ID=1252. This desktop tool can consume SharePoint web services or the SharePoint API. So long as you have the right credentials and the path to the SharePoint farm, you can generate CAML queries. Once the query is generated, it can be placed into a presentation component that knows what to do with CAML queries and provides useful information for your use. Figure 9-9 demonstrates the query-building portion of the application. Figure 9-10 shows the Results tab with one item.
260
2:30pm
Page 260
Schwartz
c09.tex
V3 - 12/26/2008
2:30pm
Chapter 9: Mashups
Figure 9-9 Great! In C#, there are a couple of ways to build the query string. Simply using the StringBuilder class, the CAML query can be encapsulated and used repeatedly. That sounds great until the query needs to be dynamic. Then it sounds downright painful. John Holliday wrote CAML.NET, which can be found at http://codeplex.com/camldotnet. This is a library to be used like any other in the .NET framework. This benefits development time by eliminating hand-editing XML strings, which is prone to errors. Instead, it provides Intellisense in Visual Studio, which greatly decreases the development time for the current project. Over time, the development team will be able to create reusable query libraries. The previous CAML query would be represented in CAML.NET, as shown below. string myQuery = CAML.Where( CAML.Or( CAML.And( CAML.Eq( CAML.FieldRef("column1"), CAML.Value("value") ), CAML.And(
261
Page 261
Schwartz
Chapter 9: Mashups CAML.Eq( CAML.FieldRef("column2"), CAML.Value("anotherValue") ), CAML.Eq( CAML.FieldRef("column3"), CAML.Value("a thirdValue") ) ) ) , CAML.And( CAML.Eq( CAML.FieldRef("column4"), CAML.Value("val4") ), CAML.Eq( CAML.FieldRef("column5"), CAML.Value("val5") ) ) ) );
Figure 9-10
262
c09.tex
V3 - 12/26/2008
2:30pm
Page 262
Schwartz
c09.tex
V3 - 12/26/2008
2:30pm
Chapter 9: Mashups CAML.NET is a great way to build these query strings. CAML is the fastest way to get list data out of SharePoint. CAML queries aren’t going to yield information other than list item data. Another way to pull data out of SharePoint is through LINQ.
Language Integrated Query (LINQ) LINQ is short for Language Integrated Query. As the name indicates, it is a technology that allows native data querying capabilities. It looks a lot like SQL, but it is meant to query objects. It’s easy to think how a database can be thought of as objects. As a result, querying SQL tables was one of the first uses of this technology with LINQ to SQL. Querying XML has always been a difficult thing to pass on to other developers compared to other technologies now that there’s a LINQ to XML provider. This makes getting data out of XML documents extremely easier. The nice thing about LINQ is that it’s pretty standard regardless of what you are querying against. This makes it an invaluable development tool because of its pervasiveness potential. Very generically, there is LINQ to objects, and this concept is the building block to many of the community-driven LINQ to SharePoint implementations. The following code demonstrates a LINQ query, the same as the previous CAML query. var results = from listItems in context.CAML where (list.column1 == "value" && list.column2 == "anotherValue" && list.column3 == "a thirdValue") || (list.column4 == "val4" && list.column5 == "val5")
There are at least two independent community projects going on right now: T
LINQ to SharePoint: www.codeplex.com/LINQtoSharePoint
T
LINQ4SP — http://lmsolutions.web.officelive.com/linq4sp.aspx
While LINQ to SharePoint came out first, the LINQ4SP team addresses what they felt were major issues with the initial LINQ to SharePoint initiative. These are both community-created engines. It is hard to say when Microsoft is going to come out with its own LINQ capabilities baked into the product, but you can be assured that, when they do, the queries created with community tools will remain largely the same for most queries. There might be some minor migration pains here and there, but it shouldn’t result in major reconstructive surgery. That’s quite a few ways to get data out of system-native APIs and web services that use CAML queries as well as community LINQ projects that decrease development time. All that being said, SharePoint is not a database. It’s not good at it. It’s not designed to be used as a database, and those who try to force it to be a database will be sadly disturbed. What SharePoint is good at is bringing everything together and presenting it. By design, SharePoint has some facilities baked right into the product that allows rich interaction with data in other systems.
Data in Other Systems SharePoint has some of the data, but where SharePoint really excels is providing a platform in which users can focus on the problem at hand. Not everything is always stored or should be in SharePoint, but it sometimes just makes sense. In case the need arises, now you can add items to a list via a web service.
263
Page 263
Schwartz
c09.tex
V3 - 12/26/2008
Chapter 9: Mashups Push to SharePoint via Web Services Web services are pervasive now, and it seems like every organization knows how to talk to one of their partners via a web service. SharePoint has an abundance of web services, one of which covers all of the functionality necessary to work with list items. This includes things like documents, images, meetings, calendars, users, and groups. Other systems can call the SharePoint web services to add, update, or delete data. Out of the box, there are a lot of existing web services. If the need arises, it’s easy to add custom web services to the farm. A typical billing system has a lot of data, and it probably has no way to show why people regularly pay on time or, as importantly, why they pay late or not at all. SharePoint is a great place to present this data, but not necessarily store vast quantities of it. SharePoint lists are most useful when there are 2,000 items or smaller. Rather than pushing data to SharePoint, larger data stores should be leveraged by using the business data catalog simply known as the BDC.
Pull via Business Data Catalog (BDC) The Business Data Catalog (BDC) is a new feature in MOSS 2007 and provides an easy way to integrate with data that resides in other systems like SAP, Siebel, Oracle, MySQL, or just about anything you can make a database connection to. The BDC is not just limited to SQL connections. Data can be gathered via web services as well. By leveraging existing stored procedures or web services, the existing business logic can be supported. This means all of that complicated logic that was figured out many moons ago to calculate discounts can be reused in the SharePoint environment as well as writing data back to the system. The BDC has a few facets to it. The data can be displayed via Web Parts, SharePoint lists, search results, and in user profiles. Just presenting data is one thing and very useful in many cases, but taking action on that data is really what makes a business move. The BDC provides actions that are simply hyperlinks decorated with the columns in the BDC. This simple approach provides a wide variety of user experience from AJAX, for example, from passing key data to another page or system or just sending an email. The BDC, as told by Microsoft, is no code solution in getting data from other systems. In the next breath, it says that the author of the application definition file will be that of a database developer. Frankly, I don’t know how Microsoft marketing people plan on getting into heaven. The application definition file is a rather large XML metadata document that is a description of the data entities that you’re interested in. It doesn’t have much SQL in it and uses a markup never seen before. Fortunately, there are tools to help out with this as well. Microsoft provides a free tool that comes in the SDK. The tool in the SDK is lacking in that it doesn’t provide a facility for writing back to the system. In cases such as this, it’s worthwhile to buy BDC Meta Man from Lighting Tools (www.lightningtools.com). In the You Try It Section of this chapter, you can step through the process of generating an application definition file with a custom action that gets the marketing department excited about pushing an overstocked item using the BDC Meta Man.
Enterprise and Community Contributions Enterprise contributions have a variety of benefits. First, it’s goodwill. We spend years courting our spouse and only hours interviewing and researching the employment relationship, even though we
264
2:30pm
Page 264
Schwartz
c09.tex
V3 - 12/26/2008
2:30pm
Chapter 9: Mashups spend most of our awake time at work. Companies are made up of people, but are they good people or bad people? Well, if they are sharing the code they are working on, that makes a strong statement of how they want to make the world a better place. That sounds nice. If they are hoarding everything, even super simple functionality like ‘‘whose birthday is it this month’’ technology, that kind of raises an eyebrow. By default, enterprises who also do development have QA teams. If an enterprise has said they ran it through their QA and deployed it, then the consumer knows it has been at least tested a little bit. What a feeling of comfort that is, and it helps the consumer feel confident in the enterprise. These two things really help on the recruitment front and, depending on the business, other aspects as well. Some developers, usually the good ones, can pick and choose where they want to work. But there are other benefits for companies to donate their projects. When other people find a project interesting, they will add functionality to it. The enterprise can maintain control of the project, and it can determine what bits and pieces get added next. This kind of approach is great for the kind of functionality that is marked as important but not urgent. Or it’s sometimes classified as nice-to-have functionality. Functionality developed in this way isn’t any faster. As a matter of fact, it almost always can take longer. The cost can’t be beat. If done properly, it will only take slightly more management time than if an in-house developer was assigned to the project. Many times, users know what they want. Other times, they don’t have a clue. For those times that they aren’t sure, a community-contributed, enterprise-driven project is the way to go. Again, the only thing a company is spending is guidance, which is usually best done through good documentation. This is a cheap way to figure out if a certain approach will even work. So it’s great being the contributor, but what about being the consumer? In the preceding pages, there has been a lot of writing about community contributions. Just like everything else in technology, there is an inherent risk involved with community contributions. The risk is maintenance. Who’s going to take care of it after they’re gone? Who’s going to defend it from malicious attacks and holes in functionality that you only discover after using it for a short time? These questions and others must be considered. But here is a simple way of looking at it. Be responsible for whatever you incorporate into the system. Just as if that community contribution didn’t exist, a developer would have to be assigned to create that functionality. Think of the community contribution as a head start. Arguably, no software is totally self-sufficient and never needs maintaining. The only difference between community contribution and commercial code is that, hopefully, the commercial company will stay in business. Imagine that commercial software vendor goes out of business or charges astronomical rates for version upgrades when you only need one little piece of functionality. It’s worse than a community contribution because now you don’t even have the source code to fall back on. A very close comparison of homegrown code to community code is a developer who was assigned something and he or she has left on amicable terms. It’s not possible to get a whole lot of that person’s time after he or she has left. A new developer must get ramped up on the code. Fortunately, all software is finite. Typically, in a few days to a few weeks, a developer will know it like he or she wrote it originally. Sometimes, the community contribution is used to identify at least one way of how not to do something. In either case, community-contributed code is a great way to go. Other enterprise contributions are huge, larger than any intranet shop is going to be able to produce, and there’s no option for source code. This requires a shift in the exit strategy. As a rule, all software, free or not, should have an exit strategy. There often isn’t formal exit strategy, and the default exit strategy is that we’ll burn that bridge when we get there. Everything is in chaos while you’re running around trying to fix or mitigate some magnificent change that nobody foresaw.
265
Page 265
Schwartz
c09.tex
V3 - 12/26/2008
Chapter 9: Mashups Knowing what to do when the free service isn’t available or radically changes without notice can be really important. In the future, the technology offering will be much richer. Maybe it won’t exist at all and nobody else needs it. It could change so much or so simply that custom code that interacted with it no longer works. Can the business live without that functionality until something is thought of at that time? Does there have to be a fallback strategy or a hot replacement? How are the communication risks to be mitigated? That’s where experience and wisdom come into play and those hard decisions have to be made.
Office Business Application Composer The Office Business Application Composer (OBA Composer) is a fat client mashup environment that reaches farther than other mashup environments encountered in this chapter. The OBA Composer consists of a component and design surface like other environments, but what makes this one different is that, not only does it use the components found in SharePoint, but it also has Office application. In short, Office products like Word or Excel are now constituents in the composite application. To describe this using a scenario, the fictitious business problem will be a contract generation process for any given services company. An IT services firm provides a buffet of services to its clients. Their clients generally don’t take all of the services offered. Some just take off-site backup and restore while others just take the help desk offering, and these services are really similar in that they are run over long periods of time. Application development, however, is just the building of the application. Most times, the support arrangements are negotiated differently. This calls for custom contracts for each situation. Layers are expensive, and the legal department gets pummeled for every new request. Not only is it expensive to generate these agreements, clients want to see these agreements before they engage too far into the negotiations. Plus, the sales organization is dividing into smaller subgroups who specialize in ongoing services and those who specialize in business as usual demands, like application support. The demands in sales far outweigh the capacity of the legal department. A solution to this problem would be to allow the individual sales units in the organization to generate its own preapproved agreements. Using a tool like the OBA Composer, the sales units can create a mashup to solve this problem. The OBA Composer allows users to pull in predefined lists, documents, and back-end or line of business data and create a SharePoint site. The concerned sales unit then uses this specially designed site to focus on what they need to focus on, that is, making sales. The process of gathering information and turning around a contract is now a few hours rather than a few weeks of volleying back and forth between the salesperson and the legal department trying to get the contract correct. The OBA Composer would have a Word component in that it is dragged onto the designer surface. This Word add-in allows the document author to pick and choose services and the appropriate language put into place. If clauses are incongruent, the salesperson would be notified, and he or she could then make the appropriate changes. Sales situations require a high degree of flexibility, so a prospect might have a special situation or request that can be done, but a clause is never written for it. The salesperson can add special language to the document or notes of what’s to be provided. This special need is then forwarded to the appropriate people for approval. The document stops off at the sales manager’s desk for approval. Once approved, it then proceeds to the legal department. If rejected, then that salesperson has some selling to do. The legal department has been notified that it has a new contract to work on. It’s been a while. Because of the new process, it only sees exceptional situations instead of every average contract. The legal department make its reviews and writes the clause. The legal department has an opportunity to update the
266
2:30pm
Page 266
Schwartz
c09.tex
V3 - 12/26/2008
2:30pm
Chapter 9: Mashups clause system. If this situation were to arise again, the salesperson, the contract creator, could simply choose it. This was all done with the OBA Composer tying into multiple systems, creating a site with the appropriate lists. The user would have chosen the contract component, the prospect line of business system, as well as workflows and other supporting SharePoint items. The reason why mashups are so successful is because business users can take very similar functionality and reuse it. In this scenario, a mashup was created just for creating contracts. The Word document was highly specialized for this situation. The salesperson has the option of pulling in several different types of headers where the names of the vendors are laid out differently. Several of the clauses use customer information, like addresses, to notify the client of change of service. These dynamic headings, bodies, clauses, and footers can all use data from the line of business system. Imagine the same scenario, but now the sales department wants to generate power points for each of its prospects before the sales call. The PowerPoint presentations will be modified slightly for each one, but there’s no hunting around. Do you have a gizmo slide? Sales and marketing maintain all in the system. These assets are available to users when they need them. Using just a few components, it’s easy to see how many different pieces of functionality can be had by using a mashup environment like the OBA Composer.
You Tr y It The building blocks of a SharePoint mashup are components designed to either simply read or actually perform presentation action. Just about anyone can assemble a mashup application whose end results may be wide and varied. The following steps serve as a guide in Web Parts and Web Part connections. These steps will cover a more common situation while touching many aspects of creating a mashup in SharePoint. Looking at some of the more mature systems in your organization, you’ll see that, while there might be some things that could be done better, for the most part, these systems get the job done. Taking the investment the company has made into these systems and exposing them via SharePoint is probably one of the more common ways to start experiencing value from SharePoint. The BDC, with all of its Web Parts and additional functionality that can be added, is a cost-effective way to surface these legacy systems and leverage their existing investment of time and money. The Northwind database is for a fictitious company, Northwind Traders, an import/export food business. This sample database has been around for a long time, and Microsoft hasn’t made an update for it since SQL Server 2000. However, the Northwind database will still run on SQL Server 2005 and 2008, and a data structure this old is emblematical of a contemporary legacy environment that really might be encountered. In this scenario, the business user wants to start marketing campaigns by finding items that are overstocked and coming to the end of their seasonal life. Determining these products is a subjective process that requires some critical thinking. It might be a foolish waste of money to start a heavy-duty marketing campaign for something too close to the end of the season. In this walkthrough, the user will want to filter the products down by category and select a product for the marketing campaign. To get started, he or she will need to attach the Northwind database.
Step One: Attaching a Sample Database The Northwind database can be found at www.microsoft.com/downloads/details.aspx?FamilyID =06616212-0356-46A0-8DA2-EEBC53A68034&displaylang=en. When the MSI is executed, the C:\SQL
267
Page 267
Schwartz
c09.tex
V3 - 12/26/2008
Chapter 9: Mashups Server 2000 Sample Databases\ folder is created and contains, among other things, northwind.mdb.
Details of attaching to this database are probably outside the scope of this book, yet essential to the remainder of the example. From the SQL Server Management Studio, right-click the Databases folder. From the context menu, click Attach. An Attach Database dialog box presents itself. Click the Add button, navigate to the northwind.mdb, and double-click the northwind.mdb. Finally, click OK in the Attach Database dialog box. This walkthrough will be using the BDC Meta Man. A demo can be found at www.lightningtools.com/.
Step Two: Configuring the BDC Meta Man Open BDC Meta Man, and click Connect to Data Source. From here, there are a few tabs, one of which is Database, which should be currently open. Set the following settings: T
Server Type: SQL Server 2000/2005 (notice there is also Oracle, DB2, and My SQL)
T
Server Name: The name of the SQL server where you attached the Northwind database
T
Authentication: Either use Windows authentication or a SQL username and password
Clicking Connect will result in a list of database tables. If not, something is incorrect. Recheck that your server name and credentials are correct. The last configuration step entails setting up the local file location for the Application Definition file and the MOSS SSP. Figure 9-11 shows the local file configuration for the generated Application Definition files and the generated Web Parts.
Figure 9-11 Figure 9-12 is the configuration for the SSP consisting of its name, the server its on, and the port its listening to. This is used later as a shortcut to take the user to the SSP to upload his or her application definition. The SSP is where services that are shared across many farms and site collections live. That’s all there is to configuring the BDC Meta Man. Now we’ll go on to step 3, where we actually create a relationship.
Step Three: Creating an Application Definition File Examining the Northwind database will reveal several tables. The two used in this walkthrough are the products and categories, tables as shown in Figure 9-13.
268
2:30pm
Page 268
Schwartz
c09.tex
V3 - 12/26/2008
2:30pm
Chapter 9: Mashups
Figure 9-12
Figure 9-13
269
Page 269
Schwartz
c09.tex
V3 - 12/26/2008
Chapter 9: Mashups Dragging the two tables onto the Design Surface allows a user to create a relationship between the Categories and Products tables. The CategoryID joins them together. We could stop right there and force the user to enter the product information into his or her email, or we could make life simple for him or her. It has been shown that people will take action if that action is simple for them to take. It’s not a bad mantra to say that, anytime a user is presented data to make a decision, he or she should be allowed to effect that decision in the same context. So, to make it simple to send an email, we’ll add an action. As mentioned earlier, an action is nothing more than a hyperlink where the URL can be decorated. Email happens to be one of the defaults in the BDC Meta Man. Right-clicking the Properties table reveals a context menu to Edit Entity and the Entity Management window. Figure 9-14 shows the form after it’s been completed for our walkthrough.
Figure 9-14 T
Ensure the Actions tab is selected.
T
Click the Create Custom Action button, and select Email.
T
The Email action will appear in the list and will need to be selected to make the fields active for the Email action.
T
Set the name to Email Marketing. This is the action item the user will be able to select.
T
Remove the Product ID. Add the Product Name and UnitsInStock.
T
Into the URL field, enter: Mailto:
[email protected]?subject=Start marketing {0}&body=We have {1} {0} in stock to move out. The {0} represents the order of the parameters. As it’s shown here, {0} will use the ProductName value. The {1} will use UnitsInStock value.
Consider it extra credit to do a Google or MSN search against the product name. Or do some exploration by letting the mind wonder. Can you pass information to a page in an existing subsystem that does something useful, like reorder or status information?
270
2:30pm
Page 270
Schwartz
c09.tex
V3 - 12/26/2008
2:30pm
Chapter 9: Mashups There are two options in generating the Application Definition file. The user can click the big green arrow or, on the Build menu, select Generate All or Generate Definition File. The code that is generated is roughly 241 lines long and would take up ten pages in this book. Really, it isn’t that interesting and frankly way out of scope for the topic. Suffice it to say, it’s very difficult to generate this code by hand without the use of a free tool that comes with the SDK, the BDC Meta Man, or something similar. Now the Application Definition needs to be uploaded to SharePoint. This is done via the SSP that we configured earlier.
Step Four: Uploading the Application Definition File Clicking the SSP Administrative Site tab and clicking Load SSP Administrative Web Site will load the SSP into the panel. In the Business Data Catalog group, choose Import application definition. This will open a page where the Application Definition file can be loaded. T
Enter the location of the Application Definition file.
T
Leave all other options to their defaults.
T
Clicking Import will start SharePoint to processing the metadata file we created. Once completed, click OK. That’s about all that is needed from this tool for this walkthrough.
Now SharePoint is in prime position to expose the data using the OOB BDC Web Parts.
Step Five: Creating a Mashup with BDC Web Parts On a SharePoint Team Site, delete all of the Web Parts, as shown in Figure 9-15.
Figure 9-15
271
Page 271
Schwartz
c09.tex
V3 - 12/26/2008
Chapter 9: Mashups Clicking the big Add a Web Part button bar at the top of the Web Part zone brings up the Add Web Parts WebPage dialog box. Select the Business Data list and the Business Data Related list. They will be used for the category and products, respectively, as shown in Figure 9-16.
Figure 9-16 Open the tool pane for the Business Data list, and set its type to dbo.categories. Click OK. Set the Business Data-related list type to dbo.products. In the right zone, add the Business Data Actions Web Part, and set its type to dbo.products. The Business Data Actions will manifest the email action that was created earlier. Now we’ll connect all of the Web Parts. Connecting Web Parts can either be done from the receiving Web Part or the sending Web Part. It makes no difference. For this walkthrough, go to the Products Web Part in Edit mode, and click Edit. Select Connections, and select Get Related Item From. Then select dbo.Categories list, as shown in Figure 9-17.
272
2:30pm
Page 272
Schwartz
c09.tex
V3 - 12/26/2008
2:30pm
Chapter 9: Mashups
Figure 9-17
Connect the Products list to the Products actions so the actions will consume the Product list data. For extra credit, clean up the view to only show relevant data. Figure 9-18 shows what an application might look like after it’s all cleaned up. Figure 9-19 shows what the email looks like when the user clicks Email Marketing.
Success Factors for Mashups in Organizations How do you know when you have a successful mashup environment? When people are building applications and using them, there is a critical mass or a tipping point where adoption catches on like wildfire and you just can’t stop it. Email and the Web are examples. When email and the Web first came out, most people didn’t use them. They were too hard to use, and it just didn’t seem worth the effort. Then, when they started missing out on information, they started to figure out the Web and email. The tools got better, and people tried harder to learn. Finding someone’s motivation to build mashups can be difficult. Usually, a user has had an experience where he or she wanted to get something built. He or she brought this great idea to the IT department, and they were working on 14 other great ideas for the next couple years. Conversely, he or she brings
273
Page 273
Schwartz
c09.tex
V3 - 12/26/2008
Chapter 9: Mashups an application request to IT, and it gets accepted. Many seemingly pointless interviews later, he or she ended up with an application that doesn’t solve today’s problem. It solves the problem he or she had six months ago. Now the user has an entirely new problem and IT just can’t seem to keep up. When the user sees how to build a mashup, you can see fireworks going off.
Figure 9-18 Simply demonstrating to a user how a mashup works is training. Just like any other technology, mashups benefit greatly from training. Training can be as informal as showing the person in the next cube how to do something, or it can be a business-stopping process where everyone goes in for training for a long period of time. Obviously, most organizations would tend to lean toward the former rather than the latter and would prefer that the application be so easy to use that it doesn’t need training at all. Do yourself a favor. At least make a podcast about it, as described in chapter 8.
274
2:30pm
Page 274
Schwartz
c09.tex
V3 - 12/26/2008
2:30pm
Chapter 9: Mashups
Figure 9-19
There is a lot to be said for making an application easy to use. That certainly does cut down on training costs and increases the opportunity for people to pick it up. There are a couple of facets to building mashups in SharePoint. First, there’s the SharePoint user interface, which is different than anything else that is found on the Web. Social networking (see Chapter 7) is a great way to get folks to start using SharePoint. To get them to understand how to build a mashup, they might have to turn toward your podcast or book (like this one) or have someone show them the basic concepts of mashups and how to do a few things, like finding Web Parts, putting them into Web Part zones, making connections, and setting properties. One of the biggest takeaways of this chapter for developers is to build your Web Parts so they focus on one thing really well. This gives people the flexibility they need to build applications. When the interface is too confining, then people are going to get frustrated. When building Web Parts, there are a few things to think about ask yourself. What context is this Web Part going to be used? Is it generally going to be a wide layout or a long, narrow one? Understanding how the users will consume these things gets you one huge step closer to usability. Another good question is, ‘‘What other kind of data can it consume?’’ A Web Part that displays graph information can consume comma-separated values, but it could also consume XML data. Don’t spend an eternity on these kinds of issues. Just quickly consider them and move on. It’s still very important to develop for today’s problems. If it’s easy to throw over the fence, then do it. If not, no big deal. It can be extended or modified later. Remember that not all Web Parts have to have a presentation. Some Web Parts can be there just to convert data or apply some calculation or look up an entirely different key. These transformation-type Web Parts would be highly customized to an organization and would significantly increase the learning curve. Not a lot of people are going to know the difference between XML, CSV, and smoke signals. Opening up a big box of SharePoint and pouring it into your server room probably isn’t going to be enough to get people to start creating mashups. Lathering up your organization by pointing out solutions, demonstrating the ease of use, and realizing there is an adoption problem will help the organization reap the most benefit from SharePoint.
275
Page 275
Schwartz
c09.tex
V3 - 12/26/2008
Chapter 9: Mashups
Summar y To this point, there have been many mashup environments with similarities and differences. The common theme among all of them is allowing the people who make the business run have the ability to create applications that support them in their efforts. Arguably, by increasing that sphere of people who can build applications allows a company to be more agile. Agility is what any company needs in an ever-changing world. To review: T
Mashups allow people to build applications that support the business.
T
Anyone with drag-and-drop skills and a strong understanding of the business problem should be able to build his or her own application.
T
Mashups can be created in other environments and reused in SharePoint.
T
SharePoint, beyond being a portal, is an excellent mashup environment.
T
Information is not locked or hidden by SharePoint. Everything is exposed.
T
Any system that .NET technologies can reach is a candidate to be used in the SharePoint environment.
T
Office Business Application Composer is an easy way for users to build a mashup that takes in the Office product line, like Word or PowerPoint.
T
Existing line of business systems can be surfaced in SharePoint.
T
Ensure adoption through motivation, training, and ease of use.
Mashups are a great way to empower people to solve tough business problems without a high cost or delay in time. Because mashups are so cheap, they can have a short lifetime or be used forever. It’s this dynamic that helps makes a business agile. Not always is a single user going to be able to solve a problem on his or her own and require the assistance of others. The next chapter will discuss the Office Communication Server (OCS), a great way to reach out to people and talk about a particular topic. This is one of the best ways for a business to surface information that is in people’s heads. If only one person knows something important to the business, only their decisions are worthwhile while everyone else is making uninformed decisions. If that person with the information is readily available and they are willing to communicate, the organization will benefit. This communication can happen many different ways, for example, through email, telephone, or interoffice memo. All have their pros and cons. The next chapter will focus on presence, OCS, and Window Live Messenger. Keep in mind everything you’ve learned to this point, and see how mashups can benefit from instant messaging technologies.
276
2:30pm
Page 276
Schwartz c10.tex
V3 - 12/26/2008
3:07pm
Presence and OCS/Live In today’s highly connected society, we have come to experience unprecedented levels of interpersonal communication. Our appetite for information and the speed at which it is delivered seems like an insatiable force that has been growing since the dawn of the Internet. When we look at the sheer number, variety, and qualities of communication technologies powered by the Internet today, we realize we do not appear to be quite satisfied with the seemingly simplistic features of written forms of communication such as emails or static web pages. We have come to expect such levels of interaction with others that give us a sense of being physically present without actually being there. We have come to expect a sense of presence. The concept of presence in the computing world has its origins in the term telepresence, which Marvin Minsky, a Massachusetts Institute of Technology professor, coined in 1980. Minsky’s work describes telepresence as the manipulation of real-world objects by means of remote access technology. For example, a nuclear physicist located in a room could operate highly radioactive materials located in a different room and stay out of harm’s way by using robotic arms. After the advent of the Internet and thanks to advances in the fields of communications, computer science, and psychology, the term telepresence was broadened to include the sense of social richness, realism, immersion, one being there, as well as others being here. With the inclusion of such concepts from other fields of research outside of technology, the term was shortened from telepresence to just presence. In social networking technologies today, such as instant messaging applications, the term presence or presence information is most commonly associated with the online status of a person. These applications allow users to communicate in real-time (or near real-time) and can provide visual and audio cues indicating whether a person is present or online or away or offline. Although these instant messaging applications have become popular in the Internet age, their origins actually predate the hypertext-driven Internet that we know today. Back in the days of mainframes and minicomputers, there were applications that allowed real-time communications between two users. Applications such as TALK for the UNIX operating system in the 1970s provided live text communications between two users and eventually between multiple users. TALK provided immediate feedback about another user’s activity by displaying the characters that the other user was typing in real time. In the late 1980s and early 1990s, online subscription-based services, such as Quantum Link (Q-Link) and CompuServe, offered user-to-user messaging very similar to the instant messaging applications we know and love today. As history goes, Q-Link changed its name to American
Page 277
Schwartz
c10.tex
V3 - 12/26/2008
Chapter 10: Presence and OCS/Live Online (AOL) during the 1990s and purchased the first widely popular graphical user interface (GUI)-driven instant messaging application, ICQ. Following the popularity of ICQ, which was later acquired by AOL, other web-presence companies such as Microsoft and Yahoo! have developed their own instant messaging protocols and clients. Not unlike many technological trends of our time, instant messaging has made its way into the corporate world, proving to be a highly valuable communication tool. Microsoft developed a product line in what it calls the unified communications space that supports instant messaging capabilities among a host of other features right inside corporate walls. The term unified communications is used when multiple communication technologies come together into a single platform in order to provide a seamless experience to the end user. Thus, emails, voice mails, faxes, instant messages, and telephone calls can all be accessed within a single client application. The Microsoft Office Communications Server (OCS) product, which is part of Microsoft’s unified communications platform, is not only capable of setting the gears of social networking in motion through online presence, instant messaging, video and audio conferencing, and application sharing, but it can also extend its reach to integrate with telephone systems, popular public instant messaging services, and other OCS systems through federation.
Office Communications Ser ver and Presence Microsoft Office Communications Server 2007 (OCS) is Microsoft’s offering to organizations that want to fully deploy and manage their own instant messaging and online presence solutions. Additionally, OCS features audio and video conferencing, IP telephony, web conferencing, voice mail integration through Microsoft Exchange, as well as application sharing. When fully deployed and integrated, OCS is a powerful and comprehensive communications platform. Following are some examples of how OCS can integrate with other Microsoft products as well as other systems to form a broad solution for corporate communications.
Integration with Microsoft Office Outlook Calendar OCS can integrate with Microsoft Office Outlook to access users’ calendars and display availability information as well as initiate meeting requests. Through the Office Communicator Client, which is discussed later in this chapter, users can easily see whether a colleague is available and for how long. Users can also request a meeting with a colleague right from within the Office Communicator Client or any other application that supports OCS integration, such as SharePoint. The level of calendar detail that is available for others to see can also be controlled in the Office Communicator Client.
Telephone Systems Integration OCS can integrate with Private Branch Exchange (PBX) systems, allowing users to make and receive regular telephone calls. Users can choose to use their own desk handset or use their computer as the source or destination for OCS-initiated calls. Users can even choose to have the calls rolled over to a mobile device or ring multiple destinations at the same time. Users have a great deal of flexibility in handling how communications take place, for example, an instant messaging session with another user can quickly be escalated to a telephone conversation by the simple press of a button. Additionally, specially designed handsets are available that feature OCS integration right out of the box allowing users to leverage OCS features in a more familiar telephone style. For example, handsets such as the Tanjay (Figure 10-1) have a touch screen that displays information much like the Office Communicator client as well as a numeric
278
3:07pm
Page 278
Schwartz
c10.tex
V3 - 12/26/2008
3:07pm
Chapter 10: Presence and OCS/Live keypad to make standard telephone calls. Calling a contact is as simple as selecting the contact on the screen and pressing the call button or dialing the number directly on the keypad.
Figure 10-1
Voice Mail Integration OCS can also integrate with Microsoft Exchange Server to access and store voice mails in the user’s inbox. OCS works in tandem with the PBX so that calls generated or received by OCS can then be transferred to voice mail should the call not be answered within a specified amount of time. The call would then be received by Microsoft Exchange Server, which would then store the voice mail in the user’s inbox, giving the user the benefit of accessing his or her voice mail right from within Outlook or other email applications.
Microsoft Office Integration OCS integrates with other Microsoft Office System applications to provide presence information and access to the OCS context menu right from within the application. This means that users can initiate an instant messaging chat session or telephone call, send an email, and even request a meeting right from within the Microsoft Office application. These functions are accessible via the OCS context menu, which is covered later in this chapter. The Microsoft Office applications that currently support OCS integration include Word, Excel, Outlook, and SharePoint.
Integration with Other Organizations When companies need to collaborate with business partners or other companies, often the process of enabling seamless collaboration between them is difficult. When you consider the many possible ways in which two companies could communicate and share information and that each way would have to be properly connected and protected, you can then start to realize why it is no easy task. If two different companies each have OCS 2007, then it is possible to seamlessly connect them so as to enable instant messaging, videoconferencing, and online meetings between the two just as easily as it would be within the organization. This seamless connectivity between two companies is achieved through a
279
Page 279
Schwartz
c10.tex
V3 - 12/26/2008
Chapter 10: Presence and OCS/Live process called federation. Think of federation as extending the reach of an organization to other organizations so communication and collaboration can happen both seamlessly and securely.
Integration with Third-party Instant Messaging Applications OCS is a great product that is geared toward corporate users, but the truth is that not every company uses OCS. In fact, many small companies where the number of users is very manageable use public instant messaging accounts for their online presence needs. Additionally, many companies employ contractors and may decide not to provision them with corporate accounts. Instead, they leverage the contractor’s public instant messaging service. In situations like these, OCS provides interoperability with popular public instant messaging applications, such as Yahoo! Messenger, Windows Live Messenger, and AOL Instant Messenger, so that corporate users can have access to presence information from users outside the organization. Special configuration is required in the OCS systems to enable this functionality, and the service requires the payment of additional licensing fees.
Presence As stated earlier in this chapter, the term presence can signify a number of different user experiences, some of them happening simultaneously. Throughout this chapter, however, we will refer to presence only as the representation of a user’s state in relation to his or her use of his or her computer. In other words, presence herein is considered the status of a user as the user interacts with a computer application that is designed to track the user’s state. In this way, when a user logs into the application, the user status can then be represented as being online. When the user leaves the application or shuts down the computer, then the status can be represented as offline. The application used to track a user’s activity and perform communication functions is known as a client. Figure 10-2 shows the Microsoft Office Communicator client.
Figure 10-2 Many people are familiar with popular clients, also known as IM clients, available for download from the Internet. Clients such as Windows Live Messenger, AOL Instant Messenger, and Yahoo! Messenger are freely available for download and only require an account with the appropriate web portal, which
280
3:07pm
Page 280
Schwartz
c10.tex
V3 - 12/26/2008
3:07pm
Chapter 10: Presence and OCS/Live is also available for free. The client used with OCS is Microsoft Office Communicator 2007. Whereas the OCS software runs on servers that you may never get to see, the Office Communicator Client is the piece that will be running in your computer and the one you will be visibly interacting with most of the time. Although different IM clients have their own implementation of a user state as well as the number of statuses that can be represented, one thing they do have in common is that all of them can at least indicate whether the user is present or not. In order to have basic presence functionality using OCS, the following applications are required in the user’s computer: Microsoft Office 2007 and Microsoft Office Communicator 2007. It is also possible to get presence information using the Windows Live Messenger service; however, this requires special configuration steps that are covered later in this chapter.
States of Presence in Office Communicator 2007 One of the distinctive features of the Microsoft Office Communicator 2007 client is its ability to show not only a person’s availability to communicate, but also a person’s willingness to communicate. The Office Communicator Client represents presence information as a small sphere that changes colors based on a number of factors. This sphere, also referred to as pawn icon or presence button, provides a quick visual representation of a user’s status, and it is available not only in the Office Communicator Client but also in every application that supports OCS presence integration, appearing right next to the name of a user who is part of your contact’s list and colored according to the status of the user. Figure 10-3 illustrates how the presence button appears next to the names of users in a SharePoint site. Notice the bubble next to the site owner’s name as well as the names of colleagues.
Figure 10-3
281
Page 281
Schwartz
c10.tex
V3 - 12/26/2008
Chapter 10: Presence and OCS/Live Information about a user that can be made available to others through Office Communicator includes offline presence, presence, display name, email address, title, work phone, mobile phone, home phone, other phone, company, office, work address, SharePoint site, meeting location, meeting subject, free busy, working hours, endpoint location, out of office notes, personal notes, and last active.
Access Levels Before diving into the color codes of the presence button and the status they represent, it is important to first understand the concept of access levels in Office Communicator Client 2007. Each user has a great degree of control as to what information about him or her is available to others, and this control is exercised via predefined access levels to which a user can assign others. Each access level represents a certain degree of privacy, and some levels reveal more information about a user than others. The access levels also determine whether a user can be engaged in communications based on the user’s online status. Users can control how others see them and interact with them by placing their contacts in one of the following five access levels:
Personal Contacts granted the personal level of access can see all of a user’s published contact information such as home and mobile telephone numbers. The personal level of access is considered one of the least restrictive and one that reveals the most about a user. The only pieces of information that are not available to contacts assigned the personal access level are meeting location and meeting subject from the user’s calendar, which are only available to users granted the team access level.
Team Contacts granted the team access level can also have access to all of a user’s published contact information. The difference between the team access level and the personal access level is that, whereas the personal access level can have access to home and other telephone numbers, the team access level does not. The team access level also has access to the user’s calendar details and has the ability to initiate communications with the user even when the status of the user is set to not be disturbed.
Company Contacts granted the company access level can see a user’s company information such as work telephone numbers as well as general availability information from the calendar, such as when the user is busy or when the user is going to be free next. This level of access is more restrictive than the personal and team access levels, as it blocks access to personal telephone numbers and meeting details such as subject and location.
Public Contacts assigned the public access level can only see basic information such as presence, the person’s name and email address, as well as the company. All other contact information is not accessible.
Block Contacts assigned the block access level are prevented from establishing any contact with the user. Even presence information is withheld from contacts that are blocked. The only pieces of information viewable
282
3:07pm
Page 282
Schwartz
c10.tex
V3 - 12/26/2008
3:07pm
Chapter 10: Presence and OCS/Live by a blocked contact are the user’s name and email address. This is the most restrictive access level. Figure 10-4 depicts the Office Communicator Client 2007 with the contacts organized by access level.
Figure 10-4
The Presence Button and What It Says About You The presence button is the primary visual indicator of a user’s status. It changes colors based on the activities and schedule of the user, and it provides context-sensitive access to a menu of actions that can be performed by simply clicking the button itself. The status of a user and thus the color of the button can be automatically determined by the Office Communicator Client or manually set by the user, as seen in the following figures.
Green — Available When the presence button is colored green, it means the user is online, available, and willing to communicate. When a user does not have a currently scheduled appointment and is actively using the computer, the Office Communicator Client automatically sets the user as available, and the presence button shows green. The user can also manually set the status to available, for example, when a meeting has ended earlier than its scheduled end time and the Office Communicator Client still sees a meeting taking place in the user’s calendar.
Orange — Busy The orange status color indicates the user is available but otherwise engaged in another activity. The Office Communicator Client will automatically set the status of a user to busy if the user currently has an appointment in the calendar, if the user is in the middle of an audio or video call through Office
283
Page 283
Schwartz
c10.tex
V3 - 12/26/2008
Chapter 10: Presence and OCS/Live Communicator, or if the user is participating in a conference through Office Communicator. A user can also set the status to busy manually. A user in this status may be willing to communicate with others; however, the user may not be able to. Additionally, a user can be interrupted via Office Communicator by other contacts when the status is set to busy.
Red — Do Not Disturb When the status is set to do not disturb, the user is not willing to communicate with others at the present time. The Office Communicator client never automatically determines this setting, and the user must manually configure it. Other contacts will be prevented from interrupting the user via Office Communicator. Only contacts with the team access level can interrupt a user set with the do not disturb status. In which case, the contacts will see the status of the user as ‘‘urgent interruptions only,’’ and the presence button will be colored orange. This indicates the user is only willing to be interrupted if the situation warrants it.
Yellow — Away The away status indicates the user is signed into the Office Communicator Client; however, the user has currently locked the computer and, most likely, has gone away for an unspecified amount of time. It is possible for the user to also set the status manually to ‘‘be right back’’ to indicate to others that the time away from the computer is meant to be brief. The presence button will also show yellow if the user has set the out of office option in Outlook and the Office Communicator Client was left signed on.
Half-Green/Half-Yellow — Inactive The Office Communicator Client determines this status automatically. It indicates the user is currently inactive, but otherwise may be available and willing to communicate. Office Communicator determines that a user is inactive after it has detected no keyboard or mouse input from the user for a specified amount of time, which, by default, is five minutes of inactivity.
Half-Yellow/Half-Orange — Busy (Inactive) Like the inactive status, the Office Communicator client also automatically sets this one. This status indicates the user is currently in a scheduled appointment, but the computer has been idle for the set amount of time. (By default, the idle timeout is five minutes.) This could be an indicator that the user is not using his or her computer to participate in the meeting or that the meeting is taking place away from the user’s office.
Dim Orange — Offline This status indicates the user is not available and is therefore unable to communicate. A user can appear offline for one of the following reasons: the user has manually set the presence status to offline and is therefore unwilling to communicate; the Office Communicator Client is not running on the user’s computer or the user has not signed in; or the user has blocked others from seeing his or her presence status. When a user has blocked others from seeing his or her presence status, the blocked contacts will see the user as offline.
No Color — Presence Unknown The lack of color in the presence button indicates that Office Communicator is unable to determine the presence status of a user or contact. This typically happens when the contact in question resides on a separate system with which OCS has no interoperability.
284
3:07pm
Page 284
Schwartz c10.tex
V3 - 12/26/2008
3:07pm
Chapter 10: Presence and OCS/Live Red Block Symbol — Blocked This status appears only next to the names of contacts that a user has placed in the block access level. A contact who has been blocked will see the user who blocked him or her as offline.
OCS/Live Integration with SharePoint Office Communications Server 2007 (OCS) and even the online Microsoft Live service can integrate right into SharePoint pages to provide presence information. In reality, there is nothing that has to be done to SharePoint to enable presence information, as this functionality is actually provided by OCS, Microsoft Office 2007, and Microsoft Office Communicator Client 2007. SharePoint already has the features in place to support presence information once OCS, Office, and Communicator are present and configured correctly. That is only to say that the functionality is already there, but it does not mean that SharePoint should not be aligned with the rest of the stars as well. Although explaining in detail how to configure the highly complex server components that must be in place in order to enable presence information is outside the scope of this book, it doesn’t hurt to have at least a basic understanding of some key facts. If nothing else, these could help you in pointing your system administrator in the right direction when he or she is troubleshooting issues dealing with presence in SharePoint or at least make you sound like you know what you are talking about. For presence functionality to be available in SharePoint, these are some of the most notable stars that need to be aligned: T
Microsoft Office must be installed on your computer. Whether it is version 2003 or 2007 of Microsoft Office, you will not be able to initiate any action based on presence unless Office is installed on your system. The menu that appears once you click the presence button is enabled by files that only come with Microsoft Office.
T
Microsoft Office Communicator 2007 or Windows Live Messenger must be installed on your computer. Office Communicator and Live Messenger are the client applications that will gather and display presence information. Without them, presence information is simply not available. You must also be signed into one of these applications in order to enjoy presence functionality. By default, the Office Communicator Client configures itself to log in automatically every time you log into Windows the first time you use it. This is also true of the Live Messenger client. This makes it easier to associate your use of your computer with your presence status.
T
You must have an Outlook profile configured for OCS to access calendar information. Office Communicator uses your Outlook profile to log into your email inbox and retrieve calendar information. Office Communicator then uses this information to automatically set your presence status based on your calendar. Without this information, Office Communicator will be unable to automatically set your status based on your schedule. and you will have to update your status manually. The Windows Live Messenger client does not support this functionality.
T
Your account must be enabled for OCS access. Once OCS is installed and configured in an organization, users are not enabled for access by default. System administrators must grant this access. Once a user has been granted access to OCS, he or she will receive what is called a SIP address. The SIP address is used by Office Communicator to locate and determine presence information. More often than not, it takes the form of your email address.
T
The SharePoint web site must be trusted by your web browser. Due to security features that newer versions of Internet Explorer have introduced, ActiveX controls are not executed if the
285
Page 285
Schwartz
c10.tex
V3 - 12/26/2008
Chapter 10: Presence and OCS/Live web site is not found to be trusted. Because the presence button in SharePoint is an ActiveX control, it is necessary to add the SharePoint web site to either the trusted zone or local/intranet zone. Many times, system administrators control the web sites placed on users’ Internet Explorer settings by using a Windows feature called Group Policy. Security zones will be explored more deeply in the You Try It section below.
Integration Benefits Integrating presence information into SharePoint has significant impact on the level of productivity of end users. Consider the following scenario. The public-facing web site for a company uses SharePoint for content publishing, and it leverages workflow for the changing and approval of content. The web site approver reviews some of the changes that were done by one of the content editors and needs some questions answered before deciding to approve or reject the edited content. In a normal workflow scenario, multiple emails would likely go back and forth until the questions would be answered or clarified. If the web site approver does not have a direct working relationship with the content editor, chances are, the approver would have to spend some time digging for the editor’s contact information in order to engage in a telephone conversation. Now imagine that both the approver and the editor were enabled for OCS, and both had presence information available. The approver could see the editor’s availability right from within SharePoint at the time of making the reviews and could initiate an instant messaging session through which the questions could be quickly answered. If typing were to become too cumbersome to obtain the answers quickly, the IM session could be quickly escalated to a telephone conversation, and the approver could proceed with accepting or rejecting the changes. When presence information is integrated into SharePoint, users have access to the following functionality by simply clicking the presence button right in SharePoint: T
View presence status
T
Schedule a meeting
T
View free/busy status
T
View current location
T
Access My Site
T
Initiate a Communicator call or telephone call
T
Send an email
T
Initiate an IM session
T
Tag for presence alerts
T
View Outlook contact information
Notice in Figure 10-5 how feature-rich the presence menu is and how you can have access to so much information with just the click of a button. Choosing to schedule a meeting, send an email, or view Outlook contact information from the presence context menu opens up a corresponding Outlook window where you can compose and send a new meeting request, compose and send a new email message, or view additional contact information respectively. Choosing the My Site option takes you right to the contact’s My Site if he or she has one. Choosing to call the contact or reply with an IM opens up corresponding Office Communicator windows.
286
3:07pm
Page 286
Schwartz
c10.tex
V3 - 12/26/2008
3:07pm
Chapter 10: Presence and OCS/Live
Figure 10-5
Other SharePoint Features that Complement Presence Microsoft Office SharePoint Server 2007 supports two features that do not rely on OCS functionality, but they are complementary to the overall sense of presence in SharePoint. These two features are the Availability Web Part and the Colleague Tracker Web Part.
Availability Web Part This Web Part, which is present by default on the landing page of My Sites, provides free/busy information about the site owner to visitors of the site. It does this by connecting to the Availability service in Exchange Server 2007, which tells SharePoint whether the site owner is free or busy at the time and for how long. Of course, this functionality requires an Exchange Server 2007 installed and configured in the organization. Figure 10-6 shows the Availability Web Part displaying free/busy information for the site owner in a My Site.
Colleague Tracker Web Part The Colleague Tracker Web Part, shown in Figure 10-7, is a form of contact management that allows you to keep track of important information about your contacts. The Colleague Tracker can be fed directly from the SharePoint profile database, which is centrally managed and populated. It can then make suggestions of people you may want to get in touch with based on information in the database, such as
287
Page 287
Schwartz c10.tex
V3 - 12/26/2008
Chapter 10: Presence and OCS/Live common interests, the name of your manager, or projects in which you might have participated. You can also choose to add contacts to the Colleague Tracker manually and determine which information about a person you would like to track. The Colleague Tracker is useful in that it notifies you of important events or changes that you may be tracking about your colleagues. Some examples include a person’s birthday, a hire anniversary date, or when a person changes jobs.
Figure 10-6
Figure 10-7
You Tr y It In this section, you have an opportunity to experience presence in SharePoint firsthand and try out its features. In this exercise, we will configure SharePoint to display presence information using Windows Live Messenger.
Enabling Presence from Windows Live Messenger in SharePoint For this exercise, you will need to have the following items in place:
288
T
Your own SharePoint My Site
T
A Windows Live Messenger account
3:07pm
Page 288
Schwartz c10.tex
V3 - 12/26/2008
3:07pm
Chapter 10: Presence and OCS/Live T
The Windows Live Messenger client installed on your computer
T
Microsoft Office 2003 or 2007 installed on your computer
The first step in this exercise is to enable the Windows Live service to allow your presence information to be accessible by third-party systems outside of the Windows Live service. To accomplish this, you will have to do the following:
1.
Log in to your Windows Live Messenger settings, which you can do at the following URL: http://settings.messenger.live.com/Applications/WebSettings.aspx.
2.
If you have not signed into Windows Live on your computer yet, you will prompted for your Windows Live ID and password at this point.
3.
Once you supply your credentials, you will be taken to the web settings of your Messenger account. As seen in Figure 10-8, check the box that states Allow anyone on the web to see my presence and send me messages. Then click Save.
Figure 10-8 Next, you will need to add your SharePoint site to the list of trusted sites in Internet Explorer. Please note that, if your organization is enforcing Internet Explorer security zones using Group Policy, you may not be able to perform this step, as the options will be inaccessible. If you have the ability to edit the security zones, then follow these steps:
1.
Open Internet Explorer, and click Tools, which is located on the main menu bar. In the Tools menu, you will see an item called Internet Options. Click it.
2.
Once the Internet Options window opens, you will notice that it has multiple tabs and each tab has a number of settings in the form of radio buttons, sliders, lists, and check boxes. Click the Security tab.
3.
In the Security tab, you configure everything related to Internet Explorer security. You will notice that Internet Explorer divides web sites into four different security zones, as illustrated in Figure 10-9.
289
Page 289
Schwartz c10.tex
V3 - 12/26/2008
Chapter 10: Presence and OCS/Live
Figure 10-9
4.
Click the zone called Trusted Sites, and then click the Sites button. This will open the Trusted Sites dialog box.
5.
In the Trusted Sites dialog box, supply the URL for the site hosting the My Sites for your company, for example, https://mysites.contoso.com. Then click the Add button. The site will then be placed in the Trusted sites zone. Now click OK to close the Trusted Sites dialog box. Figure 10-10 depicts the Trusted Sites dialog box.
6.
You can now click the Apply button for the changes to take effect, and then click OK to close the Internet Options window.
Now you will configure your SharePoint site to recognize your Windows Live user ID for presence. Follow these steps:
290
1.
Log in to your SharePoint site, and click the link at the top of the screen that says Welcome . In the context menu that pops open, click My Settings. This step is illustrated in Figure 10-11.
2.
In the My Settings page, click the Edit Item link to enter edit mode, as illustrated in Figure 10-12.
3.
Modify the field labeled SIP address, and enter your Windows Live user ID. Click Save, and return to your SharePoint page.
3:07pm
Page 290
Schwartz
c10.tex
V3 - 12/26/2008
3:07pm
Chapter 10: Presence and OCS/Live
Figure 10-10
Figure 10-11
4.
Now presence information from Windows Live should be available in your SharePoint site. Please note that, for you to see the presence information for other site users, those users must have Windows Live IDs as well, and they should have gone through the same process as you to add their Windows Live ID as their SIP address.
291
Page 291
Schwartz c10.tex
V3 - 12/26/2008
Chapter 10: Presence and OCS/Live
Figure 10-12
Using OCS with Office and SharePoint For this exercise, you will need to have the following items in place: T
A SharePoint site that supports the creation of document workspaces
T
An account enabled for OCS
T
The Microsoft Office Communicator Client installed on your computer and signed on
T
Microsoft Office 2007 installed on your computer
T
An Exchange Server mailbox
T
Outlook configured with your own profile
In this exercise, you will use the features of the Office Communicator Client as you collaborate on a document with colleagues. We will first create a document in Word. Then we will publish this document to a Document Workspace in SharePoint. We will then invite a number of colleagues to collaborate on the Word document. Finally, we will use the OCS features in Office and SharePoint to initiate instant messaging sessions and schedule meetings.
1.
292
Open Microsoft Word. Type some text in the document. Tip: You can generate random text in Word 2007 by typing =rand(number) in the body of your document, where the number will tell Word how many paragraphs of random text to generate. Then press the Enter key.
3:07pm
Page 292
Schwartz c10.tex
V3 - 12/26/2008
3:07pm
Chapter 10: Presence and OCS/Live For example, the following text will generate seven paragraphs of text in the body of your document: =rand(7). Make sure you press the Enter key right after typing the text and you have no quotation marks.
2.
Save the Word document to a Document Workspace by pressing the Office button on the upper left-hand corner of the main Word window. Go to the option called Publish. Then click Document Workspace. Figure 10-13 illustrates this step.
Figure 10-13
3.
Word will now prompt you for details about the Document Workspace by showing the Document Management bar on the right-hand side of your document. Provide a descriptive name for the Document Workspace, and the URL where the workspace will be located, as illustrated in Figure 10-14. Click the Create button to create the Document Workspace. If you are prompted to save the document locally first, click Yes. Then proceed with saving the document.
4.
Once Word creates the Document Workspace, the Document Management bar will change to display the document status. From this bar, you can now select a number of actions to manage all the collaboration aspects of the document. Click the Members tab, and click the Add new members link, located toward the bottom of the bar, as illustrated in Figure 10-15.
293
Page 293
Schwartz c10.tex
V3 - 12/26/2008
Chapter 10: Presence and OCS/Live
Figure 10-14
294
5.
The Add Members dialog box will appear. Enter the names of your colleagues who will be collaborating with you on this document. A semicolon must separate each member’s name. Select the type of access each user will have to the Document Workspace site. You can accept the default of Design, and then click Next. You will then be asked to verify the users’ names and their corresponding email addresses. Once you have verified their identities, you can click Finish. Figures 10-16 and 10-17 show the Add Members dialog box.
6.
Once you have finished adding users, Word will ask if you would like to send an email to the users you have just added to notify them that they are now being granted access to a Document Workspace, as shown in Figure 10-18.
7.
If you choose to send an email to the users, an Outlook New Message window will appear, giving you the opportunity to edit the message before sending it to the users. This is shown in Figure 10-19 below.
8.
You will notice that the Membership tab of the Document Management bar has been updated to include the new Document Workspace members. You will also notice that presence information is displayed for each member, as shown in Figure 10-20.
3:07pm
Page 294
Schwartz
c10.tex
V3 - 12/26/2008
3:07pm
Chapter 10: Presence and OCS/Live
Figure 10-15
9.
Now bring up the Office Communicator context menu by clicking the drop-down list surrounding the name of one of your colleagues. From this context menu, you can email, call, set up an appointment, or simply chat with your colleagues. You can also see their schedule of availability. Click the Reply with an instant message option from the context menu to initiate a chat session with your colleagues. Figure 10-21 shows the Office Communicator context menu.
10.
Using your web browser, go to the Document Workspace. You can open the web browser and type the URL or click the Open site in browser from the Document Management bar in Word link.
11.
When you open the site in your web browser, you will notice that presence information is available wherever your colleague’s names appear, as shown in Figure 10-22.
12.
Now, you can bring up the Office Communicator context menu by clicking the Presence button right next to one of your colleagues’ names. To initiate an appointment request, click the Calendar icon in the Office Communicator context menu. This will start an Outlook meeting request with your colleague. Figures 10-23 and 10-24 show the meeting request process.
295
Page 295
Schwartz
Chapter 10: Presence and OCS/Live
Figure 10-16
Figure 10-17
Figure 10-18
296
c10.tex
V3 - 12/26/2008
3:07pm
Page 296
Schwartz
c10.tex
V3 - 12/26/2008
3:07pm
Chapter 10: Presence and OCS/Live
Figure 10-19
Figure 10-20
297
Page 297
Schwartz
Chapter 10: Presence and OCS/Live
Figure 10-21
Figure 10-22
298
c10.tex
V3 - 12/26/2008
3:07pm
Page 298
Schwartz
c10.tex
V3 - 12/26/2008
3:07pm
Chapter 10: Presence and OCS/Live
Figure 10-23
Figure 10-24
299
Page 299
Schwartz c10.tex
V3 - 12/26/2008
Chapter 10: Presence and OCS/Live
Success Factors for Presence and OCS/Live in organizations Apart from technology itself and how well it is deployed, two key factors play a critical role in the success or failure of presence-enabled technologies in organizations. The first factor is the development of online communication etiquette and the second factor is user adoption.
Online Communications Etiquette Believe it or not, instant messaging can be a pretty disruptive technology. It provides yet one more way for others to have access to you and your valuable time. Organizations need to provide guidelines for technology usage right from the start, and online communications should not be an exception. For some organizations, it may be necessary to extend their computer usage policy to include presence-enabled applications. No matter the vehicle the organization chooses to communicate guidelines to the end-user community, it is important to delineate what constitutes proper etiquette when communicating through presence-enabled applications. Organizations should define: T
When it is appropriate to interrupt another user
T
How to choose one form of communication over another
T
Whether conversations will be tracked to ensure regulatory compliance
User Adoption End-user adoption is key to the success of presence-enabled applications. One reason for this is that, in order for presence information to be available, the presence-aware application must be running. If users fail to use Office Communicator, Windows Live Messenger, or whatever other presence-enabling client application they are required, the technology and all the benefits it brings will never come to fruition. More often than not, lack of training prior to or during the initial stages of a new technology deployment is to blame for the lack of end-user adoption.
Summar y In today’s highly connected society, presence-enabled applications have made their way from the mainstream public space to the corporate world. OCS 2007 and Office Communicator Client 2007 are Microsoft’s offerings to organizations that want to leverage the benefits of presence information to empower their users to be more productive. OCS integrates with a number of Microsoft and third-party products to create a comprehensive and powerful communications platform. Coupled with SharePoint, OCS can help maximize user productivity by providing real-time availability information that enhances communication and collaboration. In this chapter, we learned that:
300
T
Presence is the online computer representation of a user’s state.
T
OCS 2007 is a product that is geared toward corporate use and features online presence information.
T
OCS integrates with the Microsoft Office suite of products as well as with telephone systems and popular instant messaging applications.
3:07pm
Page 300
Schwartz
c10.tex
V3 - 12/26/2008
3:07pm
Chapter 10: Presence and OCS/Live T
Access levels control the ability for others to see a person’s contact and presence information.
T
The main feature of Office Communicator that conveys online status is the Presence button, which is color-coded. Different colors indicate different states of presence.
T
SharePoint supports presence-aware applications, such as Office Communicator and the Windows Live Messenger client.
T
In order for presence information to be displayed in SharePoint, the user must have Microsoft Office 2003 or 2007 installed on his or her computer as well as Office Communicator Client or Windows Live Messenger client.
As you have been able to see through this chapter, SharePoint supports rich and highly advanced communication technologies. In the next chapter, we will cover how interactive media, video, and communications that integrate with SharePoint to provide users with advanced collaboration tools goes well beyond web pages.
301
Page 301
Schwartz
c10.tex
V3 - 12/26/2008
3:07pm
Page 302
Schwartz
c11.tex
V3 - 12/26/2008
3:16pm
Interactive Experience, Video, and Communication Social computing is a paradigm shift, focusing on the user instead of the process or document. As this book has explored through the past six chapters, social computing has numerous implementations such as wikis, blogs, podcasts, and mashups. Each of these concepts turns the traditional file-centric intranet on its head by placing the users in charge of creating, rating, and exploring content. This chapter will explore several additional social computing concepts, such as interactive experiences, micro-blogging, and video content. Each of these concepts brings the kind of user interactivity and connectedness that has been difficult to achieve in more traditional intranets with their file and news release-centered content.
Interactive Media Media throughout the ages has been implemented using a single direction of content. Print media was created and distributed in paper form. Radio allowed the broadcasting of audio and speech. With the introduction of television in the 1930s, media was enhanced to moving images and sound, but it was still not truly interactive. While it is possible to control the content delivered by tuning the radio or television to a certain station, the recipient could not actively participate in the content. It was not until the World Wide Web’s introduction in the 1990s that media had the possibility to be truly interactive. Interactive media can be described as a media that allows participants to communicate back and forth. So you may be thinking to yourself, with that loose of a definition, interactive media can include face-to-face communication! That’s correct. The best interactive media has been around for mankind ever since mankind! Right now is a time in history where the technology has developed to make the face-to-face interactive media scalable to such a degree that the infamous town crier who reported information and heard the opinions of the participants is now at a worldwide level. Accenture’s 2008 Global Media Content Survey has shown how top-level executives are feeling about the future of interactive media. This survey of more than 100 senior executives in the media
Page 303
Schwartz
c11.tex
V3 - 12/26/2008
Chapter 11: Interactive Experience, Video, and Communication and entertainment industry examined the growth strategies of companies across the landscape of advertising, film, music, publishing, radio, the Internet, video games, and television. The survey revealed that there appears to be strong consensus as to what will drive future growth. The majority of respondents indicated they derive revenue today from new alternate forms of interactive media, such as downloading or watching TV programs on demand, digital advertising, or user-generated content. The participating companies indicate that the revenue derived from these new forms of interactive media represents tremendous growth and substantial revenue streams. Social media and user-generated content were cited as high-growth opportunities. Two-thirds (68 percent) of respondents identified social media and user-generated content as a high-growth opportunity, and more than half (56 percent) said they are already involved in social media in some capacity. This seems to indicate that social media is going to be the next big thing. No one knows for sure, but what is known is that the growth of interactive social media is expanding at an incredible rate in four major areas: entertainment, communication, collaboration, and multimedia. You cannot pick any of these areas that has not recently seen an application that has taken the world by storm, including multimedia with YouTube and Flickr, community collaboration on Wikipedia, communication with blogs, instant messaging, and videoconferencing. The list goes on and on. The best interactive media has always been face-to-face communication, but there are inherent scalability problems with in-person chats. Today, the closest technology can come to that media is videoconferencing. Videoconferencing allows for a real-time interaction of multiple participants’ exchange of video and audio. This technology allowed businesses to interact better between large distances. Meetings could be arranged in shorter notice, saving time and money on travel. Although the value is there, the adoption has been slow due to hardware requirements, costs, and limitations on the number of participants.
Microsoft RoundTable Microsoft has an intriguing product that brings videoconferencing up a notch. The RoundTable product is compressed of hardware and software. The hardware is a futuristic-looking device used in conjunction with either OCS 2007 or Office Live Meeting 2007 to take panoramic video and audio of all participants. The result of this configuration is a 360-degree view of all the participants gathered for a meeting. Another view on the same interface will show the current attendee who has the floor. This is done using a sound-recognition process to present the speaker, using the five cameras in the panoramic view. This allows the remote clients viewing this presentation the ability to see who is speaking at all times and see the visual reaction of each person on-site who is attending to the presenter’s words. RoundTable also allows for an application to be launched that will become an integral part of the presentation. A PowerPoint presentation, for instance, can be launched and viewable in the same page as the panoramic view of the attendees and the presenter. Recorded meetings can then be posted on SharePoint. During the playback of those recordings, users are able to find, view, and filter out content of the meetings. You are able to filter out the content to a subset of the speakers if you wish or jump to a particular PowerPoint slide and see the facial reactions of every attendee.
Virtual Worlds What about a virtual environment that would allow for individuals to interact face to face without the requirement of video capture? What if the video interaction was simulated along with the environment?
304
3:16pm
Page 304
Schwartz
c11.tex
V3 - 12/26/2008
3:16pm
Chapter 11: Interactive Experience, Video, and Communication Welcome to virtual worlds. With virtual worlds, companies are able to re-create environments and meeting locations based on what the business want to accomplish. Participants are able to virtually create their likeness as avatars, complete with images, mannerisms, and characteristics of their real-life host. Virtual worlds started in computer games, which led to MMORPGs (massively multiplayer online role-playing games). MMORPGs are now a billion-dollar industry. This industry creates some intriguing social interaction and collaboration elements. Members survive, grow, and prosper mainly in part to their abilities to mingle, interact, and strategize with others. Users can choose team members and find like-minded others. The virtual world with its unscripted outcomes allowed for economies to be created with virtual products and services being sold and resold. These virtual worlds were bound to make an appearance in cooperate business. A virtual world solution for your business can lead to increased productivity, effective collaboration, improved communication, enhanced engagement with your customers or audience, and reduced business costs. Virtual worlds can increase productivity by taking advantage of live chats that involve people sharing ideas and transferring information in real time with exact targets. Setting up virtual meeting and/or product demos can be done at the spur of the moment. Collaboration in a virtual world is very similar to people working together in real life. Virtual characters with certain knowledge and skills are sought after, just like interactions in real life. Individuals in virtual worlds work together on common goals, sharing thoughts and ideas. Communication is improved in virtual worlds because the fear factor is hidden once in a virtual world. Employees in a virtual meeting environment are much more likely to ask questions and share information than they would if the meeting was in real life. In a virtual world, communication with customers is improved since media like video, text, and virtual products can be used to present company content. A virtual store with current and future products can be set up, allowing your customers to interact with the products virtually and try prototype product ideas before they are manufactured. The virtual environment will create a reduction in business costs by allowing employees and customers to interact across locations. The virtual world is coming amazingly close to real life. With multiple communication methods, including images, audio, video, text, and interactive speech, virtual meetings, conferences, and classes are becoming the norm in this environment, all with the ability to bring people together in one place, no matter where they actually are in the real world. Unlike a typical corporate web site, a virtual environment for your end customers allows for a personalized interaction with your products and services. As this virtual world obtained its start from computer games and IT developers, it will take a corporate business to have it flourish. Corporations like Cisco and IBM are seeing the value in setting up virtual worlds in Second Life, one of the largest virtual world environments. IBM’s CEO announced an initiative for a $10 million project to help build out the ‘‘3-D Internet’’ exemplified by Second Life. Figure 11-1 shows an example Second Life territory. In this case, IBM has staked a claim to some territory. Virtual worlds are beginning to be seen as a platform for a whole new Internet in 3-D, and they are even more social than the original with huge opportunities to interact and sell products and services. Linden Labs, creator of Second Life is currently developing APIs to allow businesses to interact directly with the Second Life Business version termed the grid. APIs such as the registration API will allow you to register users of Second Life from within your own web site. This integration will allow organizations to send those users through a branded login experience and direct them to the company estate in Second Life. SharePoint will be able to leverage those APIs once they are finalized!
305
Page 305
Schwartz
c11.tex
V3 - 12/26/2008
Chapter 11: Interactive Experience, Video, and Communication
Figure 11-1
Discussion Forums Someone communicates something; someone else interprets it, analyzes it, and makes some thoughtful response. Certainly, some discussions seem more intelligent than others, but, at the end of the day, that’s the foundation of an electronic discussion. The medium that these discussions can take place in are wide and varied. Real-time electronic discussions are referred to as chat while discussion boards, discussion groups, discussion forums, and so forth all synonymously mean those mediums that are not real-time. Before looking into the various technologies, it is important to understand the players. The reader, poster, and moderator are all important players in the discussion, and understanding their dynamics is important.
Participation After the discussion board has been seeded with its first post, the discussion needs to be watered. That water comes in the form of participation, and participation doesn’t happen right away. First, people will watch what’s going on and read several of the posts before making a comment. After they have gotten motivated enough, they will post. After some time, people will feel they are a part of the community and, out of pride or some other reason, rise to take ownership of it. It’s these three components that make a discussion unstoppable, short of unplugging the server. As discussed, discussions are focused around a particular topic. Even the most well–thought-out topic leads discussions into wild tangents. Gathering many like-minded people together and encouraging them to have discussions will produce some interesting content. Content attracts readers. Readers attract content producers. It’s a cycle that needs a catalyst. Encouraging several people to participate in the beginning brings the discussion to life. Encouraging people to be genuine is a lot different than nagging at people so much that they make posts just for the sake of making posts. This will make a forum look artificial or forced, and a true community will not form. People tend to be able to spot genuine posts and will feel comfortable spending their time in that forum. After visitors have been reading for a while, they start to develop opinions and ideas about what’s being said but haven’t posted yet. This is known as a lurker. Other times, visitors will skip the reading part and go right to posting. The post won’t have anything to do with what’s going on and will seem foolish. This will confuse readers and promote lurking because the visitor will think, ‘‘After all, that person had enough gumption to make a post. He must know what he is talking about. I must be unclear as to what this discussion is really about.’’ The visitors might become so confused that they will not come back.
306
3:16pm
Page 306
Schwartz
c11.tex
V3 - 12/26/2008
3:16pm
Chapter 11: Interactive Experience, Video, and Communication Even when in a mouth-to-ear style of discussion, things can get heated up. So one or all of the participants will point out when something is off-topic and bring the conversation back to reality. Sometimes, things get so heated that they get way off-topic where they were once talking about dogs on leashes in a local park and end up talking about global warming. This is where someone who is interested in the leash situation would point out that they weren’t talking about leashes anymore and perhaps the best place to talk about global warming is in the global warming discussion. These kinds of moderators can either be a part of the organization that is hosting the discussion or be promoted from contributors.
Moderation Moderation can happen from moment the discussion starts until it is closed. Moderation encourages the first wave of experts or passionate advocates to stay within certain boundaries. The boundaries are meant to keep the conversation interesting. To keep a conversation on topic is important. It’s too difficult for consumers of this information to figure out what conversations are going on. Keeping the topics focused makes it easy for readers to understand what is going on and easier for them to contribute. As the discussion evolves and matures, the moderator finds themselves policing offensive material. Offensive material is not interesting and causes rioting. The intellectual appeal is lost. A fight ensues, and you’re left with a discussion about how much one person hate another. Instead, the moderator prunes the offensive behavior and teaches the poster the proper behavior. After the moderator has enough well-I-didn’t-know discussions, he or she creates a list of rules. The rules, usually known as an acceptable use policy, are posted, typically right in the discussion board. Depending on the topic, the rules may come first, but, in most cases, they will come after the conversation has grown organically. As a rule of thumb, the fewer rules, the greater the participation. The more offensive behavior and the further off-topic, the less participation there is in the discussion. Moderation is best done moderately. Every once in a while, there will be a moderator who may have had a lousy childhood and takes it out on the members of the discussion. Some discussions can’t take off because the members feel uncomfortable that Big Brother is watching or feel that what they write will be censored. Some discussions announce they are not moderated at all. In today’s age of spamming, it’s hard to imagine that a discussion would go totally without moderation. At least someone would have to remove the posts that don’t have anything to do with the discussion at hand and instead perhaps post helpful advertisements about how to make a six-figure income by working just four hours a week. Moderation of the discussion plays a big part in creating a healthy discussion. Discussions usually have two sides, and moderation makes sure the two sides are playing fairly. Keeping all offensive material and the conversation on topic creates a forum that the reader feels comfortable enough to participate in. Moderators can affect the general direction of the conversation, so it’s important to have moderators who are of the same mind as the original goals of the forum. In addition to keeping a finger on the pulse of the dynamics between the posters, readers, and moderators, the technology used for the medium will provide a great influence if the forum achieves its goals.
Discussion Technologies There are a few different technologies used to create a medium for discussions, including Usenet, email, web-based forums, or a combination. Each of these technologies works a little differently and has a different archiving process. The next section covers various problems that can be solved through discussion boards, and the user relationship dynamics and the medium used play a huge part in the success or
307
Page 307
Schwartz c11.tex
V3 - 12/26/2008
Chapter 11: Interactive Experience, Video, and Communication failure of the forum. Starting with the oldest technology, Usenet, and working through to the web, keep in mind how these can achieve various goals of a discussion forum. Usenet, derived from user’s network, has been around since the early 1980s. Back in the day, this was hotter than web pages when web pages were originally introduced. The Web was kind of flat and static, and you had to use markup to write anything. The main consumers of web pages were academics exchanging scientific or technical information. Comparatively, Usenet was a breeze. People had a client application that could read these posts, and it was as simple as typing an email to post a response. The Usenet worked a little differently than the way the Web works today. With the Web today, there is a one server for a specific web page, and all of the traffic is directed to that server. Usenet had to replicate all of the messages so every network had a local copy. Usually, one UNIX server was dedicated to this. It doesn’t sound like a lot now, but moving hundreds of megabytes worth of newsgroup contents around every night was a bit of a pain in the network. In addition, even today, a separate client has to be used. Some email clients included the Network News Transfer Protocol (NNTP). As bandwidth got better, the messages became more centralized. There is still a problem that servers don’t keep messages forever. They have an expiration date. When that date comes, they are deleted from the server. This keeps messages that are old and outdated out of the way. Oftentimes, they are archived to a different server. The problem then becomes archiving. And, once it’s archived, the problem becomes how to find it again. Deja News offered a service that could find older message on news servers. This was great for reference, but it could inhibit people from posting. What is said today might make a lot of sense, but, six months from now, when it’s read by someone who wasn’t even part of the discussion at the time, it might take what is said out of context. It’s never any fun to backpedal on something that wasn’t even said six months ago. Email discussions sometimes starts up much less formally. They can be so easy and just include everyone’s individual email address or setting up a list server. A list server is a server that, when it receives a message, will redistribute it automatically to all of the members. This was — and still is — great for many people because they already spend so much time in their email clients. Now they can set up rules and have all of the messages that belong to a particular topic end up in a folder, and it can be read when the time is appropriate. Email discussions are a double-edged sword. On one hand, they aren’t usually archived, and only the members of the discussions have the individual posts. These posts are not available to outsiders, so there is a warm, fuzzy feeling that what I post probably won’t be analyzed for more than what it’s worth. The responses will be very contemporary and immediate, and the fear of having to defend against something out of context sometime in the future is removed. On the other hand, only the members of the discussion actually get to benefit from the discussion itself, which is probably more exclusionary than community-building. So, in an effort to get these valuable discussions out into the open, the email messages will be posted to the Web. This is especially difficult to do because the threads can get out of whack. Many times, people will change the subject line, but some other topic will inspire the discussion. Unless the person who renamed the subject has a copy of every previous email, the thought will be lost. Again, context will be an issue. Enter web-based discussions. Web-based discussions can be an entire forum all unto themselves, like Usenet, or they can be focused and context-sensitive, such as a single discussion on a single topic. Web-based discussions are usually around for as long as the site is, and they can be a great way to get traffic to the site. Unlike Usenet, a post author can include images. Search engines index the discussions, and the content is made available to everyone with a web browser, which is a tool that many people use to go find information nowadays. Some of the drawbacks still exist, like the information can become old and outdated, so the author has to pay a lot of care and attention when composing a message.
308
3:16pm
Page 308
Schwartz
c11.tex
V3 - 12/26/2008
3:16pm
Chapter 11: Interactive Experience, Video, and Communication A big difference between a blog and a discussion is that the author of the blog is strongly driving the conversation where everyone else only gets to respond to what the author wrote. Comments don’t have threads. When threads enter the picture, there is a real discussion happening, and then there is a discussion about a particular topic. Discussions are extremely similar to face-to-face conversations in this way, as any participant can steer the conversation in any direction. There are variations on a theme. Messages in Usenet style can be repurposed and displayed on the Web. Emails can be used to interact with either. It certainly is a mix-and-match world, and it depends on the goal of the discussion forum.
Setting Goals for a Discussion Discussions can bring traffic, create community, solve problems, and educate. This is by no means an exhaustive list, but it is a good starting point. Identifying the discussions goal is necessary to understand who is going to be using the site and how. Quickly going over some common scenarios might bring some enlightenment as which to use when. A situation where there are several tens of topics that are all self-contained is best suited for Usenet. Since Usenet uses a different client, it’s pretty easy to see what’s been read and what hasn’t been read yet. An example of this might be a manufacturing company that has special support services for an elite group of implementation people. These people can have discussions about particular problems, third-party solutions, and other work-arounds on many aspects of many different products. This can also be done in a web-based scenario as well. The deciding factor boils down to the potential user community. Some manage their entire day through Outlook and spend all of their time in email. With typically those kinds of problems, people need to get information about something quickly. For example, ‘‘Did the manufacturer ever decide what material it was going to make that particular screw out of?’’ This could be answered by someone else in the group who knows. These kinds of queries don’t need to be archived or redistributed outside of the group because one of the members is probably someone who has to maintain that particular information and will go to the necessary place on the web site and make it clear. Discussing a particular problem about something specific is probably best done on a web-based discussion. This is because that specific something and all of its supporting information can be included on one web page. This really helps with the context issue, so a user doesn’t have to flip back and forth between several different tools to gain understanding of the situation. Following along our example, there could be the picture of the screw in question as well as links to all of the documentation about it. A discussion then takes place specifically about that screw. Whether the discussion is focused on soliciting technical or specialized knowledge, working through a problem, or dealing with something as simple as frequently asked questions, understanding what tool the user is most likely going to want to use at the time he or she will read or post is important. In some situations, a user might want to read posts in email but respond via the web or vice versa. Other situations may call for an elite group that will be participating via email or Usenet while others consume the information via the Web. SharePoint offers web-based discussion. Working through the following example will give an understanding of SharePoint’s discussion lists.
Discussion Forums in SharePoint In SharePoint, the discussion forum is realized as a discussion board. The SharePoint discussion board is a custom list with an ability to set up a linked list for the list items. This linked list facilitates the thread creation and presentation of a discussion. Although the discussion is the most common use of the
309
Page 309
Schwartz
c11.tex
V3 - 12/26/2008
Chapter 11: Interactive Experience, Video, and Communication discussion board, the specialized list with its threaded items can be used for other purposes. For instance, a customized discussion board could be used as an email archive repository. Inbound messages and outbound responses can be stored in a discussion board as a linked discussion. Discussion boards represent a powerful communication medium in SharePoint. Businesses can leverage an easy implementation of a discussion board to facilitate communication and feedback from employees. Educational institutions can use discussion boards to post vital information to students, and students can interact with classmates online. It is also very important to establish some guidelines when using discussion boards. An appointed moderator can review posts to determine if the post is on topic and appropriate for the particular discussion board. Online discussions should be conducted as you would do in constructive face-to-face discussions, that is, being professional and courteous since online communication lacks the nonverbal cues that provide much of the meaning in conversations. Choose your words carefully. Keep on topic with postings that are direct to the point.
You Try It This section contains the steps to creating and setting up a discussion board in SharePoint 2007. The example was done on a Windows 2003 server installed with MOSS 2007, but it will also work with WSS. With administrator access to the SharePoint site, select Site Actions. Under Site Actions, find Communication, and then select Discussion Board, as shown in Figure 11-2.
Figure 11-2 Figure 11-3 shows the creation of the discussion board. Here the name and description of the discussion board will be entered. It also allows for the entry of an email address so users can email information to the
310
3:16pm
Page 310
Schwartz
c11.tex
V3 - 12/26/2008
3:16pm
Chapter 11: Interactive Experience, Video, and Communication discussion group. This is a very powerful and useful feature. With this, someone can send a mass mailing to individuals and have them reply back to the email with their feedback. By doing this, all responses are then tracked in the discussion group.
Figure 11-3 The discussion group is then created, ready for use. It is created with a default view, which displays the discussions by subject. There are three OOB views to mention. Discussion groups behave and have the characteristics of a SharePoint list. Like other SharePoint lists, you can filter the view depending on how you want the list to be shown.
Subject View This view shown in Figure 11-4 is available only for the top-level folder of the discussion group and presents discussions by their metadata, such as the titles of discussions.
Flat View Setting up a Flat view, as shown in Figure 11-5, the user can see the discussion group that is similar to a Usenet newsgroup. This view is available only in content folders, not at the top level. Hiding or showing linked messages in the same thread can be accomplished by using Show Quoted Messages and Hide Quoted Messages.
Threaded View Like the Flat view, this view, as shown in Figure 11-6, is available only in content folders. In this view, you see the messages compressed into an indented visual layout. So you can see whether a reply was made to the original posted message or a subsequent message.
311
Page 311
Schwartz
c11.tex
Chapter 11: Interactive Experience, Video, and Communication
Figure 11-4
Figure 11-5
312
V3 - 12/26/2008
3:16pm
Page 312
Schwartz
c11.tex
V3 - 12/26/2008
3:16pm
Chapter 11: Interactive Experience, Video, and Communication
Figure 11-6
Participating in a Discussion Now that the discussion is board is created, participation to read and post discussion threads is available to everyone with the site access. For any discussions to succeed, the discussion topics and posts need to stir up interest in the discussion. A good way to do that is by creating the first post once a discussion board is created. Having a first post for users to read will draw in a bigger audience that will have similar or differing ideas on the topic from the initial post, which leads to full discussions. A great way to encourage participation in a SharePoint discussion group is to enable incoming emails and include the discussion group’s email address in corporate distribution lists. This way, email conversations can be archived and threaded by subject without users having to navigate to a web-based forum. However, the content of the email messages is now public for the SharePoint audience to read and even search.
Consumption Browsing to the SharePoint site that contains the discussion board is the most straightforward way to use the discussion group. But, if you spend most of your time working with email, you may find it easier to work with a discussion board by using Outlook 2007. Setting up Outlook is an easy task initiated from the Actions drop-down list right on the discussion board. Within Action, selecting Connect to Outlook will synchronize the discussion board items with your Outlook client. The items from the discussion will be available to view in Outlook even when you are disconnected from the network hosting the SharePoint site.
313
Page 313
Schwartz
c11.tex
V3 - 12/26/2008
Chapter 11: Interactive Experience, Video, and Communication Once you connect a discussion board on a SharePoint site to Outlook, its contents appear in the SharePoint Lists folder in the Navigation pane. All the functionality provided from the SharePoint discussion board can be used with Outlook. Discussion board posts can be read, created, and replied to from within Outlook, just like you were on the SharePoint site. Items from other mail folders can be dragged and dropped to the discussion board. Using the Outlook connection to SharePoint has some powerful features, but you can add content to the discussion board by sending email even if you did not connect the discussion board to Outlook. The only requirement is that your SharePoint site and discussion board are enabled to receive email. As mentioned, discussion boards are a great way for groups to communicate online and have the results of those communications archived. Another way to use the SharePoint discussion board is via code to post information to the discussion. A practical example would be the setup of a discussion board that listens for application exception and error postings. These posts can come from an application error-handling framework, which are posted to the discussion board based on defined filter criteria. The post can be the thread creator’s post for a help desk group to resolve. He or she can read the post from the application and rely with resolution and/or known issue work-arounds for others in the group to benefit from. The following C# example code will post to a discussion thread to a SharePoint discussion group.
using using using using using
System; System.Collections.Generic; System.Text; Microsoft.SharePoint; Microsoft.SharePoint.Utilities
namespace SharePoint.DiscussionGroup.Chapter11Sample { public class SharePointDiscussionWriter { static void Main(string[] args) { SPSite site = new SPSite("http://wssserver/SiteDirectory/Site"); using (SPWeb web = site.OpenWeb()) { SPList discussionList = web.Lists["Name for new Company product"]; SPListItemCollection listCollection = discussionList.Items; SPListItem discussion1 = SPUtility.CreateNewDiscussion(listCollection , "Discussion from code"); discussion1["Body"] = "The power is there to create discussion entries from code inside your applications."; discussion1.Update(); } } }
Discussion forums popularity is ever-increasing with the increase in social networking. Corporate use of discussion forums and other social networking features is also increasing behind the firewall. One company that is making strides in this area is Telligent (www.telligent.com). Telligent’s Community Server is a .NET-based web application that is emerging as the leader in social networking, especially blogs and forums. MySpace, with its 70 million users worldwide, recently replaced its discussion forums, selecting Telligent’s Community Server as the back-end engine. Microsoft is also looking to
314
3:16pm
Page 314
Schwartz
c11.tex
V3 - 12/26/2008
3:16pm
Chapter 11: Interactive Experience, Video, and Communication Telligent’s technology to help SharePoint evolve in the social networking space. SharePoint Web Parts are being developed to allow the feature-rich Community Server message boards to be used within SharePoint. A smaller scale project for discussion forums is obtainable on CodePlex (www.codeplex.com). The SharePoint Forums Web Part is a free, open source, single Web Part that provides a more feature-rich discussion board functionality for SharePoint and WSS-based sites.
Embedded Chat Chat is a real-time conversation between two or more people. The messages are sent, received, and expected to be responded to in real time. Chats can be persisted and saved for later reference, or they can be gone as fast as they came in. Oftentimes, chat is used to ask others a quick question about a particular situation where the answer just can’t be found anyplace else or when a user is lost on a web site. This can be anything from an interview to a lost visitor. When a user is lost on a site, it’s probably because he or she isn’t paying attention, or the site is just really difficult to understand. This will drive up calls to the help desk, or the site will simply lose a visitor. Affording the visitor with the opportunity to instantly chat with someone about something is a convenient way to keep from losing that visitor. Offering a simple ‘‘chat now’’ link on the site lets the user know there is help available if he or she needs it. This can be comforting, but it requires the visitor to initiate the conversation. A chat box can be displayed more abruptly if a user has navigated to two or three submenu items but still hasn’t made a commitment or conversation. This is similar to a clerk noticing a shopper is puzzled and asking if he or she can be of assistance. Just like in the real world, this can be annoying. It pays to carefully plan the visitor patterns the system is using to trigger chat services. The online shopping experience is now familiar to most of the online population. Making this experience as personal as possible is a sound marketing decision. Getting additional information or answers to questions on an online product or service can be a time-consuming task. With so much competition on the Internet today, the companies who can answer those questions the quickest usually get the business. Integrating available telecommunications with online shopping is another business solution to make the online shopping experience personal. Adding the ability for a customer support representative to call the shopper, if the shopper requests help, is an easy way to use existing technology. A simple entry form allowing a shopper to enter his or her number and get a call once a support representative is available allows for a discussion with a real person without having to wait on hold until one is available. Live operator web applications can allow your company to put a personal, interactive face on your web site. End users can request a chat session with an individual who can be online anywhere in the world. As the customer enters questions and information, a back-end search service can be locating responses for an indexed SharePoint site, making it available for the operator to personalize or send back directly to the customer. The interactivity of this solution also has an added benefit. Information supplied by the user can be directly entered into a SharePoint list for marketing evaluation. What are my customers interested in? What is the buzz around a new product? What information are we lacking on the web site that required a chat request? Live chat saves money by reducing the need for employees on support numbers, and customers can get their issues resolved quickly. Support representatives can be doing other tasks as needed since their time is used more efficiently. Systems allow representatives to send prewritten responses to frequently asked questions and direct the customer’s browser to pages containing relevant information.
315
Page 315
Schwartz
c11.tex
V3 - 12/26/2008
Chapter 11: Interactive Experience, Video, and Communication Besides offering live help to users, chat is commonly used for interviews. In this situation, a few people have the ability to communicate with everyone where most other attendees’ messages are silent or not visible to one another. Celebrities are everywhere. If you have a chat with your community’s superhero, people will come in droves. Or so you’d hope. Not everyone can be available at the same time as the chat is scheduled. A common thing to do is save the chat in the form of simple HTML file and display for all those who didn’t actually get to participate. Saving chats for later reference can be valuable while others are raw data waiting to be crushed down into metrics. Every company is trying to wisely spend its money. By reviewing chat logs, it becomes clear where people are getting lost or needing a helping hand. These kinds of communication issues can sometimes be easily solved or require extensive rework of the web site. In any case, the chat will help an organization or individual acquire the necessary instantaneous information.
Community Chat Offerings Chat in SharePoint is such a compelling concept that Microsoft has released an open source, embedded chat implementation called Chatterbox as part of the Community Kit for SharePoint. A great feature of the Chatterbox Web Part is that the chat is persistent with the actual communications being saved to a list and searchable. An example of Chatterbox can be seen in Figure 11-7. Chatterbox is now also available in beta form as an ASP.Net AJAX implementation, bringing Web 2.0 into this Enterprise 2.0 concept. The Community Kit for SharePoint can be found on CodePlex at www.codeplex.com/cks. Links to the AJAX and normal versions of Chatterbox can be found in the appendix.
Figure 11-7
316
3:16pm
Page 316
Schwartz
c11.tex
V3 - 12/26/2008
3:16pm
Chapter 11: Interactive Experience, Video, and Communication
Photo Stitching It has been said that a picture is worth a thousand words. Then two must tell a better story, especially if they are related. Imagine taking a picture of the Grand Canyon. It’s a big place. Oftentimes, photos are taken in individual segments and laid side by side in an attempt to communicate just how vast the Grand Canyon is. Photo stitching is taking several images and putting them together. A simple concept provides a new interactive medium. Even in times before the modern PC, film processing companies offered services to take these types of images and stitch them together in one big, panoramic picture. It was generally a pretty simple task to take two to three pictures and put them together as one long photo. Stitching together many more photos than that required larger photographic paper. As the paper size increased, the manageability went down. The PC came along and changed everything.
Digital Photo Stitching Technology Images stitched together and stored on a PC have more contextual information. A user can effectively look to the left or the right and up or down and virtually encompass an entire object. The person viewing the application now has more information about the photograph. He or she can clearly see what is around the object of interest. Unlike a video, the user is in control of what he or she views, navigating the stitched images at free will as well as stopping and looking as long or as little as he or she likes.
IPIX Realtors have been using photo stitching to communicate to prospective buyers for a relatively long time. Companies like IPIX have developed industry-specific software for photographers or even realtors to take photographs and stitch together images. Prospective buyers would then download a viewer to be able to view and manipulate the stitched images. A photographer or anyone able to use a camera can stand in the center of the room and take pictures around the room. After all of the images have been taken, they are processed through software. Then the user publishes the results. Once published, users need to have a special viewer to participate in the interactive photo. Now that the prospective buyer can immerse himself or herself in imagery and control the viewing process, spending as much time as needed in areas that interest them. More often than not, homes are purchased to house more than one occupant at a time. These potential occupants are usually interested in completely different things. One might be interested in the garage and the den where the other might be interested in the kitchen and entertaining areas. With this kind of interactive media, shoppers can view areas that are of interest to them first rather than sit through an entire video.
Photosynth Microsoft Research has released Photosynth, a web-based photo stitching application very similar to IPIX with two exceptions being automatic stitching capabilities and a viewer based on a commonly available platform, Silverlight. Photosynth is rapidly catching on by providing people a new medium to share their experiences. In today’s age, cameras are able to hold a lot of photos, and it’s somewhat easy to click off a couple hundred images and put them on a computer. What’s hard is tagging all of the images and putting them
317
Page 317
Schwartz
c11.tex
V3 - 12/26/2008
Chapter 11: Interactive Experience, Video, and Communication into a proper sequence to tell a story. Photosynth takes all of the images. A user-defined starting image looks at the textures in the images, matches up the similar textures, and attempts stitch or overlay the images. The images aren’t seamless. It’s very obvious that you are looking at one shot while the other shots have a much lower opacity and appear ghostly. The user can click on any one of these ghostly overlays in order to make that photo the center of attention. In addition, there is functionality where a user can move forward or aft or move up, down, left, or right. This new kind of interface is made possible by Silverlight, which was discussed in more detail in chapter 1. When it comes to presentation, there are some obvious differences between Photosynth and other image stitching technologies. The most noticeable is that the images aren’t blended as smoothly. This may seem like a problem until it’s actually experienced. Because the image stitching process doesn’t have human interaction, it makes it much easier to use. Now anyone with a stack of photos can upload them, and anyone can have a 3-D experience from that stack of photos. This ease of use is causing this technology to catch on more, and more people are uploading their photos to share their experiences.
Business Uses for Photo Stitching These photos can tell a story about anything from a claim investigated by an insurance adjuster to a product being sold by someone on eBay to a family gathering. Because of the ease of use and common viewing platform brought by Photosynth, this kind of medium will become more and more pervasive. To get a clearer idea of just how useful this medium can be, the aforementioned scenarios will be used as practical examples. A claims adjustor takes many photos. He or she usually take photos of the damaged property as well as of the surrounding areas. This goes back to context. Anyone who is interested can see what the intersection looks like and what the damages to the vehicles looks like. It may not solve all of the claims problems in the world, but it will certainly provide a little more information about that particular accident to anyone who wants to walk through the accident scene. Their need for a scenario or description is reduced because the photos now tell a more complete story as all of the angles are covered in great detail. Online research is huge, and now there is a front and back view of just about everything that’s ever been made. With this new medium, anyone can take a picture of a product and provide distant as well as very close-up views of the images. People interested in the product can get as close as they like, look all around the item, and always know at what angle they are looking as it relates to the last photo they just saw. This very intuitive process allows viewers to obtain more and more information about the things they are looking at and simultaneously become more interested in it or discover on their own that this isn’t exactly what they are looking for. This kind of self-education reduces returns and allows users to buy the right product the first time. Some events seldom happen in people’s lives, like marriages, birthdays, and vacations. These events generate many photos to capture the moment. These events might have several individual moments, and they are used to create several photo stitchings to create an album. Now people who couldn’t attend or are just plain interested can go see the experience nearly first-hand in a very personal way. Self-directed and self-guided users will navigate around in a way that is interesting to them, providing a very rich and personal experience. Though photo stitching is not new, it has become easier to create and view. As a result, people will be more apt to communicate this way in the future. Photo stitching will change the way people will capture and share photos. The social aspects are enormous, and the competitive advantage that it brings to businesses of all sizes is immeasurable.
318
3:16pm
Page 318
Schwartz
c11.tex
V3 - 12/26/2008
3:16pm
Chapter 11: Interactive Experience, Video, and Communication
Videos In a corporate portal, online videos can play an important role in communicating quickly and effectively. A three-minute video can often convey a level of detail that is impossible to replicate in printed form. In the past, companies would create hundreds of videotapes and send them via express mail to remote offices all over the world. Company meetings were recorded and distributed because it allowed presenters to convey crucial information without the expense of travel. Videos let the viewer control the time and place that the information is viewed. Video has proven itself to be one of the best ways for companies to communicate corporate strategies and achievements to employees. It is also beneficial to train employees on specific job functions and company policies and procedures. Creation of a company video was often outsourced to a video production company that has the costly hardware and software required to produce a professional video. The preproduction work and time caused a substantial monetary investment. Today, the hardware and software cost to produce a quality video has radically dropped. With the popularity of personal video production, home video cameras, webcams, and PDAs, employees are becoming increasingly knowledgeable and proficient at producing video media. Software tools such as TechSmith’s Camtasia and the free CommunityClips from Microsoft OfficeLabs (http://communityclips.officelabs.com) bring the video production environment to the desktop. Video within the social networking scene has become a phenomenon. With YouTube’s start in 2005, this video viewing and sharing site has hosted more that 80 million videos. Thanks to the popularity of video posting online, YouTube is one of the most visited web sites of all time. With the large number of videos available online, finding relevant and quality content can be difficult. This is why video content tagging is an important piece of the equation. As you saw from chapter 3, the use of a content tagging and rating system helps organizations promote and evaluate their current content as well as generate new content of value to the community.
Videos Have Business Value Recording videos and placing them online in always available repositories can have a significant business impact. Consider the example of a message from a company CEO to a geographically distributed workforce. Without the disruption of a conference or videoconference call, the CEO is able to rally the troops and invigorate the workforce with nearly the same level of impact a personal appearance would have. However, the CEO doesn’t have to travel, and neither do the geographically distant employees. Instead, the CEO can practice and perfect the message, and the employees can review the content on demand. In this scenario, the real value is in the money directly saved from not incurring travel costs and revenue not lost due to the kind of disruption a company meeting would cause. Another example of how videos placed in a SharePoint library can bring value to a company is when videos are made to train users on a product. Consider a company that implements a new SharePoint portal for employees who have never seen SharePoint before. How can these users learn about the core capabilities of SharePoint, such as sortable and filterable document libraries and lists, much less learn about custom capabilities that may exist in any corporate SharePoint portal? What if a library of short, targeted videos were created to introduce the viewers to the features of the SharePoint portal? Short videos have the benefit of being bite-sized, easily digestible pieces of content. It is far easier to remember that the columns of a list can be dynamically sorted and filtered when a three- to five-minute video shows users how to do so as opposed to an hour-long video that attempts to show all of the features in one long segment. The short videos can be sorted and rewatched according to the user’s needs. The
319
Page 319
Schwartz
c11.tex
V3 - 12/26/2008
Chapter 11: Interactive Experience, Video, and Communication business value in this scenario is the ability to train users and provide them with a new self-help system that can augment traditional training and documentation. A third scenario where videos bring tremendous value to a business is when videos expose previously hidden parts of the organization to other areas that are best positioned to take advantage. Consider a product company that has several distinct products. If one of the production lines makes improvements to the product or introduces a new product, a great way to share that information with the sales team is to show them a video of the new product. This can be especially helpful if the new product is not part of the core lines of business. Consider a manufacturer of printers. Imagine the manufacturing team creates a tool that can augment the functionality of printers without directly impacting the printer itself, such as a vibration-reducing stand that also allows for paper storage under the printer. A product demonstration video would be an excellent way to inform the sales team that the stand should be made available to purchasers of the printer and the benefits of having such a stand. Combine this product demo video concept with the techniques introduced in the chapter on podcasting (chapter 8), and the result is a sales team that is always up-to-date with the latest information, that is, information that may have otherwise been lost in the shuffle.
Video Techniques SharePoint has the capability to store any type of file-based content in its document libraries, including a wide variety of video formats. However, Microsoft recommends that files larger than 50 megabytes in size be stored somewhere other than SharePoint for performance reasons. File system-based storage is possible, as is the use of streaming media servers such as the Akamai Flash Streaming Service. Another option for video storage is the use of public repositories such as YouTube and SoapBox. Placing content on external streaming servers enables users to embed the hosted videos in Content Editor Web Parts without concern for bloating internal SharePoint databases. As videos become available in SharePoint, consider implementing a content tagging, commenting, and rating system, such as the ones available on Netflix and YouTube. This improves the chances that users will watch the video and be able to find it again later as the quantity of videos increases. For content tagging and rating strategies, turn to chapter 3.
Social Communication It is somewhat arbitrary to cut a slice out of the entirely of social computing and call it communication because, of course, nearly everything about social computing is ultimately about communication. This section describes Web 2.0 communication features that are interactive and personal. Web 2.0 provides new and revolutionary approaches to communication and, with that, new opportunities for companies and organizations to exploit. This section of the book covers social computing communication features that are more real-time in nature. These include:
320
T
Micro-blogging (such as Twitter)
T
Targeting content
T
Key performance indicators
3:16pm
Page 320
Schwartz
c11.tex
V3 - 12/26/2008
3:16pm
Chapter 11: Interactive Experience, Video, and Communication As this section shows, Web 2.0 provides, yet again, a dizzying array of options that enable people to connect in a wide variety of ways. Companies benefit from social computingclearpage}}?> communication tools in much the same way that any other social computing technology bit provides. They provide new ways for employees to share and obtain information as well as plug into the community. As these tools gain wider acceptance within an organization, the community binds more closely together, streamlines communication, and aligns everyone involved more closely with the goals of the organization.
Micro-blogging Micro-blogging is one of the more recent developments on the social computing scene. Micro-blogging is a cross between blogging (chapter 5) and instant messaging (chapter 10). Today, the best example of micro-blogging is offered by Twitter (www.twitter.com). Although Twitter first came to market in March 2006, it really came into its own during the summer of 2008. After a rocky adjustment period (resulting from a dramatic increase in users and adoption), Twitter seems to have found itself a comfortable place in the Web 2.0 pantheon. As mentioned, Twitter is a cross between IM and blogging. Twitter is free, and users sign up at Twitter’s web site, create a profile, and begin twittering. A tweet is a message that one wants to share with other twitter users. Twitter resembles a blog in one sense because readers must follow other twitterers. When the twitterer posts an entry to twitter, all of that user’s followers see the message. Individual tweets, like blogs, persist on a server for all to view and search. Twitter is also like instant messaging. Individual tweets may only be 140 characters in length, hence micro-blogging. Although most instant message clients allow very lengthy messages, as a practical matter, users normally enter short, focused messages. Twitter enforces this rule. Twitter’s web site looks like Figure 11-8:
Figure 11-8
321
Page 321
Schwartz
c11.tex
V3 - 12/26/2008
Chapter 11: Interactive Experience, Video, and Communication Who Uses Micro-blogging and Why? Micro-blogging meets several different kinds of community needs: T
Marketing: CNN (www.cnn.com), Woot (http://woot.com), and others use micro-blogging as another method to advertise. CNN posts breaking news alerts via Twitter. Woot.com, an online retailer, uses Twitter to announce sales.
T
Syndicating blogs: Micro-blogging offers yet another way to implement syndication. Chapter 6 describes traditional syndication in greater detail. Micro-blogging offers another approach by posting an entry every time the posts a new blog entry. See Figure 11-9, for example, http://twitter.com/SharePointMVPs.
Figure 11-9 T
Seeking help: Over time, communities naturally coalesce around areas of interest, and SharePoint is no different. Individuals often post a question, the answer to which they want an immediate answer. They post the question on Twitter, and everyone in the community sees the question. They can respond.
T
Providing personal connections: Every large community has its superstars. In the SharePoint world, one of these stars is Lawrence Liu, who wrote the foreword to this book. Many SharePoint people meet Lawrence at conferences or user groups, but relatively few work with him on a daily basis. Micro-blogging offers a way to see some insight into what Lawrence is doing on a daily basis.
These represent some of the uses of micro-blogging, and they are obviously focused entirely on communication.
Potential Pitfalls Micro-blogging offers new and very different opportunities for building and strengthening communities. At the same time, it offers one potential drawback that can best be summarized with an old joke. ‘‘That’s more information than I wanted to know.’’ Micro-blogging, particularly when using a publicly available tool such as Twitter, is generally unmoderated. There is nothing to stop individual community members from talking about personal matters, offering political opinions, discussing personal medical conditions, and so forth. These kinds of conversations often have no place in a business context.
Micro-blogging and SharePoint Out of the box, SharePoint does not directly offer micro-blogging. As discussed throughout the book, the SharePoint platform itself offers building blocks. One such building block, the Content Editor Web
322
3:16pm
Page 322
Schwartz
c11.tex
V3 - 12/26/2008
3:16pm
Chapter 11: Interactive Experience, Video, and Communication Part (CEWP) enables integration with Twitter from within SharePoint. In addition, the greater SharePoint community, as it does in so many respects, has stepped forward with solutions to fit this space, Persistent Chat.
Twitter Integration Site designers use the CEWP to directly enter HTML onto a page in SharePoint. Designers often use the WYSWIG interface, but it’s also possible to enter HTML tags directly. At the same time, Twitter provides an open API. This means that developers can access Twitter programmatically from a variety of clients. Combining these two facts, a site designer can add a CEWP to a page and then insert the following HTML: Twitter Updates
When coded as shown above, the CEWP shows recent tweets from sharepointmvps, as in Figure 11-10.
Figure 11-10
Targeting Content Any organization consists of multiple communities. The organization as a whole is one community. However, there will be many additional communities focused on different aspects of the organization’s mission. These may be directly aligned with the organization’s core business purpose, such as department-level communities. These might include IT, purchasing, human resources, and so forth. They may be aligned around more concepts, such as ‘‘manufacturing best practices.’’ A best practices community of this sort would include members from a number of different departments. Its mis-
323
Page 323
Schwartz
c11.tex
V3 - 12/26/2008
Chapter 11: Interactive Experience, Video, and Communication sion would be to provide information about manufacturing best practices to the rest of the organization. Another way to look at this is that a given community will consist of information producers and consumers. As communities collaborate together, they produce and save content in SharePoint. Over time, these documents, lists, tasks, sites, and so forth litter the SharePoint landscape, so to speak. As a result, the community’s ability to collaborate well degrades. In addition, SharePoint provides a solution. MOSS provides explicit support for communities through the use of audiences and audience targeting. (Note that these features are not available in WSS.) A MOSS audience is a way to define a community at a technical level. MOSS provides information tailored to a given audience/community via audience targeting. Follow these steps to enable audience targeting in MOSS:
1. 2. 3.
Define audiences. Target content to one or more audiences. Use an audience-aware Web Part to target content.
Defining Communities (Audiences) T
Administrators create audiences in several different ways in SharePoint/MS Exchange email distribution group
T
Active directory group
T
SharePoint group
As can be seen, there are several different ways to relate a real community of users to an easily managed grouping within SharePoint.
Targeting Content Once an audience has been defined, system administrators and site designers/managers can use it to target content. One of the simplest approaches is to target entire Web Parts. Most SharePoint Web Parts can be targeted to an audience. To do so, edit the properties of the Web Part, specifying which audiences should see this Web Part. From there, expand the Advanced section, and enter one or more defined audiences in the Target Audiences field, as shown in Figure 11-11:
Figure 11-11
324
3:16pm
Page 324
Schwartz
c11.tex
V3 - 12/26/2008
3:16pm
Chapter 11: Interactive Experience, Video, and Communication Targeting entire Web Parts is useful, but crude. Often, a community would be interested in a specific set of documents or list items in a SharePoint site, not entire web sites. SharePoint’s audience targeting feature enables a company to show those individual documents and list items based on a given user’s audience membership at run time. To enable this feature, the following must be done:
1. 2.
Site administrators enable audience targeting via a library’s or list’s settings.
3.
Use an audience-aware Web Part to query for audience-targeted content. This last step confuses many first-time administrators, particularly in light of the first two steps. Contrary to common sense, enabling audience targeting and specifying a target audience for a given list item or document does not affect how the list or library renders content. Worse, it is not possible to create an audience-aware view. Site administrators typically use the Content Query Web Part to query for audience-targeted content.
Content authors specify an audience when adding individual pieces of content to the libraries and/or lists.
These steps are best explained by way of example. Consider a calendar of events. Different departments are jointly working on best practices for a manufacturing process. Each department manages a calendar of events to track department-level events, some of which relate to best practices meetings and presentations and some of which relate to department-level activities of no interest to the best practices community. Ideally, a company wants to show best practices meetings and events to members of the Best Practices community, regardless of where the information has been saved. SharePoint’s audience targeting feature enables organizations to support this requirement. Follow steps one through three above:
1.
Each department adds a calendar Web Part to its site and, via the calendar part’s settings, enables audience targeting, as in Figure 11-12.
2. 3.
When adding events to the calendar, specify an audience for each event. Add a Content Query Web Part to a logical place in the SharePoint hierarchy, which searches for calendar items and filters by audience membership. One of this Web Part’s great strengths here is that site designers simply check off a box and it automatically determines at run time whether the current user belongs to any of the targeted audiences.
Figure 11-12
325
Page 325
Schwartz
c11.tex
V3 - 12/26/2008
Chapter 11: Interactive Experience, Video, and Communication
Key Performance Indicators A key performance indicator (KPI) is measurement of progress toward a stated goal. It answer’s questions such as, ‘‘How are we doing in closing open service requests with above 90 percent being great and below 60 percent being troublesome?’’ Goals can be positive (increased sales) or avoiding a negative (complaints). KPIs do not fit into the more traditional sense of communication because we normally think of communication as being from human to human. However, KPIs can communicate information in powerful way, presenting targeted information to a community and helping to bind the community together with a common purpose. As a given community works to achieve its common goals, KPIs provide immediate feedback on the efficacy of the community’s efforts. SharePoint renders a KPI, as shown in Figure 11-13:
Figure 11-13 Figure 11-13 shows a KPI that specifies a Goal of ten defects or fewer per week. There are, in fact, 15 defects this week so far. Therefore, the status is shown as a caution sign, that is, a yellow/amber caution indicator when rendered on a color screen. Site designers specify the values for the status, as shown here in Figure 11-14:
Figure 11-14
Summar y Researching the history of interactive media shows how far we have come. Looking at the recent sites on the Web shows where we are going with rich media content. The U.S. version of the Beijing Olympics 2008 site, powered by Silverlight, is a great example of where interactive media is heading. The site mixed streaming video with nicely organized content relating to the video. The Olympics content could easily be searched by sport, athlete, country, and so forth and viewed in real time or retrieved from archives. Content was dynamically placed along with the video and interactive discussion forums, allowing for
326
3:16pm
Page 326
Schwartz
c11.tex
V3 - 12/26/2008
3:16pm
Chapter 11: Interactive Experience, Video, and Communication interaction with others watching the presentation. Visitors to the site were encouraged to participate in a variety of interactive forums and content discussions. This chapter has been a roundup of complementary social applications, each of which may be used to bring real business value to an enterprise. Social computing concepts in this chapter and previous ones each expose a popular and successful concept available on the Internet today, but it by no means represents a complete survey of all social computing concepts available. Find the concepts that fit each organization and work with those concepts. Key takeaways from this chapter include: T
Social computing is limited only by the imagination. All it takes is a primary focus on the user of an application and how that user can connect with or communicate with other application users.
T
Social computing concepts are frequently distinguished by the level of interactivity available to users and information consumers. Rather than flat pages with announcements, social applications tend to invite discussion and comment.
If users cannot find the conversations, links, or comments they are looking for, how can they participate in the community? The final chapter covers search, a core technology required for any application that generates data on the scale of a social computing application. Because of its critical importance, the search chapter was saved for last, the pinch hitter in the lineup of social computing concepts.
327
Page 327
Schwartz
c11.tex
V3 - 12/26/2008
3:16pm
Page 328
Schwartz
c12.tex
V3 - 12/26/2008
3:24pm
Search Few things are more important to a socially oriented application than searching. Search inherently relies upon a community of content producers. The community creates content (the corpus), and information consumers search for content. The community may be large (the entire Internet) or much smaller (a department within a company). Search provides the link between content producers and information consumers. At the root of any effective search environment lays a set of established standards describing the corpus. These standards include rules about the type of content, how the content is secured, how the content is tagged (chapter 3), authors, and other factors that vary from organization to organization. Taken as whole, these standards comprise a company’s information architecture (IA). The IA may be formal (via content types) or an informal folksonomy. In most cases, the IA is a combination of both. SharePoint search takes advantage of these standards to operate. When well-tuned and with ongoing care and feeding, SharePoint Search can produce highly relevant results. One of any search system’s primary objectives is to produce highly relevant results when asked to perform a query. This chapter discusses relevancy in great detail. Social search extends traditional keyword-style search (such as Google) by allowing the community to influence a search engine’s ranking algorithm. Engines enable this via configuration (typically performed by administrators) or direct feedback. Direct feedback is an empowering function. Users execute a query, evaluate the results, and then inform the engine. This human judgment feeds back into the engine, hopefully producing better results for future queries. The size of the corpus has a lot to do with the ability for an algorithm to return relevant results. Monster.com, a job site search engine, is a highly specialized corpus. Given its narrow focus on job-related content with r´esum´es and job openings, it is possible to identify and classify nearly every possible searchable query term, for example, name, skills, previous employers, education, and so forth. On the other hand, a tool like SharePoint has a much harder search problem to solve. SharePoint’s corpus is much larger.
Page 329
Schwartz c12.tex
V3 - 12/26/2008
Chapter 12: Search This chapter covers SharePoint’s search capabilities in a social computing context. It discusses: T
Key terms in the search space, such as relevancy and ranking; defining social search
T
Algorithmic search versus social search
T
Search architecture
T
SharePoint’s core search features like architecture, configuration options, end user and developer functions).
T
People search
The chapter describes a business scenario and solution using SharePoint Search to create an employee contacts list. It ends with a brief description of third-party contributions to the social search space and a review.
What Is Social Search? Like so many other Web 2.0 concepts, social search is an imprecise and evolving term. Today, it covers several different types of search solutions. Broadly speaking, social search is an umbrella term covering two overall kinds of search: T
Searching explicitly social content such as user profiles
T
Leveraging recorded human judgment when executing search queries
Searching is well-known to anyone who uses the Internet for more than five minutes. Type a search term, click a button, and review the results. This kind of traditional search has been around for a long while now and has been internalized by IT professionals and consumers alike. Web 2.0 and social computing introduces a new concept to the world, social search. ‘‘Leveraging recorded human judgment’’ is a perfectly concise way to describe social search. But what does that mean in practice?
Social Search Examples The Internet abounds with examples of social search. These include all of the following:
330
T
Shared bookmarks: Tools like Delicious.com allow users to browse to a site and use a browser plug-in to tag it. Delicious keeps track of who tagged a given site and provides a search capability around it. If one site is tagged 100 times while another site on the same topic is tagged ten times, users can infer that one of those is more useful than the other.
T
Community-driven tag clouds: Discussed heavily in chapter 3, tag clouds represent a given community’s own folksonomy, providing a focused, socially driven search interface. The community (society) defines the taxonomy, and tag cloud technology enables users to leverage that wisdom to execute socially based search queries.
T
Google page rank: As Google crawls the public Internet, it analyzes links from site to site. A given page’s rank reflects the number of links to that page from other sites. The more often site’s owner links to a particular page, the higher that page’s rank. The idea behind this is that, if
3:24pm
Page 330
Schwartz
c12.tex
V3 - 12/26/2008
3:24pm
Chapter 12: Search many site owners link to a particular page, that page must be valuable. From this, Google infers a human judgment and uses it in its search process. T
Amazon.com: Amazon uses social information to assist with search. Every time someone orders a book or searches for one of its many products, Amazon tacks on additional search results. By analyzing its own search and order history, Amazon is able to take into account human judgment to deliver more relevant results.
T
Angie’s List: Angie’s List (www.angieslist.com) is a paid search solution. Consumers must purchase a membership in order to use the engine. Angie’s List employees manage Angie’s List’s corpus. Experts on the subject, they make qualitative judgments about individual contractors and make those judgments available to its subscriber base. Paid search solutions can be very valuable, particularly when the target audience trusts the judgment of the people behind it.
T
Digg: Digg.com operates much the same way as Google’s page rank except it turns the tables. Instead of Digg analyzing web sites and looking for links between content, it provides a method for the public to directly stamp their approval on a particular web page. As more and more users ‘‘digg’’ a site, the more relevant it becomes, as can be seen in Figure 12-1. Once again, human judgment directly influences search results and relevance.
Figure 12-1 The examples provide a small but representative sample of the types of social search applications available today. Social search is becoming pervasive, even when many people do not realize this is the case. Of course, this book is about social search with SharePoint, and this chapter will not disappoint. Before diving into SharePoint’s approach to social search, it is important to discuss important search fundamentals. Later, the chapter builds upon that information to describe SharePoint’s contribution to the social search space.
331
Page 331
Schwartz c12.tex
V3 - 12/26/2008
Chapter 12: Search
Search Fundamentals In the computer science world, search is what they call a big animal. It has a lot of moving parts. This section dives into the key fundamental pieces of a search so the rest of the chapter can relate them back to SharePoint’s OOB search capability, particularly in a social sense. Specifically, this section discusses: T
Key search concepts such as relevance and ranking
T
The difference between algorithmic versus social search
Relevance and Ranking End users have a very narrow view of search. An end user types in a search term, executes the search, and reviews the result. Search engines always endeavor to return results, which are both relevant and properly ranked. End users intuitively understand that the results at the top of the page should be exactly or very close to what they wanted. They understand that results near the bottom of the page or worse (on page two or higher) are less likely to be the result they want. These concepts, relevancy and ranking, are central to understanding search: T
Relevancy measures the accuracy of a particular search query’s result set.
T
Ranking is a process by which a search engine decides the order in which it presents relevant results to the end user.
The fundamental goal of every search engine on the planet is to return highly relevant search results ranked from highest (most relevant) to lowest (least relevant). Although relevancy and ranking combine together in an intimate manner, it is important to realize that they are, in fact, different. A given search request may return thousands of relevant results. If you search for the word tree, Google claims it knows of more than 500 million possible results. Google analyzes those 500 million results and selects ten to show on the first page. Google and other search engines perform a lot of work in order to locate relevant results and then rank them. Social search modifies this process further as the next sections show.
Algorithmic Search versus Social Search At the root of every real-world search system lays a complex algorithm. An algorithm is simply a series of steps computers follow to perform a calculation. Computer scientists design search algorithms to efficiently query a corpus, focusing on producing appropriately ranked relevant results. For most of the time, since the advent of Internet search engines (where Google is the most prominent today), computer scientists have focused on purely algorithmic search. With a purely algorithmic approach, the search engine performs two functions: building indexes and providing results. It builds an index by scanning the corpus on a regular basis, analyzes every document it finds, and indexes the content. End users, via a useful interface, run search queries against the corpus, and the engine uses its algorithm to produce well-ranked relevant results. Figure 12-2 shows this process:
1. 2.
332
User submits a query to the search engine. The engine looks for relevant results from the index.
3:24pm
Page 332
Schwartz
c12.tex
V3 - 12/26/2008
3:24pm
Chapter 12: Search 3. 4.
The search engine retrieves the results from the corpus. The client application displays those results, ranked appropriately, to the user.
Corpus
3
Engine
1
2
Index
4
User
Figure 12-2 Algorithmic engines can be extremely clever. However, they are at the mercy of their algorithm. The engine is coded with a set of rules, and that is all it knows. Even the most brilliantly written search algorithms suffer from certain limitations. Since the rules are embedded in the engine itself as machine code, database definitions, and so forth, it is difficult to change. Search design engineers consider dozens and hundreds of potential search scenarios with often competing relevancy and ranking objectives. These engineers do their best to craft a flexible engine that resolves these conflicts. However, this is a very difficult problem to solve in the general case. Search vendors and companies using search products address these issues in different ways. Some try to create very flexible, general-purpose solutions. Google represents one of the best general-purpose search engines today. Google’s corpus is the entire Internet. It’s harder to get larger than that. Another approach is to narrow the corpus’ knowledge domain by types of documents, not the number of documents. Monster.com has many job descriptions and r´esum´es. However, it does not host health and safety instructions for manufacturing facilities. By narrowing the knowledge domain, the search engine can be tuned and made to be very precise. For example, if someone searches for ‘‘NET experience’’ in Monster.com’s r´esum´e database, he or she can be sure he or she will not find information on how to repair fishing nets. Other engines, such as FAST (www.fastsearch.com) open up the engine through configuration. FAST provides a dizzying array of configuration options. FAST even allows its customers to develop custom components that supplement or even override the engine’s core functionality. Companies, vendors and end users alike, use these techniques to great effect. Some search engines are more flexible than others. Some knowledge domains are more limited than others are. However, no matter how clever the algorithm, specialized the corpus, or extensible the engine, search algorithms cannot replace human judgment. This is where social search comes into play.
333
Page 333
Schwartz
c12.tex
V3 - 12/26/2008
Chapter 12: Search Social search extends the purely algorithmic solution. This can happen in a couple of ways: T
Incorporate human judgment via configuration (typically in response to real-world analysis of prior queries) or direct feedback when users rate search results.
T
Leverage known social relationships, usually between content producers and information consumers. For example, treat a direct supervisor’s policy document as being more relevant than that of a different department manager.
Figure 12-3 shows one method to accomplish this by allowing users to provide feedback on the results. The search engine takes that feedback, updates its indexes, and uses it to provide more relevant results with better ranking.
Corpus
3
Engine
1
Index
2
4 5 User
Figure 12-3 The diagram reflects the fact that a social search engine is still, at its core, an algorithmic search solution. Step five shows that the user receives results and then annotates the results. This may be as simple as giving the result a one- to five-star rating. It may involve a more complex rating process. This information (human judgment) feeds directly back to the search engine’s index. Future queries take that judgment into account for ranking and relevancy purposes. In addition to using clever math to produce results, social search can also take human judgment into account as well. That is a powerful difference. When a user executes a search query, the engine looks at its index, does some math, and typically assigns a numeric value to a set of results it believes are relevant. A socially aware search engine also takes prior users’ quality judgments into account on the results. If users rate a particular document highly, the engine is more likely to show that document in results and rank it highly. If users give the thumbs-down sign on a document, the engine will lower that document’s ranking or drop it from the result set entirely. Like most everything else, there is a middle ground between a purely algorithmic search engine and a more advanced social search solution with end-user feedback. An algorithmic engine can consider social
334
3:24pm
Page 334
Schwartz
c12.tex
V3 - 12/26/2008
3:24pm
Chapter 12: Search data when it filters for relevant results and separately decides how to rank those results. A given engine’s ability to do this job well depends, in large part, on the corpus and the engine’s ability to detect social relationships amongst the documents it indexes. SharePoint 2007 takes this approach.
Social Search Weaknesses Social search is an exciting new approach to search, but, like anything else, there are certain issues to overcome. Each user brings a different set of experiences, expectations, and levels of expertise with them when they execute a search. This influences how they provide feedback to a search engine. One set of search results may strongly appeal to one user while not appealing to another. One of these users may rate a particular result very highly while the other could rate it poorly. If this pattern persists, the average ratings will tend to converge to a middle-of-the-road result, which is not helpful to anyone. As with content tagging, social search engines that allow direct feedback are susceptible to Sybil attacks, which happens when a user creates multiple electronic personalities and uses them to rate content, artificially pushing its rated value up or down. Lastly, people bring a wide variety of biases to work. A given user may have a strong dislike for a particular author or source of content. It is easy to see how a social search engine focused on political content would affect users’ ranking of content. It would obviously depend on the individual’s stand on any given political issue. Social search solutions, especially human-moderated solutions like Angie’s List, are very resource-intensive to maintain. Each and every item in the knowledge domain must be evaluated by another person, and not just any person. It must be someone trained to evaluate and rate the content according to a set of standards. This can be ameliorated by reducing the scope of the knowledge domain. Angie’s List accomplishes that by restricting its knowledge domain to local contractors in the New York City area. That is very useful for people looking for that kind of information, but not helpful to anyone else. Having described fundamental search principles, it is now time to dive into SharePoint itself.
SharePoint Search Fundamentals SharePoint’s search engine is complex and highly configurable. The full breadth and width of the engine is beyond the scope of this book. Indeed, at least one book focuses entirely on SharePoint Search. That said, it is important and useful to describe the engine’s main components and how search operates in order to take advantage of its features and implement social features. Three major functionality groups complement each other and, together, form SharePoint’s search solution. These include SharePoint’s overall search architecture as well as core application functionality for administrators, end users, and developers. Organizations leverage search using the third major functionality group, queries.
SharePoint Search Architecture SharePoint Search lives within a farm, which consists of a number of physical or virtual servers. Each of these servers fills one or more roles. Farms can be very complex, and search is one reason why that
335
Page 335
Schwartz
c12.tex
V3 - 12/26/2008
Chapter 12: Search would happen. SharePoint Search is highly scalable by both scaling up and scaling out. Scaling up means to increase the processing power of a specific server in the farm; scaling out means to add additional servers to the farm to increase the farm’s overall processing power. It is beyond the scope of this book (and therefore not helpful) to describe SharePoint’s physical architecture. However, it is important to realize that search can be scaled up and out to meet most any organization’s requirements. SharePoint’s logical architecture, shown in Figure 12-4, describes search’s major functional components and how they relate to each other:
Content Source: File Shares
Content Source: User Profiles
Content Source: SharePoint Sites
Index Server
Index
Query Server Process
Query Server Process
Web Front End
Web Front End
NLB
User
Figure 12-4
336
3:24pm
Page 336
Schwartz
c12.tex
V3 - 12/26/2008
3:24pm
Chapter 12: Search The diagram depicts an indexer process that analyzes various content sources. A mature SharePoint environment includes at least two content sources: SharePoint itself and user profiles. SharePoint often indexes other content sources as well. Specifically, the diagram shows: T
User Profiles
T
SharePoint Sites
T
File Shares
Note that SharePoint is capable of indexing other content sources, including other line of business applications, databases, external web sites, and so forth. Some of these may require substantial configuration or custom programming, but the architecture supports these content sources. User profiles are pulled from an LDAP source and stored in SharePoint. (See chapter 2 for more information on user profiles.) This becomes an important database for using social data. As the indexer processes other content sources, it uses an iFilter to process individual files. iFilters understand the underlying structure and can parse individual documents. iFilters are important because they can be plugged into the system via a registration process. This allows search to handle a variety of document types, including Microsoft Office, Adobe PDF, and others. Vendors and companies use an SDK to create their own iFilters in order to support entirely new proprietary formats. The indexer process runs as a background server process. Indexers perform full crawls or incremental crawls. A full crawl accesses all the data in a content source and indexes it every time it executes. Full crawls, particularly for a large-sized corpus, may take a long time to run to completion. An incremental crawl uses a change token to index content in a content source. Increment crawls look only for changed content and will normally run more frequently and take less time to execute than a full crawl. May organizations run incremental crawls every five minutes. SharePoint Search is most fully realized in Microsoft Office SharePoint Server (MOSS). Windows SharePoint Services (WSS) Search provides much less functionality than MOSS. However, a free extension, Search Server Express (SSX) extends WSS Search and is nearly on par with MOSS. Go to Microsoft’s home for Search Server Express to learn more and download: www.microsoft.com/enterprisesearch/serverproducts/searchserverexpress/default.aspx. Organizations serious about search should use MOSS or extend WSS with SSX. Users interact with SharePoint through a Web Front End (WFE). The WFE passes user queries through to a query server that handles the actual query. The query uses both the SQL back-end database as well as a local index file to find results and pass them back to the end user for display. The query server implements security via a mechanism, security trimming. Security trimming ensures users do not see a search result for content to which they do not have access.
SharePoint Search Core Features In addition to SharePoint’s logical architecture, the product provides a number of functional components, which, taken together, provide SharePoint’s foundation for building social search. These core features
337
Page 337
Schwartz
c12.tex
V3 - 12/26/2008
Chapter 12: Search target different groups of users within an organization, including search administrators, end users, and developers. Note that this is not an exhaustive list, but is nearly comprehensive.
Search Administrators Search administrators manage and configure core SharePoint features on a day-to-day basis. Organizations allow search administrators highly privileged access to SharePoint’s administrative functions. SharePoint provides these options to administrators: T
Scopes: SharePoint allows farm and site collection administrators to cut out a narrow piece of the corpus and give that narrow piece a name. This narrow piece is called a scope. SharePoint allows users to specify a scope to use when executing a query. Search administrators create scopes by defining a series of rules that define which parts of the corpus should be included. Search configuration provides administrators two overall types of rules: include rules and exclude rules. Taken together, SharePoint allows administrators to carve out very carefully defined slices of the corpus with a very specialized search purpose.
T
Best Bets: A Best Bet is an authoritative source or set of sources of information for a search keyword. These would typically be specific sites in MOSS or even specific documents. However, they can be static sites in the company’s intranet or even public web sites of vendors, competitors, or partners. System administrators and privileged users associate these authoritative sources with a standardized list of keywords and terms common to a particular company’s corpus. Best Bets are often called search keywords or keywords. When users search using one of these defined keywords, the system shows the Best Bets alongside the standard search results. Figure 12-5 shows how a search administrator might configure a Best Bet that directs search users to an authoritative source (a customer Invoices library) when searching the term invoice or bill:
Figure 12-5
The Manage Keywords figure shows that a Best Bet includes a keyword (for which users search), a description of the authoritative source for that keyword (Invoice Library), any synonyms for
338
3:24pm
Page 338
Schwartz
c12.tex
V3 - 12/26/2008
3:24pm
Chapter 12: Search that keyword, a user to contact for information about that keyword, and an expiration date for that keyword. SharePoint uses that configuration and renders a search result, as shown in Figure 12-6:
Figure 12-6 T
Thesaurus: SharePoint provides a thesaurus capability that works in the common sense meaning of thesaurus. Search administrators define synonyms in the thesaurus. When end users search for a given term, SharePoint Search automatically expands its result as per the defined synonyms. For example, a search admin may define the word jog as being synonymous with the word run. When end users search for the word run or the word jog, SharePoint returns any result with either the word run or jog.
T
Search administrators configure the thesaurus for their organization by modifying an XML file. The thesaurus feature supports replacement and expansion. When replacement is enabled, SharePoint replaces any defined search term before executing the query. Search acts as if the user had entered the replaced term, not the submitted term. For example, assume a replacement is configured that replaces the term jog with the term run. If an end user searches for the term jog, search instead executes a query for the term run. On the other hand, expansion causes search to execute a query for both run and jog. As a result, expansion will normally return more search results than replacement.
T
Managed properties: SharePoint’s indexer process extracts and indexes both content and metadata about content. Content is straightforward. It simply refers to the unstructured text embedded in a document. For example, this book, in electronic format, consists of several hundred pages of unstructured content, including the words you are reading this very moment. Metadata, on the other hand, includes data about the document. Metadata varies from document type to document type. Common metadata includes such information as title, file size, file name, author, and date created and/or modified. The formal information infrastructure organizations create using content types (as described in chapter 3) is itself a layering of metadata on top of content.
339
Page 339
Schwartz c12.tex
V3 - 12/26/2008
Chapter 12: Search End Users As with many other areas, SharePoint empowers end users by allowing them to manage look, feel, and operation of sites. This is often done by adding, modifying, removing, and configuring Web Parts. Specifically, SharePoint provides the following to end users: T
User profiles: SharePoint maintains a profile for every user that creates a My Site. As shown in Figure 12-7, a My Site is a special kind of site collection that is designed with end users in mind.
Figure 12-7
My Sites and their relationship to social search are described in greater detail below and are previously described in a social networking sense in chapter 7.
340
T
Content Query Web Part: A specialized Web Part, the Content Query Web Part (CQWP) allows users to define a query, confined to a specific site collection, that aggregates and displays results, as shown in Figure 12-8.
T
Search center: SharePoint provides an OOB template that enables companies to create a central search access point within their SharePoint environment, as shown in Figure 12-9.
T
Federated search: A relatively new feature, federated search enables companies to create a search page that shows multiple and different query results in one location. Federated search runs the user’s query on each back-end engine and displays each engine’s results on the same page.
3:24pm
Page 340
Schwartz c12.tex
V3 - 12/26/2008
3:24pm
Chapter 12: Search For example, a company might define a search page that allows a user simultaneously query and display the results from www.google.com and www.live.com.
Figure 12-8 T
Library of Search Web Parts: SharePoint provides a number of Web Parts that companies use to create customized search solutions. Search administrators assemble Web Parts such that they work together to meet a specific search objective. Figure 12-10 shows the available list of OOB parts:
T
Core list and document library user interface elements: If a user knows that the information she wants has been stored into a given document library, the user can access that library directly. From there, sort and filter on the library’s contents by clicking on column headers.
Developers As described throughout this book, SharePoint is, at its core, a technical platform for creating business solutions. SharePoint Search is no different and provides a couple of platform features that developers use to create search solutions for meeting business requirements. T
The following code snippet gives a taste of SharePoint’s Search API: SPList oList = web.Lists[properties.ListId]; SPQuery oQuery = new SPQuery(); oQuery.Query =
341
Page 341
Schwartz
c12.tex
V3 - 12/26/2008
Chapter 12: Search "" + "" + DocID + ""; oQuery.ViewAttributes = "Scope=\"Recursive\""; SPListItemCollection collListItems = oList.GetItems(oQuery);
Figure 12-9
Code Snippet The code snippet shows that an object, SPQuery, takes an XML string defining a query to execute. The query returns a collection of list items that match the query criteria. T
342
Business Data Catalog (BDC): An advanced SharePoint feature, companies can use BDC to enable end users to search other line of business applications, such as ERP, CRM, and so forth, directly from SharePoint. Organizations would use BDC to provide a SharePoint-style search interface to their ERP system, to CRM, directly against a SQL database or a web service. BDC is highly extensible and extends SharePoint’s reach (in terms of search) well beyond its own four walls.
3:24pm
Page 342
Schwartz
c12.tex
V3 - 12/26/2008
3:24pm
Chapter 12: Search
Figure 12-10
Executing Search Queries SharePoint Search provides three fundamental methods for executing queries: T
Keyword
T
SQL
T
URL
Most SharePoint queries are keyword-based. Each word or phrase for which the user wants to search is called a keyword. The search engine supports required keywords, excluded keywords, and property filters. A required keyword means that any given result must include the keyword. An excluded keyword means the opposite. A property filter allows the user to use the formal information architecture to further filter results. See the keyword search examples below to help clarify the concept of property filters.
343
Page 343
Schwartz
c12.tex
V3 - 12/26/2008
Chapter 12: Search URL queries provide a lightweight method for companies to integrate SharePoint search with other applications. URL stands for Uniform Resource Locator. All Internet users have seen a URL, even if they never heard the term. All web site addresses are URLs, for example, www.wrox.com. URL-based searches accept parameters. URL search supports a handful of parameters, including a keyword, for which to search. Programmers use SQL queries to create custom search solutions. SQL queries are beyond the scope of this book. Note, however, that SQL queries provide wildcard search. A wildcard search allows users to execute queries using partial words, typically using the asterisk (*) to tell the search engine that any value should match. For example, consider a search term, bill*. In this case, a SQL query would return results with the word billing. Note that neither keyword nor URL queries support wildcard searches.
Keyword Search Examples For these examples, assume the corpus includes three documents and metadata, as in Table 12-1:
Table 12-1 File Name
Title
Invoice Number
100.doc
Services rendered for server room refurbishment
1000
101.doc
Coffee for North Tower server room
1001
102.doc
Liability insurance
1002
Table 12-2 shows a keyword search and those files returned by SharePoint, if any:
Table 12-2 Keyword Query
Description
Results
Invoice Number:‘‘1000’’
Return any invoice whose invoice number equals ‘‘1000’’
100.doc
‘‘server room’’
Return any document that contains the word ‘‘server room’’
100.doc101.doc
‘‘server room’’ –coffee
Return any document that contains the word ‘‘server room’’ but exclude any document that includes the word ‘‘coffee’’
100.doc
serv*
Return any document with any data that begins with the letters ‘‘serv’’
No documents returned. Keyword search does not support wildcard search.
344
3:24pm
Page 344
Schwartz c12.tex
V3 - 12/26/2008
3:24pm
Chapter 12: Search
SharePoint and Social Search Like many Web 2.0 concepts, SharePoint implements some social search features very well and others not as well. Certain core features support social search very well. However, some aspects of social search are not supported very well by SharePoint OOB and require add-on products or customizations using the SharePoint platform itself.
Supporting Functionality Social search is fundamentally about leveraging human judgment to provide more relevant and well-ranked results in response to a given query. Social search engines use recorded human judgment in order to produce more relevant results. Today, SharePoint Search supports social search functionality via indirect and direct mechanisms. SharePoint does this indirectly via configuration and directly via a core feature, People Search.
Indirect Support: Configuration Organizations cannot change SharePoint’s search algorithm. However, they have great control over configuration. By managing SharePoint’s search configuration, organizations can craft an effective social search solution. Organizations use SharePoint Search to create effective social search solutions by using the features described above. In order to configure SharePoint for social search, organizations must understand their user community: T
What do people need to know?
T
Who produces content?
T
How do users search for content?
T
How often do users search for content?
SharePoint helps to answer these questions via search usage reports. Figure 12-11 shows some of the available information. These reports show vital information that organizations use to configure SharePoint for social search. Specifically, organizations configure SharePoint as described: T
Narrowing the knowledge domain: SharePoint’s corpus is typically business information. That’s a very large corpus, much larger than Monster.com or any specialized corpus, for example. However, it is still a smaller corpus than the entire Internet, so SharePoint Search can make certain assumptions about the data. For example, nearly every object in a SharePoint environment is created and/or modified by a known user. This enables SharePoint to infer social connections between these objects and use those connections to improve relevance and ranking.
T
Narrowing the domain via configuration: SharePoint Search allows customers to define smaller slices within the overall corpus with a scope. Search administrators define a collection of inclusion and exclusion rules that, together, define a small piece of an overall SharePoint corpus. End users can then select one of these defined scopes. SharePoint limits its results set to information only in that scope. SharePoint’s reporting feature show how users select scopes when executing queries.
345
Page 345
Schwartz
c12.tex
V3 - 12/26/2008
Chapter 12: Search
Figure 12-11
346
T
My Sites: MOSS (not WSS) includes My Sites, a set of site collections for each and every user in the system. When enabled and used in a given MOSS environment, My Sites individuals can store personal information about themselves. SharePoint Search can locate this information. People (My Sites) are a fundamental built-in scope.
T
Information architecture: As discussed in chapter 3, SharePoint enables companies to create both a formal information taxonomy and information folksonomy. SharePoint Search fundamentally understands the formal taxonomy and allows users to search against it. With this in mind, information architects design and implement an information taxonomy that incorporates social features that support the organization’s requirements.
3:24pm
Page 346
Schwartz
c12.tex
V3 - 12/26/2008
3:24pm
Chapter 12: Search Direct Support: People Search To this point, the chapter has focused primarily on social search from a content perspective. In other words, extend purely algorithmic search by incorporating human judgment into the index and query process. SharePoint also provides an extended set of functionality focused on searching for people within an organization. In SharePoint parlance, this is simply called People Search. As described earlier in chapter 7, SharePoint provides strong support for social networking. Beyond the many advantages social networking provides organizations, this feature also provides a basis upon which SharePoint supports a general-purpose social search solution focused on individuals within an organization. Searching for people within an organization becomes increasingly important as organizations grow in size. A small fifty-person company may not derive substantial benefit from People Search. With so few employees, there is a good chance that everyone knows everyone anyway. The same may hold true for a medium-sized department in a larger company. However, for any medium- or larger-sized organization, People Search becomes very important since it is no longer possible for employees to maintain this information in their head from day to day. People Search is particularly valuable for companies whose main product is knowledge and the employees themselves, for example, consulting firms and law firms. User profiles, via My Sites, drive People Search. Note that users do not need to have a SharePoint user profile in order to access SharePoint. Once a user profile exists, anyone can search for that user’s information, as shown in Figure 12-12:
Figure 12-12 As with document search, SharePoint’s People Search is highly configurable, as shown in Figure 12-13. As can be seen, People Search looks and indeed operates much the same as document search. People Search supports keyword search and property filters. See the walk-through at the end of the chapter for more details.
347
Page 347
Schwartz
c12.tex
V3 - 12/26/2008
Chapter 12: Search
Figure 12-13
Gaps SharePoint Search provides a great deal of useful functionality that can be configured to provide a good social search experience. However, there is one important gap between what can be easily achieved with SharePoint OOB features and a fully functional social search solution. As discussed in chapter 3, the technical community has provided — and will no doubt continue to provide — new features that extend SharePoint’s core features. However, this can only go so far. As it stands today, SharePoint’s core search algorithm is sealed and not subject to direct modification. As a result, implementing social search in SharePoint is largely an indirect process. To provide social search capability, organizations must analyze search results and devise their strategy. There is no easy way to implement a pervasive feedback mechanism that allows users to directly rate search results. As seen in chapter 3, it is possible to use a CodePlex project that allows users to rate content in a specific document library. Users can construct queries, using keyword syntax, for example, to search for highly rated content. However, this approach requires users to have rated content in advance of running a query. At the same time, SharePoint Search does not distinguish between highly rated content versus poorly rated content or unrated content. As a result, every search query must be constructed with rating criteria in mind, or users must be trained to use customized search pages.
Walk-through: Create Department Contacts List The remainder of the chapter walks you through a process of creating a department-level contacts list using SharePoint’s search capabilities.
348
3:24pm
Page 348
Schwartz
c12.tex
V3 - 12/26/2008
3:24pm
Chapter 12: Search Department Contacts Every user’s profile includes a predefined field for his or her department. This walk-through explains how to leverage People Search Web Parts to create a Department Contact list. The end result is shown in Figure 12-14.
Figure 12-14 The following SharePoint Search features combine to create this solution: T
People Search Core Results Web Part
T
Extensible Style Language (XSL)
T
Visual Studio (optional but recommended)
T
HyperText Markup Language (HTML)
This solution does not require any programming, at least in a C#/VB.NET sense. It does not require SharePoint Designer. At a high level, follow these steps to create the solution:
1. 2. 3. 4.
In a sandbox environment, create a new site using the Blank Site template. Edit the page, and add a People Search Core Results Web Part where appropriate. Modify the Web Part for look, feel, and query parameters. Modify the Web Part’s XSL to display the data in a grid format. (This is best done in Visual Studio, but any text editor will do.)
Add a People Search Core Results Web Part Follow these steps to add a People Search Web Part to a SharePoint site:
1. 2.
Create the site in the sandbox environment using the Blank Site template. Edit the page, and click Add a Web Part. Select People Search Core Results from the gallery, as shown in Figure 12-15.
349
Page 349
Schwartz
c12.tex
V3 - 12/26/2008
Chapter 12: Search
Figure 12-15
Modify Fixed Keyword Query After it has been added, modify the Web Part and expand the Fixed Keyword Query section, as shown in Figure 12-16.
Figure 12-16
The Web Part uses the fixed query, Department:IT to search for and return all user profiles whose department equals IT. Select a department that exists in your organization to produce results.
Modify Results Query Options Setting the fixed keyword query is not quite enough. In order for the Web Part to use the results of that query, it is necessary to tell the Web Part to feed itself, so to speak. Do this as shown in Figure 12-17. At this point, the Web Part is fully functional. It will display the results in the same format as Figure 12-17, but constrain the listing strictly by department. To verify these results, execute a People Search from the global search box with the query, Department:IT. The results should be the same as shown in Figure 12-18.
Modifying Search Results Output SharePoint allows developers and knowledgeable end users to change the output format using a technology, Extensible Style Sheets (XSL). XSL is a transformation language that accepts XML and generates HTML output. Web browsers display HTML. Figure 12-19 shows the process.
350
3:24pm
Page 350
Schwartz
c12.tex
V3 - 12/26/2008
3:24pm
Chapter 12: Search
Figure 12-17
Figure 12-18 At run time, the Search Core Results Web Part executes its fixed query in the usual manner, that is, it calls out to the query server, which retrieves user profile data. The query server returns the results in the form of XML. This XML is passed over to the XSL transformation engine, which creates an HTML response. The web browser displays the result on the screen. To create the grid format in Figure 12-18, the XSL must generate HTML, which is broadly structured as follows:
By default, the results are not sorted. To sort them by last name, use the xsl:sort directive:
351
Page 351
Schwartz c12.tex
V3 - 12/26/2008
Chapter 12: Search Core Results Web Part Fixed Query
Query Server
User Profiles
XML XSL
HTML
Figure 12-19 That XSL iterates through the search result set ("ALL_Results/Result") and tells the parser to sort via ‘‘preferredname" ( ). The full XSL is as follows: Please set the ’Fixed Query’ property for the webpart. Enter one or more words to search for in the search box.
352
3:24pm
Page 352
Schwartz c12.tex
V3 - 12/26/2008
3:24pm
Chapter 12: Search
No contacts were found for this department. Ensure that the fixed keyword query component to this People Search Core Results is properly defined and that the Cross Web Part Query is correct.
| |
353
Page 353
Schwartz c12.tex
V3 - 12/26/2008
Chapter 12: Search
…
354
3:24pm
Page 354
Schwartz c12.tex
V3 - 12/26/2008
3:24pm
Chapter 12: Search
355
Page 355
Schwartz
c12.tex
V3 - 12/26/2008
Chapter 12: Search Transportation Department Team Members and Contacts [ ]
356
3:24pm
Page 356
Schwartz c12.tex
V3 - 12/26/2008
3:24pm
Chapter 12: Search
Benefits This walk-through leverages SharePoint search, illustrates a best practice, and can provide a useful benefit to the organization. First, department members are often managed in Active Directory. Active Directory normally drives People Search via the full and incremental user profile import process. Therefore, the information is already centrally managed from a data input perspective. Organizations should use Active Directory for this purpose. There is no reason to add a new redundant source of contact details via another method, such as a Contacts list. Second, this approach provides a high-visibility feedback mechanism to Active Directory managers. End users will see their names, titles, and other profile data on their department main page (or wherever their contact data is displayed) and in a manner more public than the user’s My Site. If that information is incorrect, they have a good incentive to notify Active Directory managers who can clean up those users’ Active Directory data. In some cases, it may be easier to manage incorrect Active Directory data this way rather than attempting a brute force, top-down project to clean up Active Directory. As Active Directory data is cleaned, it becomes more valuable and can be used in other areas of SharePoint, for example, via Colleagues, My Sites, and even other applications in your enterprise that leverage Active Directory.
Success Factors for Search in Organizations SharePoint offers a number of social search features. In order to leverage these features, organizations must follow and commit to certain best practices. Form a search committee. Educate the user community. Ensure that Active Directory is minimally clean.
Search Committee SharePoint Search requires direct human oversight in order to operate well, meet the organization’s search objectives, and, especially, implement social search features. Who should be on search committee? The answer will vary from company to company, but consider these choices: T
At least one (and maybe only one) IT person who understands (or can learn) the various ways to tweak search, including best bets, thesaurus, managed properties, and so forth
T
Several subject matter experts who can read the search reports, analyze them, and communicate business-savvy actions to IT. This will allow IT to push the buttons, pull the levers, and open/close valves as necessary to act on committee recommendations.
T
One or more information architects who can validate, one way or another, whether the information architecture is search-friendly and whether it’s working out well for the enterprise
T
A rotating seat on the committee. Bring in one or two people who don’t normally participate in these kinds of efforts. They may bring unusual and valuable insights to the table.
Investing a few hours a month on a consistent basis is not only more fun than a barrel of monkeys, it can: T
Give insight into the information needs of the enterprise. If people are searching left and right for topic xyzzy, it is clearly an important topic to the enterprise.
357
Page 357
Schwartz
c12.tex
V3 - 12/26/2008
Chapter 12: Search T
Identify potential training requirements. If people are searching for topic xyzzy but should really be searching for abcd, use that to educate users on where and how to find the information. This could also lead to a review and update of the thesaurus.
T
Help the organization refine its information architecture
Other opportunities will no doubt present themselves. Few things can accomplish more for an organization’s search efforts than a focused committee that meets on a regular basis.
Active Directory Overall, SharePoint Search benefits from accurate Active Directory information. Active Directory is not required, but the principle applies to whichever directory a company uses. Unfortunately, many times Active Directory is used strictly as a method for network authentication. SharePoint gives organizations a reason to populate more than simply a user ID and password. As Active Directory is updated to include more accurate user profile data, SharePoint People Search improves in value.
Education Last but not least, invest in education. As the chapter describes, SharePoint search is complex. Without training, users will never understand how and why to use keyword search, how they can leverage the formal information taxonomy, or why it is important for them to maintain their user profile.
Enterprise and Community Contributions Search, whether more traditional or of the Web 2.0 social variety, becomes more and more important every day. Vendors and the overall technical community recognize this fact and continue to make their offerings to the public.
SharePointPedia SharePointPedia (http://sharepoint.microsoft.com/pedia/Pages/Home.aspx) exemplifies the most pure social search solution built on SharePoint today. As members of the SharePoint community locate useful resources on the Internet (for example, from blogs), they log in to the SharePointPedia application and submit that link to the database. Users can rate the content, and this rating affects the application’s ranking in response to user searches.
CodePlex Faceted Search Faceted Search at www.codeplex.com/FacetedSearch, extends SharePoint’s core search capability. It does so primarily by categorizing search results, allowing users to drill down into the results without needing to manually refine and reexecute the query. Faceted Search provides features for administrators and developers.
CodePlex Wildcard Search Wildcard Search at www.codeplex.com/WildcardSearch provides a Web Part that enables end users to execute wildcard searches. SharePoint, at the engine level, supports wildcard searches via SQL queries.
358
3:24pm
Page 358
Schwartz
c12.tex
V3 - 12/26/2008
3:24pm
Chapter 12: Search However, the default SharePoint user interface only supports keyword and URL search. This Web Part opens up that part of the engine, which would otherwise require custom development.
Summar y This chapter covered the general structure and functionality of search engine architecture and terms (relevancy and ranking) as well as SharePoint’s core search features focused on configuration, end users, and developers. Key takeaways from this chapter include: T
Search is a critical feature for all social applications, enabling users to discover the vast amounts of data inherent in a social application.
T
While search can be tuned via configuration, an excellent implementation concept for social applications is to use search click-throughs to vote a search result into a position of greater rank in a result set.
T
Search implicitly requires several actors filling the following roles: administrator, user, and developer who can impact the presentation and scope of searched data. A search committee representing each role is an excellent mechanism to ensure a focus on search does not get lost in larger social applications.
Social computing is a tool that is traditionally focused on connecting people on the Internet to individuals with like tastes and interests. As the concepts and implementations on the Internet are tested and exposed to the rigors of the marketplace, the gems have risen to the top. Taking these same concepts for social connectedness and applying them to business situations for deriving business value can be a calculated risk for an organization to take. Proving the return on investment (ROI) of a social application is difficult, often involving fuzzy metrics, such as how good people feel about their jobs or how easily they feel they can find information. However, the challenge of a difficult to quantify ROI doesn’t mean that genuine business value is not realized from the introduction of a social application. People who participate in an enterprise-focused social computing application often do experience the benefits without even realizing that their jobs are easier than before. The guidance contained in this book has been focused around three distinct topics: understanding and planning social computing projects, core social computing technologies, and example social computing implementations. Chapters 1 and 2 expose readers to the concepts encapsulated by the term social computing and the kind of benefits those concepts can bring to an organization. Advice for building a project team and defining governance policies were suggested with an eye toward end-user acceptance and adoption, which is important to any technology project but absolutely critical for an application that requires social interactions between multiple users before any benefit is realized. Chapters 3 and 12 bracket the remainder of the book with the core social computing concepts of tagging, commenting upon, rating, and searching content generated by social applications. Each of these core concepts apply to practically every social computing concept discussed in this text. Commenting and rating content entices users to participate fully in every content contribution where search enables content to be easily and effectively discovered. Chapters 4 through 11 discuss actual implementations of social computing concepts, such as wikis and podcasts. While all of these implementations may not be appropriate for every social computing application or portal, one or more may help users have an increased stake in corporate intranets. The social aspects of these implementations enable users to find pertinent information faster, preserve valuable institutional knowledge, and create connected networks of knowledge where none existed before.
359
Page 359
Schwartz
c12.tex
V3 - 12/26/2008
Chapter 12: Search The goal of this book has been to expose you, the reader, to the concepts and challenges of social computing. It is our hope that this book has entertained, informed, and inspired you. Social computing does not have to be a scary proposition. Not every organization wants ‘‘Facebook in the Enterprise,’’ but not every social application is an equivalent implementation to Facebook. Find the areas of your business that are ready for renovation, and consider how a user-focused social spin on an upgrade could introduce new capabilities and reap unforeseen benefits.
360
3:24pm
Page 360
Schwartz b01.tex
V3 - 12/26/2008
3:39pm
Installation Instructions for SharePoint Solutions SharePoint takes advantage of an installation technique known as SharePoint Solution Packages (abbreviated as WSP). A WSP is essentially a compressed set of files stored in a specific folder structure, which SharePoint understands how to install in a distributed server environment. The benefit of having a WSP is that, no matter how many SharePoint servers there are in a SharePoint server farm, installing a WSP on a single server will cause SharePoint to do the work to install the WSP on every server. Even better, a WSP can be scheduled to install during off-peak hours, minimizing potential disruption to business users. Commercial and open source software applications for SharePoint, such as those available on CodePlex, are frequently distributed as WSPs. To install a WSP, use the SharePoint command line tool STSADM. STSADM is installed with SharePoint to the C:\Program Files\Common Files\Microsoft Shared\web server extensions\12\bin directory. This command line tool is extremely powerful and important to SharePoint administrators. Learn more about STSADM on Microsoft’s TechNet: http://technet.microsoft.com/en-us/library/cc261956.aspx. Chapter 3 contains a You Try It section with the following instructions: T
Download solution file (.wsp).
T
Install solution into SharePoint using stsadm.
T
Deploy the solution to a SharePoint site collection also using stsadm.
T
Activate the Tag Cloud feature at one or more SharePoint sites.
Page 361
Schwartz
b01.tex
V3 - 12/26/2008
Appendix A: Installation Instructions for SharePoint Solutions These steps are explained in more detail here: T
Download solution file (.wsp)
CodePlex projects each have a release that is a compiled version of the project available for download. These are typically .WSP files that can be installed in SharePoint farms via STSADM. T
Install solution into SharePoint using stsadm.
T
To use STSADM to install a WSP, such as one downloaded from CodePlex, type the following commands into a command prompt window on a SharePoint server. Please note that, before you start typing, you need to place the WSP file on the server in a known directory.
T
The command below will add the WSP to SharePoint’s solution store, which makes it available for deployment.
T
Replace ‘‘C:\Downloaded WSP Directory\Downloaded_Codeplex_Project.wsp’’ with the proper directory and file name. "c:\program files\common files\microsoft shared\web server extensions\12\bin\stsadm.exe" -o addsolution -filename "C:\Downloaded WSP Directory\"Downloaded_Codeplex_Project.wsp
T
Deploy the solution to a SharePoint site collection also using stsadm.
T
The process of deployment, executed by the following STSADM command, will unpack the WSP on the server and distribute the files across the network to the appropriate locations.
T
Replace ‘‘C:\Downloaded WSP Directory\Downloaded_Codeplex_Project.wsp’’ with the proper directory and file name. "c:\program files\common files\microsoft shared\web server extensions\12\bin\stsadm.exe" -o deploysolution -name Downloaded_Codeplex_Project.wsp -allowgacdeployment -immediate -force
T
Activate the Tag Cloud feature (or any feature) at one or more SharePoint sites.
At this point, a site administrator should navigate to the site where he or she would like to take advantage of the newly installed functionality. On this site, click the Site Actions menu, and select Site Settings. Here, the site administrator will have the ability to select the Site Features menu item, and click the Activate button next to the new feature. This will enable the new functionality and make any new Web Parts available for end-user selection.
Web Sites and Software Mentions The following web sites and software tools were mentioned throughout the book. This list summarized those mentions for easy reference:
Chapter 1
362
T
Geocities: www.geocities.com
T
Wikipedia: www.wikipedia.org
3:39pm
Page 362
Schwartz
b01.tex
V3 - 12/26/2008
3:39pm
Appendix A: Installation Instructions for SharePoint Solutions T
Wordpress: www.wordpress.com
T
YouTube: www.youtube.com
T
Zune Social: http://zune.net/social
T
Flickr: www.flickr.com
T
Delicious: http://delicious.com
T
Facebook: www.facebook.com
T
MySpace: www.myspace.com
T
Twitter: www.twitter.com
T
FriendFeed: www.friendfeed.com
T
Virtual Earth: www.microsoft.com/virtualearth
T
Silverlight: www.microsoft.com/silverlight
T
Silverlight Blueprint for SharePoint: www.codeplex.com/SL4SP
T
Channel9: http://channel9.msdn.com
Chapter 2 T
LinkedIn: www.linkedin.com
T
Facebook: www.facebook.com
T
Wikipedia: www.wikipedia.org
T
WebTrends: www.webtrends.com
Chapter 3 T
Wordle.net: www.wordle.net
T
Delicious.com: www.delicious.com
T
Microsoft MSDN (rating content): Example link: http://msdn.microsoft.com/en-us/library/ aa979736.aspx
T T
Netflix: www.netflix.com Community Kit for SharePoint TagCloud 1.2: www.codeplex.com/CKS/Release/ ProjectReleases.aspx?ReleaseId=10648
T
SharePoint Document Rating: www.codeplex.com/spdocrating
T
NewsGator: www.newsgator.com
Chapter 4 T
HomeSite: www.adobe.com/products/homesite
T
Dreamweaver: www.adobe.com/products/dreamweaver
T
Flickr: www.flickr.com
T
MySpace: www.myspace.com
363
Page 363
Schwartz
b01.tex
V3 - 12/26/2008
Appendix A: Installation Instructions for SharePoint Solutions T
Flexwiki: www.flexwiki.com
T
Confluence: www.atlassian.com/software/confluence
T
MediaWiki: http://www.mediawiki.org/wiki/MediaWiki
T
Wikipedia: http://www.wikipedia.org
T
Wikia: http://www.wikia.com
T
Community Kit for SharePoint Enhanced Wiki Edition: http://www.codeplex.com/CKS/ Release/ProjectReleases.aspx?ReleaseId=4623
Chapter 5 T
Blogger.com: www.blogger.com/tour_start.g
T
Crooks and Liars: www.crooksandliars.com
T
Usenet: www.usenet.com
T
Justin’s Links: www.links.net
T
Dave Winer’s Scripting News: www.scripting.com
T
Open Diary: www.opendiary.com
T
LiveJournal: www.livejournal.com
T
New York Times: www.nytimes.com/2008/02/25/business/media/25marshall.html?fta=y
T
New York Times: www.nytimes.com/ref/topnews/blog-index.html
T
Atlanta Journal Constitution: www.ajc.com/blogs
T
Northeastern University and Backbone Media Group Blogging Success Study: www .scoutblogging.com/success_study/index.html
T
MSDN Blogs: http://blogs.msdn.com
T
Direct2Dell: http://direct2dell.com/one2one/archive/2008/08/01/dell-discusses -green-with-state-legislators.aspx#comments
T
Direct2Dell: http://direct2dell.com/one2one/archive/2008/06/17/a-beast-ofa-card-for-a-beast-of-a-laptop.aspx
T
BusinessWeek: www.businessweek.com/managing/content/sep2007/ca20070924_876870.htm
T
BusinessWeek: http://www.businessweek.com/playbook/07/0904_1.htm
T
BusinessWeek: www.businessweek.com/magazine/content/05_18/b3931005_mz001.htm
T
BusinessWeek: www.businessweek.com/print/bwdaily/dnflash/content/oct2006/ db20061009_579137.htm
T
Porter Novelli: hwww.porternovelli.com/site/pressrelease.aspx?pressrelease_id=125& pgname=news
364
T
Forrester: www.forrester.com
T
Forrester: www.corporateblogging.info/2004/11/at-minimum-you-should-monitorblogs.asp
T
CNET: http://news.cnet.com/Why-companies-monitor-blogs/2100-1030_3-6006102.html
T
CNET: http://news.cnet.com/8301-10784_3-9903070-7.html
3:39pm
Page 364
Schwartz
b01.tex
V3 - 12/26/2008
3:39pm
Appendix A: Installation Instructions for SharePoint Solutions T
Google: www.google.com
T
Microsoft Live Search: www.live.com
T
Daily Fix: www.mpdailyfix.com/2006/10/handling_negative_comments_on.html
T
Sun Microsystems: www.sun.com/aboutsun/media/blogs/BloggingGuidelines.pdf
T
Microsoft: www.microsoft.com/windowsserver2003/howtobuy/licensing/extconnector.mspx
T
Microsoft: www.microsoft.com/windowsserver2003/howtobuy/licensing/pricing.mspx
T
Microsoft: http://office.microsoft.com/en-us/sharepointserver/FX102176831033.aspx
T
Windows Live Writer: windowslivewriter.spaces.live.com
T
Technorati: www.technorati.com
T
Community Kit for SharePoint Enhanced Blog Edition: www.codeplex.com/CKS/Wiki/View .aspx?title=Enhanced%20Blog%20Edition&referringTitle=Home
T
Community Server: www.communityserver.com
T
Facebook: www.facebook.com
Chapter 6 T
Bloglines: www.bloglines.com
T
Omea Reader: www.jetbrains.com/omea/reader
T
W3 Schools: www.w3schools.com/rss/rss_history.asp
T
Netscape: http://en.wikipedia.org/wiki/Netscape
T
UserLand: www.userland.com
T
Syndic8.com: www.syndic8.com
T
NewsGator: www.newsgator.com
T
NewsGator FeedDemon: www.newsgator.com/Individuals/FeedDemon
T
Forrester: www.forrester.com/Research/Document/Excerpt/0,7211,35005,00.html
T
Attensa: www.attensa.com
T
RSS FeedReader: www.codeplex.com/FeedReader
Chapter 7 T
LinkedIn: www.linkedin.com
T
MySpace: www.myspace.com
T
Facebook: www.facebook.com
T
SixDegrees: www.sixdegrees.com
T
AIM: dashboard.aim.com/aim
T
ICQ: www.icq.com/
T
MSN Messenger: http://messenger.live.com
T
Classmates.com: www.classmates.com
365
Page 365
Schwartz
b01.tex
V3 - 12/26/2008
Appendix A: Installation Instructions for SharePoint Solutions Chapter 8 T
Harvard University: http://cyber.law.harvard.edu/rss/rss.html
T
Software Garden: www.softwaregarden.com/products/listgarden/index.html#howtogetit
T
Acoustica Wav Converter: www.acoustica.com/mp3-wav-converter/index.htm
T
Podcast Feed Generator: www.tdscripts.com/webmaster_utilities/podcast-generator.php
T
RSS Feed Validator: http://validator.w3.org/feed/check.cgi
T
Podcasting Kit for SharePoint: www.codeplex.com/pks
Chapter 9 T
My Yahoo!: http://my.yahoo.com
T
Popfly: www.popfly.com
T
Yahoo! Pipes: http://pipes.yahoo.com
T
Federal Election Commission: www.fec.gov
T
Miami Gas Prices: www.miamigasprices.com
T
Power Query Web Part: www.codeplex.com/PowerQueryWebPart
T
Online SQL to CAML Query Tool: www.spsprofessional.com/sqlcaml.aspx
T
YACAMLQT: www.ideseg.com/SharePointYetAnotherCAMLQeryTool2.aspx
T
CAML Builder: www.u2u.info/Blogs/Patrick/Lists/Posts/Post.aspx?ID1252
T
CAML.Net: www.codeplex.com/camldotnet
T
LINQ to SharePoint: www.codeplex.com/LINQtoSharePoint
T
LINQ4SP: http://lmsolutions.web.officelive.com/linq4sp.aspx
T
BDC Meta Man: www.lightningtools.com
T
Office Business Application Composer: http://msdn.microsoft.com/en-us/architecture/ cc196391.aspx
T
Northwind Sample Database: www.microsoft.com/downloads/details.aspx? FamilyID=06616212-0356-46A0-8DA2-EEBC53A68034&displaylang=en
Chapter 10 T
AIM: http://dashboard.aim.com/aim
T
ICQ: www.icq.com/
T
MSN Messenger: http://messenger.live.com
T
Yahoo! Messenger: http://messenger.yahoo.com/
Chapter 11 T
366
Accenture Global Media Content Survey: www.accenture.com/Global/Research_ and_Insights/By_Industry/Media_and_Entertainment/ContentStudy2008.htm? c=cht_mecontentpr1_0508&n=pr1-1
3:39pm
Page 366
Schwartz b01.tex
V3 - 12/26/2008
3:39pm
Appendix A: Installation Instructions for SharePoint Solutions T
YouTube: www.youtube.com
T
Flickr: www.flickr.com
T
Wikipedia: www.wikipedia.org
T
Second Life: www.secondlife.com
T
Chatterbox (non-AJAX): www.codeplex.com/CKS/Release/ProjectReleases.aspx? ReleaseId=4234
T
Chatterbox (AJAX): www.codeplex.com/CKS/Release/ProjectReleases.aspx? ReleaseId=5021
T
Yahoo! Messenger: http://messenger.yahoo.com
T
Deja News: www.dejanews.com
T
Telligent: www.telligent.com
T
CodePlex: www.codeplex.com
T
Community Clips: http://communityclips.officelabs.com
T
Techsmith Camtasia: www.camtasia.com
T
Soapbox: http://video.msn.com
T
Akamai Flash Streaming Service: www.akamai.com/flash
Chapter 12 T T
Delicious: www.delicious.com Google Page Rank: www.google.com/support/webmasters/bin/answer.py?hl= en&answer=34432
T
Amazon: www.amazon.com
T
Angie’s List: http://angieslist.com/Angieslist
T
Digg.com: www.digg.com
T
Microsoft’s Home for Search Server Express: www.microsoft.com/enterprisesearch/ serverproducts/searchserverexpress/default.aspx
T
Wrox: www.wrox.com
T
CodePlex: www.codeplex.com
T
SharePointPedia: http://sharepoint.microsoft.com/Pedia/Pages/Home.aspx
T
Faceted Search: www.codeplex.com/facetedsearch
T
Wildcard Search: www.codeplex.com/WildcardSearch
367
Page 367
Schwartz b01.tex
V3 - 12/26/2008
3:39pm
Page 368
7:21pm
Page 369
Index
Schwartz bindex.tex V1 - 12/26/2008
Index Note to the Reader: Throughout this index boldfaced page numbers indicate primary discussions of a topic. Italicized page numbers indicate illustrations.
A
acceptable use policies, 307 access levels in presence, 282–283, 283 Account Settings dialog box, 176, 177 accountability in podcasting, 242–243 Acoustica MP3 To Wave Converter Plus program, 222 action links in RSS search, 170 Activate for the Reporting feature, 29 Active Directory administrator responsibilities, 35 company directories, 169 content targeting, 324 organization hierarchies, 201 searches, 170, 357–358 user profiles, 194–195 activity logs in social networks, 6 Add a Web Part option, 73, 204, 349 Add from existing site columns option, 71 Add Members dialog box, 294, 296 Add new members option, 293, 295 Add to default view option, 71 Add User Profile Property page, 209, 209 Add Web Parts WebPage dialog box, 272 Add Weblog Account dialog box, 142, 149 administrators collaboration sites planning, 35, 39 Search, 338–339, 338–339 SSP setup, 28, 28 Adobe Photoshop for wireframes, 36 adoption collaboration sites, 45–47, 46 Facebook, 189 OCS, 300 podcasting, 242 Web 2.0, 193–194 Advanced page for RSS feeds, 180, 181 Advanced permissions option, 152 Advanced Search page, 169, 169 advocates podcasting, 242 SharePoint, 32 social computing, 46 aggregators, RSS, 164 agility, mashups for, 248 AJAX technique, 19–20, 20 Akamai Flash Streaming Service, 320 Alert Me option, 143
alerts blogs, 144 lists, 171 RSS, 180 searches, 170 wikis, 110–112, 118–119 algorithmic search vs. social, 332–335, 333–334 All Programs option, 222 All Site Content page, 134, 135 Allow anyone on the web to see my presence and send me messages option, 289 Amazon.com community ratings, 56 searches, 331 Web 2.0, 193 America Online (AOL), 277, 280 anchor tokens in wikis, 85–86 AND elements in CAML, 260 Angie’s List, 331, 335 Anonymous Access option, 152 anonymous blogs, 150–156, 154–157 AOL Messenger, 280 Application Created page, 131 application definition files, 268–271, 269–270 Application Management page blogs, 130, 150 RSS, 172 Approve/Reject blog option, 137, 138 architecture for Search, 335–337, 336 archives discussion forums, 308, 310, 313–314 podcasts, 219–222, 220–221, 225 RSS, 175 articles blogs. See blogs discussion forums. See discussion forums ‘‘As We May Think’’ (Bush), 80 assembling data. See mashups Atlanta Journal Constitution blog, 124 Atom format, 166–168 Atom Publishing Protocol, 167 Atom Syndication Format, 167 Atompub working group, 167 Attach Database dialog box, 268 Attensa company, 184 audience considerations content targeting, 324 podcasting, 217–219, 222 social networking university example, 211–213, 212
audio broadcasting. See podcasting audioblogging, 216 audit reports, 39, 39 , 43 authentication Active Directory, 358 BDC, 268 blogs, 131, 145, 150–152, 154–155 social networking, 188 Authentication Providers option, 150 authors, blog, 128 Availability Web Part, 287, 287 Available presence button status, 283 Away presence button status, 284
B BDC (Business Data Catalog) configuring, 268, 268 pull, 264 Search, 342 Web Parts, 271–273, 271–275 BDC Meta Man tool, 264 application definition files, 270–271 configuring, 268, 268 Best Bets search option, 338 block access level in presence, 282–283 Blocked presence button status, 285 Blogging Success Study, 124 blogosphere, 124, 126 blogs, 121, 122 benefits, 124–126 categories and tags, 122 comments, 121–122, 126–127 history, 123–124 internal, 129 micro-blogging, 321–323, 322–323 open source, 157–158, 159 risks, 126–128 RSS, 123 settings, 134, 135–136 SharePoint, 129–130 anonymous, 150–156, 154–157 comments, 143–144, 150–151 creating, 130–134, 131–135 enterprises, 160, 161 permissions, 144–150, 150–154 posting to. See posting to blogs settings, 134, 135–136 summary, 160–161 Web 2.0, 14–15
Schwartz bindex.tex V1 - 12/26/2008
bold text tokens bold text tokens, 85–86 bookmarks delicious.com, 54, 55 shared, 330 social, 3–5, 6 wiki tokens, 85–86 Boolean algebra, 80 branch game theory, 80 Bray, Tim, 167 build vs. buy decisions for content tagging, 76 Bush, Vannevar, 80 Business Analysis team members, 31, 33 Business Data Actions Web Part, 272 Business Data Catalog (BDC) configuring, 268, 268 pull, 264 Search, 342 Web Parts, 271–273, 271–275 business user involvement in site planning, 31 business value content tagging, 57 social computing, 17–18 social networking, 192–194 videos, 319–320 Busy presence button status, 283–284 buy vs. build decisions for content tagging, 76 BuzzMetrics, 126
C
calendars of events, 325 cameras, photo stitching with, 317–318 CAML (Collaborative Application Markup Language), 22, 259–263, 261–262 CAML.NET, 261, 263 campaign contribution information, 249–251, 250 Camtasia tool, 319 CAS (code access security) files, 230 categories for blogs, 122, 134, 135–136 Central Administration blogs, 130–131, 150–152 collaboration sites, 27, 28 RSS, 172 CEWP (Content Editor Web Part), 258, 322–323, 323 champions collaboration sites, 46 wikis, 114, 116 Change Anonymous Access Settings page, 153, 155–156 changes logging, 6 planning for, 38 wiki alerts, 110–112, 118–119 wiki history, 95–97, 105–106 Channel 9 site, 21 channels RSS feeds, 165–166, 172 SharePoint lists, 174, 178–179 chat, 315–316, 316 Chatterbox chat, 316, 316 choice columns for content tagging, 64–65, 64
370
Cisco lawsuit, 127 virtual worlds, 305 CKS (Community Kit for SharePoint), 75 Chatterbox, 316, 316 Enhanced Blog Edition, 158, 159 tag clouds, 65–68, 66–67 , 73–74, 74–75 wikis, 117 claims adjustment, 318 Classmates.com site, 188–189 clouds, tag adding, 73–74, 74–75 CodePlex, 65–68, 66–67 community-driven, 330 delicious.com, 52–55, 53–55 description, 52 CNN micro-blogging, 322 code access security (CAS) files, 230 CodePlex, 65 compiled project versions, 362 content tagging, 69–70 document rating system, 68–69, 68–70 RSS feeds, 184 searches, 358–359 tag clouds, 65–68, 66–67 wikis, 117 collaboration enterprise social computing, 12 user profiles, 9 virtual worlds, 305 Collaboration page, 13 collaboration sites, 25 effective, 26–29, 28–29 end-user support and training, 44–45 governance, 40–45, 41, 44 overview, 25–26 preplanning stage, 29–38, 33 , 36 structure, 38–42, 39 , 41–42 summary, 47–49 user adoption curves, 45–47, 46 Collaborative Application Markup Language (CAML), 22, 259–263, 261–262 Colleague Tracker Web Part My Home page, 203 presence, 287–288, 287 colleagues social communication, 8 social networks, 6 Collier, Mark, 126 columns choice, 64–65, 64 SharePoint lists, 174 site, 63–64, 63–64 Comment on Page feature, 100 comments blogs, 121–122 adding, 138, 140 Comments list, 153, 156 enhanced, 143–144, 150–151 negative, 126–127 document rating system, 69 MSDN articles, 56 social bookmarking, 5 social media, 3 wikis, 100 committees, search, 357–358
communication, 303 content tagging for, 58 enterprise social computing, 11–12 organization blogs for, 126, 129 social. See social communication virtual worlds, 305 communities, content targeting, 323–325 community contributions blogs, 157–160, 159–160 mashups, 264–266 podcasting, 244–245 RSS feeds, 184 social search, 358–359 wikis, 116–118 community-driven tag clouds, 330 Community Kit for SharePoint (CKS), 75 Chatterbox, 316, 316 Enhanced Blog Edition, 158, 159 tag clouds, 65–68, 66–67 , 73–74, 74–75 wikis, 117 community projects for content tagging, 62 Community Server, 159–160, 161, 314–315 CommunityClips tool, 319 company access level in presence, 282 comparisons in CAML, 260 competition blog concerns, 127–128 enterprise social computing, 17 compound words for content tags, 52 Configure Advanced Usage Analysis Processing page, 28, 28 Confluence platform, 80, 116–117 Connect to Data Source option, 268 connected Web Parts, 258 Connector for Confluence, 117 contacts lists, 348–356, 349–352 content collaboration site growth, 43–44, 44 podcast, 218–219, 244 RSS vs. Atom models, 167 SharePoint types, 60–61 tagging. See content tagging targeting, 323–325, 324–325 Content Editor Web Part (CEWP), 258, 322–323, 323 content managers for podcasting, 243 Content Query Web Part (CQWP), 325, 340 content tagging, 51 benefits, 56–58 blogs, 122 challenges, 58–59 delicious.com, 52–55, 53–55 extending, 62–63 mashups, 254 MSDN articles ratings, 55–56, 56 overview, 51–52 SharePoint, 59–61, 60–62 choice columns, 64–65, 64 CKS tag clouds, 73–74, 74–75 CodePlex, 65–70, 66–70 site columns, 63–64, 63–64 steps, 71–73, 73 success factors, 75–76
7:21pm
Page 370
7:21pm
Faculty role in social networking university example summary, 76–77 vendor offerings, 70 context collaboration site help, 45 podcasting audiences, 217 Contribute Permission Level option, 146 control issues blogs, 127 content tagging, 58 converting MP3 files, 222 Copy Permission Level option, 146, 152 copyright information for RSS feeds, 224 core application features for content tagging, 62 core technical features for content tagging, 62 corpus issues content tagging, 52, 55, 57–58 search, 329, 332–334, 333–334, 337–338 SharePoint, 59–60, 63 cost factors, 17 CQWP (Content Query Web Part), 325, 340 crawls, 337 Create a post option, 136 Create a SharePoint Blog Site option, 130 Create Audiences option, 211 Create Column option, 97 Create New Web Application page, 130–131, 131–132 Create or extend Web application option, 130 Create RSS 2.0 feed option, 225 Create Site Collection page, 131–132, 133–135 Create view option, 72 Create View screen, 101 crises, blogs for, 125 CRUD (create, read, update, and delete) methods, 21–22 Cunningham, Ward, 80 Curry, Adam, 216
D
Daily Fix blog, 126 daily summaries for wiki alerts, 112 dashboards for wikis, 105, 109, 113 Data View Web Part, 258 databases for mashups, 267–268 date formats in RSS and Atom, 167 deadlines in collaboration sites planning, 38 dedicated podcasting resources, 242–243 defamatory writings on blogs, 127 Deja News, 308 DELETE method, 22 delicious.com content tagging, 52–55, 53–55 shared bookmarks, 330 Dell Computers blogs, 125–126 democratic process, content tagging as, 57–58 department contacts list, 348–356, 349–352
deployment of podcasting, 240–242, 240–241 desktop, RSS feeds on, 178–179 developers collaboration sites, 33–35 Search, 341–342 diaries, online, 123 Digg.com, 331, 331 Dim Orange presence button, 284 Direct2Dell.com blog, 125 disabling RSS, 172 ‘‘Discovery Age’’ survey, 125 discussion forums, 306 consumption, 313–315 creating, 310–311, 310 goals, 308 moderation, 307 participation, 306–307, 313 SharePoint, 309–315, 310–313 social networks, 6 technologies, 307–308 views, 311, 312–313 Do Not Disturb presence button status, 284 Document Examiner, 80 document libraries in podcasting, 229–233, 231 document rating system, 68–69, 68–70 Document Workspace, 293–295 Dornfest, Rael, 165 downloadable files, 3
E
early adoption collaboration sites, 45–47 Facebook, 189 podcasting, 242 Web 2.0, 193–194 EBE (Enhanced Blog Edition), 158, 159 EC (External Connector) license, 130 ECM (enterprise content management) systems, 12 Edit Authentication page, 151, 155 Edit HTML Source option, 93 Edit Item option, 290 Edit page My Site, 204 wikis, 82–83, 88, 100 Edit Permissions option, 148 Edit This Page page, 82 Edit View page, 101 editing wiki pages, 82–83, 82–88 , 92–94, 103–104, 104 education and training collaboration sites, 44–45 mashups, 274–275 podcasting, 243 searches, 358 social networking, 205–206 videos for, 319 email discussions using, 308 posting to blogs with, 142 vs. RSS, 178 email addresses for discussion forums, 310–311 embed tags for mashups, 254
embedded chat, 315–316, 316 Enable advanced usage analysis processing option, 28 Enable anonymous access option, 151 Enable logging option, 27 Enable search query logging option, 28 Enable usage analysis processing option, 27 enabling presence, 288–291, 289–292 RSS, 172, 173 SharePoint lists, 172–175 enabling technologies, 18–23, 20–21 enclosure tags for podcasts, 216 end users. See users Enhanced Blog Edition (EBE), 158, 159 Enhanced Wiki Markup feature, 118 Enterprise 2.0,16 enterprise content management (ECM) systems, 12 enterprise contributions blogs, 157–160, 159–161 mashups, 264–266 podcasting, 244–245 RSS feeds, 184 social search, 358–359 wikis, 116–118 enterprise social computing, 11 blogs, 14–15, 124–128, 160, 161 business value, 17–18 collaboration benefits, 12 communication benefits, 11–12 Enterprise 2.0, 16 mashups, 15 sites for, 13–14, 14 social networking, 16–17 software platforms, 13 Web 2.0, 14, 15 wikis, 15 Entire Web Site option, 153 Entry Management window, 270–271, 270 environment configuration collaboration sites planning, 32 podcasting, 229–232, 229–231 EQ element in CAML, 260 equipment for podcasting recording, 219–220 escape valve, content tagging for, 57 etiquette for online communications, 300 events calendars, 325 Everyone privacy role, 199 Exchange Hosted Services, 23 Exchange Online, 23 Executive Management wiki page, 113 expiration dates of keywords, 339 Extensible Style Sheets (XSL), 350–356, 352 External Connector (EC) license, 130 external link tokens, 85–86
F
face-to-face communication, 303–304 Facebook, 9, 189, 191 Faceted Search, 358 Faculty role in social networking university example,206, 211
371
Page 371
Index
Schwartz bindex.tex V1 - 12/26/2008
Schwartz bindex.tex V1 - 12/26/2008
FAST search engine FAST search engine, 333 Favorites Center, 171 favorites folders, 52 Federal Election Commission, 249–251, 250 federated searches, 340 federation process, 280 Feed Properties dialog box, 175, 176 , 180, 181 feedback collaboration sites, 26–27 content tagging for, 57–58 podcasting, 218–219 FeedDemon application, 178–179 importing RSS subscriptions, 179–180, 180 properties, 180, 181 subscribing to feeds, 180–182, 182 feeds, RSS. See RSS feeds filters Search, 343 site columns, 63, 63 social search, 347 wiki pages, 99, 101, 105, 112–114 fixed keyword queries, 350, 350 Flash program, 20 Flat view for discussion forums, 311, 312 FlexWiki platform, 80, 83–84, 100 folksonomies for content tags, 52, 58–59 formal taxonomies for content tags, 52 Forrester Research whitepapers, 184 Fraunhofer-Gesellshaft company, 216 frequency of wiki alerts, 112 Frequently Asked Questions feature for wikis, 118 freshness podcast content, 244 wiki content, 115 FriendFeed application, 7, 10, 11 friends social communication, 8 social networks, 6 full crawls, 337
G
gaps in social search, 348 Generate All option, 271 Generate Definition File option, 271 George Mason University social networking. See social networking GET method, 22 Getting Started with My Site Web Part, 203 Global Media Content Survey, 303–304 globally accessible favorites folders, 52 goals for discussion forums, 308 Google page rank, 330–332 governance collaboration sites, 40–45, 41, 44 enterprise sites, 16–17 mashups, 249 podcasting, 243 graphical elements in collaboration sites, 40 Green presence button, 283
372
grid in Second Life, 305 Group Policy, 286, 289 Grouped Views in content tagging, 72 GT element in CAML, 260
H
Halasz, Frank G., 80 Half-Green/Half-Yellow presence button, 284 Half-Yellow/Half-Orange presence button, 284 Hall, Justin, 123 Hammersley, Ben, 216–217 hardware for podcasting, 244 Harvest Reporting Server suite, 160 headings tokens in wikis, 85–86 help chat for, 315 collaboration sites, 45 micro-blogging for, 322 Heuer, Tim, 184 Hewlett, William, 80 hidden relationships, content tagging for, 58 Hide Quoted Messages option, 311 hierarchies collaboration sites, 40–42, 41–42 organization, 201 History of Page feature, wikis, 100 history pages for wikis, 88, 95–97, 100, 105–106 Holliday, John, 261 Home Directory page, 226, 228 home purchases, photo stitching for, 317 ‘‘How to Handle a Crisis’’, 125 HTML (HyperText Markup Language) CRUD operations, 21 source mode, 93 wikis, 80 HTTP (Hypertext Transfer Protocol), 19–20 HTTP Headers page, 221 human judgment in searches, 334 humanizing companies, blogs for, 124–125 HyperCard technology, 80 hypertext concept, 80 HyperText Markup Language (HTML) CRUD operations, 21 source mode, 93 wikis, 80 Hypertext Transfer Protocol (HTTP), 19–20
I
IA (information architecture), 329, 346 IBM in virtual worlds, 305 ICQ application, 277 iFilters, 337 IIS (Internet Information Services), 221–222, 222 IM clients, 280 importing RSS subscriptions, 179–180, 180
Inactive presence button status, 284 incentives in social networking, 194 incremental crawls, 337 indexes for searches, 332, 337 informal folksonomy for content tags, 52 information architecture (IA), 329, 346 Information Technology (IT) department content tagging concerns, 58 podcasting support role, 243 inheritance with content types, 61 Insert Hyperlink dialog box, 136 installing SharePoint Solutions, 361–362 instant messaging etiquette, 300 insurance claims adjustment, 318 integrated searches in site columns, 63 Intelliseek, 126 interactive media, 303 discussion forums. See discussion forums embedded chat, 315–316, 316 overview, 303–304 photo stitching, 317–318 RoundTable, 304 summary, 326–327 virtual worlds, 304–305, 306 internal blogs, 129, 145–150, 150–154 internal link tokens, 85–86 internationalization with Atom, 167 Internet Explorer podcasting, 220–221, 220 RSS feeds, 176 Internet-facing blog settings, 150–156, 154–157 Internet Information Services (IIS), 221–222, 222 Internet Options window, 289, 290 invoices in SharePoint, 60–61, 60–61 IPIX photo stitching, 317 IT (Information Technology) department content tagging concerns, 58 podcasting support role, 243 italicized text tokens, 85–86 item limits for SharePoint lists, 174–175 iTunes, 221
J
JavaScript, 14, 18–20
K
key performance indicators (KPIs), 326 keywords Search, 338–339, 343–344 social search, 347 tag clouds, 55 knowledge base wikis alerts, 110–112, 118–119 change history, 95–97, 105–106 creating pages, 91–94, 101–102 editing pages, 92–94, 103–104, 104 secure pages, 112–113 Web Parts for, 108–109, 116–117 knowledge domains in social search, 345 knowledge sharing, internal blogs for, 129
7:21pm
Page 372
7:21pm
KPIs (key performance indicators) KPIs (key performance indicators), 326 Kraft Foods lawsuit, 126
L
labels, tagging. See content tagging Language Integrated Query (LINQ), 263 languages Atom, 167 mashups, 247 podcasts, 224 Larson, Daniel, 20 lawsuits from blogs, 127 Leadership team members, 31 legal liabilities for blogs, 127 level of expertise factor in podcasting audiences, 217 Li, Charlene, 184 libraries podcasting, 229–233, 231 query, 261 RSS feeds, 232–233, 232–234 Linden Labs, 305 link information in social bookmarking, 5 linkbacks in Enhanced Blog Edition, 158 LinkedIn site, 192 LINQ (Language Integrated Query), 263 LINQ to SharePoint project, 263 LINQ4SP project, 263 List Settings page blogs, 143 RSS, 172 List Versioning Settings screen, 143 ListGarden RSS Feed Generator program, 220 lists contacts, 348–356, 349–352 syndicating, 171–175, 171–176 Liu, Lawrence, 322 live chats, 305, 315–316, 316 Live service SharePoint integration, 285–286 success factors, 300 log files collaboration sites, 27, 39 queries, 28 social networks, 6 logical elements in CAML, 260 loss of control issues blogs, 127 content tagging, 58 Louis, Tristan, 216 LT element in CAML, 260 lurkers, 306
M
Manage Audiences page, 211 Manage Keywords window, 338, 338 Manage Permissions option, 145 Manage Posts option, 137 managed paths for collaboration sites, 40 managed properties for Search, 339 Manager team members, 31 Mann, David, 118
marketing blogs for, 125 content tagging, 76 micro-blogging, 322 RSS feeds, 184 viral, 46 Marks, Kevin, 216 mashups, 15 application definition files, 268–271, 269–270 Business Data Catalog, 268, 268 , 271–273, 271–275 data sources, 259–264, 261–262 databases for, 267–268 enterprise and community contributions, 264–266 OBA Composer, 266–267 overview, 247–248 Popfly, 249–254, 250–254 purpose, 248–249 SharePoint, 255–263, 256–257 , 261–262 success factors, 273–275 summary, 276 Web Parts, 255–259, 257 , 271–273, 271–275 Yahoo! Pipes, 252–254, 255 massively multiplayer online role-playing games (MMORPGs), 305 Maytag blog, 125 media interactive. See interactive media social, 3 MediaWiki platform, 80, 82–84, 83 , 100 Members page, 293, 295 Membership page, 294 memex device, 80 metadata content tagging, 59–61 RSS feeds, 165 Search, 339 social media, 3 wiki pages, 97–99, 107–111 XML, 264 micro-blogging, 321–323, 321–323 microphones for podcasting, 222 Microsoft Expression, 36 Microsoft Live, 125, 285 Microsoft Office OCS integration, 279, 292–295, 293–299 SharePoint integration, 285 Microsoft Office Online documentation, 45 Microsoft Office SharePoint Server (MOSS), 9 blogs, 130 collaboration sites, 27 content targeting, 323–324 Search, 337–338 social search, 346 Microsoft Silverlight, 20–21, 21, 249 Microsoft Silverlight Blueprint for SharePoint, 20 Microsoft Visio wireframes, 35 Middle Pane in My Profile page, 201 milestones for collaboration sites, 46–47, 46 MIME Type dialog box, 221–222, 222
Minsky, Marvin, 277 MMORPGs (massively multiplayer online role-playing games), 305 moderators for discussion forums, 307 Modify All Site Settings option, 39 Modify List RSS Settings page, 172 Modify Shared Web Part option, 74 modularity in RSS and Atom, 167 monitoring blogosphere, 126 Monster.com site, 329, 333 Moran, Thomas P., 80 MOSS. See Microsoft Office SharePoint Server (MOSS) MP3 files, 215–216, 222 MP3 To Wave Converter Plus program, 222 MSDN article ratings, 55–56, 56 multimedia files for podcasting, 219 music mashups. See mashups My Calendar, 203 My Colleagues privacy role, 199 My Home page, 199, 202–203, 202 My Inbox, 204–205, 205 My Manager privacy role, 199 My Page applications, 247 My Profile page, 199–202, 200–201 My Settings pages, 290, 291 My Site pages, 9, 196–199, 198 My Home page, 199, 202–203, 202 My Profile page, 199–202, 200–201 Search, 340 social networking university example, 213–214, 213 social search, 346 My Workgroup privacy role, 199 My Yahoo!, 247 MySpace, 189, 191
N Navigation Pane in My Profile page, 200 negative blog comments, 126–127 neglected blogs, 127 Netflix ratings, 56, 320 Netscape Navigator, 80 Network News Transfer Protocol (NNTP), 308 networks, social. See social networking New Blog Account dialog box, 139, 142 New Document dialog box, 139, 141 New SharePoint Site page, 92 New Social Streams feature, 160 New York Times blogs, 124 news bins in FeedDemon, 179 NewsGator company, 70, 184 newspaper format in FeedDemon, 178 NNTP (Network News Transfer Protocol), 308 No Color presence button, 284 nonvisible elements in collaboration sites, 40 NoteCards, 80 ‘‘Notecards in a Nutshell’’ (Halasz, Trigg, and Moran),80
373
Page 373
Index
Schwartz bindex.tex V1 - 12/26/2008
Schwartz bindex.tex V1 - 12/26/2008
OBA Composer (Office Business Application Composer)
O
OBA Composer (Office Business Application Composer), 266–267 OCS (Office Communications Server) product, 278–280, 279 with Office, 292–295, 293–299 with SharePoint, 285–286, 292–295, 293–299 summary, 300–301 offensive material in discussion forums, 307 Office OCS integration, 279, 292–295, 293–299 SharePoint integration, 285 Office Business Application Composer (OBA Composer), 266–267 Office Communication Online, 23 Office Communications Server (OCS) product, 278–280, 279 with Office, 292–295, 293–299 with SharePoint, 285–286, 292–295, 293–299 summary, 300–301 Office Live Meeting, 23, 304 Office SharePoint Server (OSS), 87 Offline presence button status, 284 Oleson, Joel, 40 Omea Reader, 164 One2One blog feature, 125 OneNote, 140–141, 146–148 online communications etiquette, 300 online diaries, 123 online help for collaboration sites, 45 online shopping, 315 Online SQL to CAML tool, 260 online status. See presence Only Me privacy role, 199 open corporate culture, blogs for, 126 Open site in browser from the Document Management bar in Word option, 295 open source blogs, 157–158, 159 Operations page, 27 OR element in CAML, 260 Orange presence button, 283–284 OSS (Office SharePoint Server), 87 Outlook 2007 for RSS feeds, 176, 177–178 Outlook Calendar, 278 Outlook New Message window, 294 Outlook profile for OCS access, 285 Outlook Web Access (OWA), 20 OWA (Outlook Web Access), 20 ownership of podcasting, 242–243
P
Packard, David, 80 page rank in Google, 330–331 Page Viewer Web Part, 258 panoramic pictures, 317–318 panoramic video and audio in RoundTable, 304 pawn icon, 281 PBX (Private Branch Exchange) systems, 278
374
People page, 169 People Search, 347, 348 department contacts list, 349–350 RSS, 168–169, 169–170 , 183, 183 People Search Results page, 170 People Search Web Part, 349–350 Permission Levels option, 146 permissions blogs, 134, 144–150, 150–154 collaboration sites, 40, 42 Permissions for this list option, 148 Permissions page, 153, 156 Persistent Chat, 323 personal access level in presence, 282 personal connections in micro-blogging, 322 personality clashes in content tagging, 59 personalization in user profiles, 9 photos My Home page, 202 social networks, 5 stitching, 317–318 Photosynth photo stitching, 317–318 Picture Library or List Settings option, 153 pitfalls micro-blogging, 322 wikis, 85 PKS (Podcasting Kit for SharePoint), 244–245 platform, SharePoint as, 70 podcasting, 215, 228 archives, 219–222, 220–221, 225 audience, 217–219, 222 FeedDemon, 179 hardware and software, 244 history, 215–217, 216 recording, 219–220, 222, 223 RSS feeds, 215–216, 219–220, 223–225, 224–227 , 232–233, 232–234 SharePoint, 228 content, 244 deployment and testing, 240–242, 240–241 enterprise and community contributions, 244–245 environment configuration, 229–232, 229–231 success factors, 242–244 Visual Studio projects, 234–237, 235–236 Web Parts, 233, 237–240 steps, 221–227, 222–228 summary, 245–246 Podcasting Kit for SharePoint (PKS), 244–245 policies collaboration sites, 43 discussion forums, 307 podcasting, 243 polycategorizing. See content tagging poorly tagged data, 59 Popfly mashup interface, 249–254, 250–254 portal structure in collaboration sites, 40–41, 41 POST method, 21–22
posting to blogs, 121, 136 email, 142 Live Writer, 141–142, 149 OneNote, 140–141, 146–148 web interface, 136–138, 137–140 Word, 138–140, 141–145 Posts: New Item screen, 136, 137 , 138 Power Query Web Part, 258–259 preplanning stage for collaboration sites, 29–38, 33 , 36 presence, 280–281, 280 access levels, 282–283, 283 enabling, 288–291, 289–292 overview, 277–278 presence button, 281, 283–285 SharePoint features, 287–288, 287 states, 281–282, 281 success factors, 300 summary, 300–301 presence button, 281, 283–285 Presence Unknown status, 284 print media, 303 privacy roles, 199 Private Branch Exchange (PBX) systems, 278 productivity content tagging, 57–58 presence, 286 virtual worlds, 305 Profile Import tool, 169 profiles. See user profiles project team members, 31–35, 33 property filters, 343, 347 public access level in presence, 282 public-facing blogs benefits, 124–126 risks, 126–128 public relations groups for collaboration sites, 43 public trust, blogs for, 124–125 publishing podcast files, 220, 226, 228 pulling content, 123, 259 pushing content, 123 PUT method, 22
Q
Quality Assurance Lead team members, 31 Quantum Link (Q-Link), 277–278 queries CAML, 261–263, 262 Search, 343–344, 350, 350
R
radio, 303 random text, 292 ranking searches, 332 ratings content tagging, 52, 59 MSDN articles, 55–56, 56 SharePoint documents, 68–69, 68–70 social media, 3 Read Page feature, 100 readers, RSS, 164
7:21pm
Page 374
7:21pm
social media reading wiki pages, 82–83, 82–88 real-time conversations in embedded chat, 315–316, 316 realistic expectations in collaboration sites planning, 30 Really Simple Syndication. See RSS feeds Recent Blog Post Web Part, 203 recording podcasting content, 219–220, 222, 223 videoconferences, 304 Red presence button, 284 Red Block Symbol presence button, 285 Redmond, Brian E., 123 relationships, content tagging for, 58 relevance podcasting content, 218–219 search, 170, 332 remote access technology, 277 remote procedure calls (RPC) web services, 23 Remove User Permissions option, 148 ‘‘Responding to a Crisis’’, 125 REST (Representational State Transfer) architecture, 21–23 Restore tool, 96 Results page, 260, 261 return of investment (ROI), 30 revenue from interactive media, 304 Rich Site Summary. See RSS feeds Right Pane in My Profile page, 201 risks in public-facing blogs, 126–128 ROI (return of investment), 30 RoundTable product, 304 RPC (remote procedure calls) web services, 23 RSS FeedReader, 184, 185 RSS feeds, 163 applications for, 176–178, 177 Atom differences, 166–168 benefits, 164, 164 blogs, 123 collaboration sites, 43 vs. email, 178 Enhanced Blog Edition, 158 history, 165 mashups, 254 people search, 183, 183 podcasting, 215–216 archives, 219–220 feed files, 223–225, 224–227 libraries, 232–233, 232–234 RSS acronym, 164 RSS FeedReader, 184, 185 SharePoint enterprise and community contributions, 184 lists subscriptions, 175, 176 , 178–183, 183 lists syndication, 171–175, 171–176 search results, 168–170, 168–170 success factors, 183–184 web.config file, 184, 186 Web Part properties, 185 , 186 specification versions, 166 structure, 165–166 summary, 186
Windows Vista Gadget Feed Headlines, 183, 183 RSS Viewer Web Part, 203, 255 rules for discussion forums, 307
S
Sans, Carlos Segura, 260 scalability of Search, 336 Scoble, Robert, 124–125 scope, Search, 338 Scripting News blog, 123 Search, SharePoint administrators, 338–339, 338–339 architecture, 335–337, 336 code snippet, 342 developers, 341–342 end users, 340–341, 340–343 overview, 329–330 queries, 343–344 Search center, 340 search committees, 357–358 Search Core Results Web Part, 351 search engine optimization, 125 Search Results page, 170 Search Server Express (SSX), 337 Search Web Parts, 341 searches algorithmic vs. social, 332–335, 333–334 FeedDemon, 179 relevance and ranking, 332 RSS feeds, 168–170, 168–170 SharePoint. See Search, SharePoint site columns, 63 social. See social search Second Life, 305, 306 security collaboration sites, 38–39, 39 wikis, 112–113 Security page, 289, 290 security zones, 286, 289–290 Send To option, 141 Shannon, Claude, 80 shared experience in FeedDemon, 179 Shared Service Providers (SSPs), 27 Administrator setup, 28, 28 profile store, 9 social networking university example, 207–208, 211 SharePoint blogs. See blogs chat, 315–316, 316 collaboration sites. See collaboration sites content tagging. See content tagging discussion forums, 309–315, 310–313 document rating system, 68–69, 68–70 JavaScript for, 14, 18–20 mashups, 255–263, 256–257 , 261–262 micro-blogging, 322–323 Microsoft Live integration, 285–286 OCS with, 285–286, 292–295, 293–299 as platform, 70 podcasting. See podcasting presence
complementary features, 287–288, 287 enabling, 288–291, 289–292 RSS. See RSS feeds search. See Search, SharePoint; social search social networking. See social networking videos, 319–320 wikis knowledge base. See knowledge base wikis overview, 86–90, 96–99 , 100 SharePoint administrators, 35 SharePoint AJAX Toolkit, 20 SharePoint architects, 31, 33–34 SharePoint Connector for Confluence, 117 SharePoint developers, 33–35 SharePoint Governance Plan (Oleson and Wagner), 40 SharePoint Online, 23 SharePoint Services SDK, 259 SharePoint Sites Web Part, 203 SharePoint Solutions installation, 361–362 SharePointPedia, 358 sharing information internal blogs, 129 wikis, 115–116 shopping, online, 315 Show Quoted Messages option, 311 sign post tokens, 85–86 Silverlight technology, 20–21, 21, 249 simplicity, site columns for, 63 SIP addresses, 285 site administrators, 31, 33 site collection administrators, 29, 29 , 39 site collection Created page, 132 site collection Features page, 29 site columns for content tagging, 63–64, 63–64 site contributors, 31 Site Settings page, 29, 39 site usage data, 27 SixDegrees site, 188–189 Skybox blog, 125 SmartPart templates, 229 SoapBox repository, 320 social bookmarking, 3–5, 6 social communication, 320–321 key performance indicators, 326 micro-blogging, 321–323, 321–323 overview, 7–8, 8 summary, 326–327 targeting content, 323–325, 324–325 social computing advocates, 46 social computing overview concepts, 2–8, 4, 6–8 enabling technologies, 18–23, 20–21 enterprises. See enterprise social computing history, 1–2 Internet applications, 10, 11 structure, 41–42, 42 summary, 23–24 user profiles, 8–10, 10 Social Computing page, 73 social distance in people search, 170 social media, 3, 4
375
Page 375
Index
Schwartz bindex.tex V1 - 12/26/2008
Schwartz bindex.tex V1 - 12/26/2008
social networking social networking business value, 192–194 enterprise social computing, 16–17 history, 188–189, 190 LinkedIn site, 192 MySpace and Facebook, 189, 191 overview, 5–6, 7 , 187–188 SharePoint, 194 My Inbox, 204–205, 205 My Sites, 196–203, 198 , 200–202 training users, 205–206 user profiles, 194–196, 196 success factors, 193–194 summary, 214 unique features, 192 university example, 206–207, 208 audiences, 211–213, 212 faculty SSPs, 211 My Site locations, 213–214, 213 student SSPs, 208 user profiles, 208–211, 208–210 social search, 330, 345 vs. algorithmic, 332–335, 333–334 benefits, 357 configuration, 345–346, 346 department contacts list, 348–356, 349–352 enterprise and community contributions, 358–359 examples, 330–331 gaps, 348 People Search, 347, 348 success factors, 357–358 summary, 359–360 weaknesses, 335 Social Sites system, 70 software enterprise social computing, 13 podcasting, 244 summary, 362–367 software services, 23 sorting site columns, 63, 63 sound-recognition in RoundTable, 304 Sound Recorder program, 222 sources of mashup data, 259–264, 261–262 spam control in Enhanced Blog Edition, 158 specification versions for RSS feeds, 166 SQL queries, 263, 344 SSPs (Shared Service Providers), 27 Administrator setup, 28, 28 profile store, 9 social networking university example, 207–208, 211 SSX (Search Server Express), 337 Staff role in social networking university example, 206 Start from existing view option, 72 states, presence, 281–282, 281 stitching, photo, 317–318 Stoneyfield Farms, 125 streaming files social media, 3 video, 320 StringBuilder class, 261 structure collaboration sites, 38–42, 39 , 41–42 RSS feeds, 165–166
376
STSADM tool, 361–362 Students role in social networking university example, 206, 208 Subject View for discussion forums, 311, 312 Subscribe to a Feed dialog box, 182, 182 subscriptions podcast files, 220–221, 220–221, 226 RSS feeds bringing to desktop, 178–179 creating, 180–182 importing, 179–180, 180 properties, 180, 181 settings, 175, 176 social bookmarking, 5 social networks, 6 Vista Gadget, 183, 183 Sun Microsystems blog policies, 128 support, end-user, 44–45 Sybil attacks content tagging, 59 social search, 335 synchronization, FeedDemon, 179 syndicating blogs, 321 SharePoint lists, 171–175, 171–176
T
Table of Contents feature for wikis, 118 tag clouds adding, 73–74, 74–75 CodePlex, 65–68, 66–67 community-driven, 330 delicious.com, 52–55, 53–55 description, 52 tagging. See content tagging TALK application, 277 Tanjay handset, 278, 279 targeting content, 323–325, 324–325 taxonomies for content tags, 52 team building, internal blogs for, 129 team members blog permissions, 145–150 collaboration sites, 31–35, 33 presence access level, 282 technologies discussion forums, 307–308 social computing, 18–23, 20–21 telephone systems integration, 278–279, 279 telepresence. See presence television, 303–304 Terman, Frederick, 80 testing collaboration sites, 37 podcasting, 240–242, 240–241 theming in Enhanced Blog Edition, 158 thesaurus for Search, 339 third-party products content tagging, 62, 70 instant messaging, 280 Thorp, Ed, 80 Threaded View for discussion forums, 311, 313 tokens, wikis, 82, 84–86, 95 topics for discussion forums, 306–307
trackbacks in Enhanced Blog Edition, 158 training collaboration sites, 44–45 mashups, 274–275 podcasting, 243 searches, 358 social networking, 205–206 videos for, 319 Trigg, Randall H., 80 Trott, Ben, 166 trust blogs for, 124 collaboration sites, 43 Trusted My Site Location option, 213 Trusted Sites dialog box, 290, 291 tweets, 321 Twitter application, 7, 321–323, 321 twittering, 321
U
UAT (user acceptance testing), 37 UI elements in collaboration sites, 40 unified communications, 278 Uniform Resource Locators. See URLs (Uniform Resource Locators) university social networking example, 206–207, 208 audiences, 211–213, 212 faculty SSPs, 211 My Site locations, 213–214, 213 student SSPs, 208 user profiles, 208–211, 208–210 updates RSS feeds, 180, 181 social networks, 6 Updating page, 180, 181 URL protocol, 22–23 URLs (Uniform Resource Locators) blogs, 139 collaboration sites, 40–41 queries, 344 RSS feeds, 223 Usage Analysis Processing page, 27, 28 Usage Analysis SharePoint timer job, 29 usage data for collaboration sites, 27 use cases, 35–37, 36 Usenet discussion forums, 308 user acceptance testing (UAT), 37 user adoption collaboration sites, 45–47, 46 OCS, 300 podcasting, 242 User Information List, 8–9 user profiles My Profile page, 199–202, 200–201 overview, 8–10, 10 searches, 337, 340 SharePoint, 194–197, 196 , 198 social bookmarking, 5 social communication, 8 social media, 3 social networks, 5 university social networking example, 208–211, 208–210 User Profiles and Properties page, 208, 208
7:21pm
Page 376
7:21pm
usernames in social communication usernames in social communication, 7 users collaboration sites feedback, 26–27 involvement, 31 support and training, 44–45 Search, 340–341, 340–343 training. See training Using RSS As A Marketing Tool (Li), 184
V
Validate by Direct Input option, 225 value, business content tagging, 57 social computing, 17–18 social networking, 192–194 videos, 319–320 wiki content, 115 variables in JavaScript, 19 vendor offerings content tagging, 62, 70 instant messaging, 280 Versioning Settings option, 143 versions RSS feeds, 166 wikis, 96–97, 105–106 videoconferencing, 304 videos, 300 FeedDemon, 179 online, 319–320 View Audience Properties page, 213 View Profile Properties option, 208 View RSS Feed option, 171, 175 views discussion forums, 311, 312–313 social media, 3 wikis, 99, 105–106, 115 virtual worlds, 304–305, 306 Vista Gadget Feed Headlines, 183, 183 Visual Studio projects, 234–237, 235–236 voice mail in OCS integration, 279
W
Wagner, Mark, 40 Wal-Mart blog experience, 127 watches in FeedDemon, 179 WAV files, 222 Web2.0, 1 business value, 192–193 characteristics, 79 chat, 316 content tagging, 52, 64 overview, 14–16, 15 REST, 21
social communication, 320–321 social search, 330, 345 web.config file, 184, 186, 230, 232 web feeds. See RSS feeds Web Front End (WFE), 20, 337 web interface for blog posting, 136–138, 137–140 Web Part developers, 34 Web Parts, 9 content tagging, 73 content targeting, 324–325, 324 department contacts list, 349–351, 350 , 352 free/busy information, 287 mashups, 255–259, 257 , 271–273, 271–275 microblogging, 322–323, 323 My Home page, 202–204 My Inbox, 204–205, 205 podcasting, 229–230, 233, 237–240 presence, 287–288, 287 RSS feeds, 185 , 186 search, 340–341 wikis, 108–109, 116–117 Web services, 23, 264 Web Services Description Language (WSDL), 23 web sites summary, 362–367 weblogs. See blogs webmasters for RSS feeds, 224 weekly summaries for wiki alerts, 112 WFE (Web Front End), 20, 337 Wiki Discussions feature, 118 Wiki Page Library, 90–94, 108 Wikipedia, 82 wikis, 79 alerts, 110–112, 118–119 change history, 95–97, 105–106 creating pages, 83–84, 91–94, 91–94, 101–102 editing pages, 82–83, 82–88 , 92–94, 103–104, 104 enterprise and community contributions, 116–118 enterprise social computing, 15 features, 81–85 filtering pages, 99, 101, 105, 112–114 metadata, 97–99, 107–111 overview, 80 pros and cons, 85–86, 95 purpose, 81 reading pages, 82–83, 82–88 secure pages, 112–113 SharePoint, 86–90, 96–99 , 100 success factors, 113–116 summary, 119–120 tokens, 84–86, 95 Web Parts for, 108–109, 116–117 WikiWikiWeb, 80 wildcard searches, 344, 358–359
Windows Common Feeds List, 179 Windows Internal Database, 129 Windows Live Messenger, 280–281 enabling presence from, 288–291, 289–292 need for, 285 Windows Live Writer, 141–142, 149 Windows SharePoint Services (WSS), 8 blogs, 129 Search, 337 wikis, 87, 100 Windows Vista Gadget Feed Headlines, 183, 183 Winer, Dave, 123, 165, 216 wireframes, 35–37, 36 Word blog posting with, 138–140, 141–145 OCS with, 293–295, 294–295 , 297–299 wordle.net, 52 ‘‘working in the cloud’’, 52–53 WSDL (Web Services Description Language), 23 WSPs (SharePoint Solutions Packages), 361–362 WSS (Windows SharePoint Services), 8 blogs, 129 Search, 337 wikis, 87, 100
X
XAML language, 20 XML files REST, 22 RSS feeds, 164–166, 220–225, 227 Search, 339 web services, 23 XML Web Part, 164, 258 XMLHttpRequest object, 20 XSL (Extensible Style Sheets), 350–356, 352
Y
YACAMLQT tool, 260 Yahoo! Messenger, 280 Yahoo! Pipes, 252–254, 255 Yellow presence button, 284 YouTube, 13–14, 14, 319–320
Z
ZOG database, 80 zones, 289–290
377
Page 377
Index
Schwartz bindex.tex V1 - 12/26/2008
Programmer to Programmer
TM
Take your library wherever you go. Now you can access more than 200 complete Wrox books online, wherever you happen to be! Every diagram, description, screen capture, and code sample is available with your subscription to the Wrox Reference Library. For answers when and where you need them, go to wrox.books24x7.com and subscribe today!
Find books on • • • • • • •
ASP.NET C#/C++ Database General Java Mac Microsoft Office
• • • • • • •
.NET Open Source PHP/MySQL SQL Server Visual Basic Web XML
www.wrox.com wrox_24x7_BOB_ad_final.indd 1
9/8/2007 4:26:08 PM
spine=.816"
Programmer to Programmer™
Social Computing with Microsoft SharePoint 2007 ®
Get more out of WROX.com
®
Social Computing with Microsoft SharePoint 2007 978-0-470-42138-3 Through real world examples, this book describes the fundamentals of Social Computing using SharePoint Server and discusses the different productivity and communication product enhancements, including blogs, wikis and technologies such as RSS and Mashups.
Professional Microsoft Office SharePoint Designer 2007 978-0-470-28761-3 Packed with step-by-step examples, sample code, and helpful screen shots, this resource begins with an overview of SharePoint Designer and SharePoint technology and then quickly moves on to teach you how to use SharePoint Designer to customize various aspects of your sites.
Real World SharePoint 2007: Indispensable Experiences from 16 MOSS and WSS MVPs
Interact
Chapters on Demand
Take an active role online by participating in our P2P forums
Purchase individual book chapters in pdf format
Wrox Online Library
Join the Community
Hundreds of our books are available online through Books24x7.com
Sign up for our free monthly newsletter at newsletter.wrox.com
Wrox Blox
Browse
Download short informational pieces and code to keep you up to date and out of trouble!
Ready for more Wrox? We have books and e-books available on .NET, SQL Server, Java, XML, Visual Basic, C#/ C++, and much more!
978-0-470-16835-6 This anthology of the best thinking on critical SharePoint 2007 topics is written by SharePoint MVPs — some of the best and most recognized experts in the field. Some of the topics they cover include: Branding, Business Data Connector, Classified Networks, Forms-based authentication, Information Rights Management, and Zones and Alternate Access Mapping.
Enhance Your Knowledge Advance Your Career
Professional SharePoint 2007 Development
978-0-470-11756-9 A thorough guide highlighting the technologies in SharePoint 2007 that are new for developers, with special emphasis on the key areas of SharePoint development: collaboration, portal and composite application frameworks, enterprise search, ECM, business process/workflow/electronic forms and finally business intelligence.
Professional SharePoint 2007 Web Content Management Development 978-0-470-22475-5 Use this book to learn such things as optimal methods for embarking on web content management projects, ways to implement sites with multiple languages and devices, the importance of authentication and authorization, and how to customize the SharePoint authoring environment.
Beginning SharePoint 2007 Administration: Windows SharePoint Services 3.0 and Microsoft Office SharePoint Server 2007 978-0-470-12529-8 SharePoint MVP Göran Husman walks you through everything from planning and installation to configuration and administration so you can begin developing a production environment.
Beginning SharePoint 2007: Building Team Solutions with MOSS 2007
Contact Us. We always like to get feedback from our readers. Have a book idea? Need community support? Let us know by e-mailing
[email protected]
978-0-470-12449-9 This book provides detailed descriptions and illustrations of the functionality of SharePoint as well as real-world scenarios, offering coverage of the latest changes and improvements to Microsoft Office SharePoint Server 2007.
spine=.816"
Wrox Programmer to Programmer TM
Social Computing with Microsoft SharePoint 2007 ®
®
®
Serving as an introduction to social computing applications, the book answers fundamental questions such as what are social computing applications, how can these applications be used in my organization, how do I manage a social computing project, and what are the major components and applications that currently exist? The authors walk you through the necessary steps for adopting social computing applications and they prepare you for the pitfalls you may face—and explain how to avoid them. You’ll discover that social computing applications can be written on any framework, or even on their own, and you’ll gain an understanding of the landscape of social computing as it relates to SharePoint 2007. With a strong comprehension of how to use SharePoint 2007 with social computing, you can promote collaboration and interaction between people in an organization through the use of blogs, wikis, RSS, mashups, and more.
What you will learn from this book
Enhance Your Knowledge Advance Your Career
Who this book is for This book is for anyone who is interested in using the concepts, applications, and implementations of social computing. Experience working with social computing is not necessary.
®
● How to use content tagging to effectively build solutions ● The benefits of using wikis ● Why your company should have a blog and how you can create it ● How to incorporate SharePoint 2007 with podcasting ● Various ways to use mashups ● The importance of using social computing search in order to have a successful application
Schwartz Ranlett Draper
Social Computing with Microsoft SharePoint 2007
Social computing is a fast-moving and constantly evolving technology that aims to increase communication, encourage collaboration, and enhance productivity among people and resources. This book covers the major concepts, applications, and implementations of social computing and shows you how they are built with SharePoint 2007 today.
Wrox Programmer to Programmer TM
Social Computing with Microsoft SharePoint 2007 ®
®
Implementing Applications for SharePoint to Enable Collaboration and Interaction in the Enterprise
Wrox guides are crafted to make learning programming languages and technologies easier than you think. Written by programmers for programmers, they provide a structured, tutorial format that will guide you through all the techniques involved.
www.wrox.com Recommended Computer Book Categories
$49.99 USA $59.99 CAN
Microsoft SharePoint Server Social Computing
ISBN: 978-0-470-42138-3
Brendon Schwartz, Matt Ranlett, Stacy Draper
Updates, source code, and Wrox technical support at www.wrox.com