Home Page Icon
Home Page
Table of Contents for
Cover
Close
Cover
by Jon Udell
Practical Internet Groupware
Practical Internet Groupware
Foreword
Preface
Who Should Read This Book
Organization of This Book
Part I
Chapter 1
Chapter 2
Chapter 3
Chapter 4
Part II
Chapter 5
Chapter 6
Chapter 7
Chapter 8
Part III
Chapter 9
Chapter 10
Chapter 11
Chapter 12
Chapter 13
Part IV
Chapter 14
Chapter 15
Chapter 16
Part V
Appendix A
Appendix B
Conventions Used in this Book
Comments and Questions
Acknowledgments
I. Using Internet Groupware
1. The Conferencing Dimension
What Is Internet Groupware?
Shared Versus Annotated Data Stores
What’s Wrong with Email?
Groupware Nirvana and Reality
The Conferencing Dimension
Why Conferencing Matters
Lotus Notes, Web Bulletin Boards, and NNTP Newsgroups
2. Public Online Communities
Advent of the Promiscuous Newsreader
The Dynamics of Site-Specific Public Newsgroups
Online Focus Groups in Action
Managing Online Discussions
Making the Most of Discussions
Hybrid Web/NNTP Discussion Systems
Public Discussions in Perspective
3. Intranet Collaboration with NNTP and HTML
Using Local Newsgroups: An Overview
Conferencing and Email
You May Not Need What I Send You
What I Send You Now, You May Not Need Until Later
When You Do Need What I Sent, You May Have Forgotten That I Sent It
Group Spaces and Interpersonal Spaces Work Differently
Groups Need Privacy Too
If I Put It There, I’ll Be Able to Find It Later
I Don’t Have Time to File Things Properly
The Quest for a Read/Write Web Server
The HTML-aware Newsreader
Aggregating Web Content in Newsgroups
Newsgroups as Shared, Annotated Bookmark Files
Including Web content in Newsgroups
Referring to Newsgroup Messages
Following Newsgroup Hyperlinks
HTML Authoring Strategies
Using Images
Using images by reference
Using images by attachment
Using images by inclusion
Using Hyperlinks
Composing hyperlinks
Relabel links when appropriate
Don’t obsess about broken links
Reaching your Audience
The Lowest Common Denominator Is Pretty Good
Pick a Standard Browser
Use a Test Newsgroup for Experimentation
Specify the Audience
4. Information-Management Strategies for Groupware Users
Understanding and Using Scoped Zones of Discussion
Giving in Order to Receive
Inviting People into Discussions
URL-based invitations to newsgroups
Inviting people into web forums
Collaboration and Competition
Effective Packaging of Messages and Threads
Write Effective Titles
Compartmentalize Messages
Using Thread Hierarchy to Clarify Discussion
Use Lightweight Threads to Move from Discussion to Consensus
Use Thread Hierarchy to Organize Documentation
Using Messages to Conduct Polls
Method 1: Message-Based Polling with Parameterized mailto: URLs
Method 2: Message-based Polling Using a Polling Application’s Web API
Ask Not What the IT Department Can Do for Us
II. Groupware Docbases
5. Docbases as Groupware Applications
The Essential Simplicity of Internet Software
Semistructured Data
How Docbases Are Groupware Applications
Groupware Aspects of the BYTE Magazine Docbase
The BYTE Docbase Translator
Leveraging Context in the BYTE Docbases
Leveraging Context in Other Kinds of Docbases
The BYTE Docbase: From Markup to HTML
Translator results for a BYTE docbase page
Structured title
Tree-navigation widget
Section and category “more like this” pages
Autoactivated URL with referral tracking
Interface to partner site
Thumbnail illustrations
Automatic mailto: link activation
Up link
Next link
Comment link
Groupware Aspects of the BYTE Virtual Press Room
Single Point of Contact to a Group
Simultaneous Push/Pull
Layered Presentation
Electronic Storage and Retrieval
Scoped Collaboration
Groupware Aspects of the BYTE Public and Private Newsgroups
6. Docbase Input Techniques
An Overview of the Docbase System
Standard Parts Common to Every Instance of the Docbase System
Customized Parts Unique to Each Instance of the Docbase System
Anatomy of a Docbase Record
Data-collection Strategies
A Docbase Form Template
Using the Docbase Form Generator
Generating an Input Form
Receiving and Validating Docbase Records
Input Cleanup
Validation
Previewing Docbase Records
Storing Docbase Records
Another Use for CSS Tags
Transforming Docbase Records
Using HTML <meta> Tags
Mechanics of Docbase Record Storage
Assigning Reports to Analysts
Docbase Input in Perspective
7. Docbase Navigation
Introducing the Docbase Navigational Controls
Sequential Controls
Counters
Tabbed-Index Controls
Zen and the Art of Docbase Maintenance
Implementing HTML Tabbed Indexes
Gathering the Metadata
Building the Core Index Structure
Accumulating Tab Sets for Each Index
Sorting the Records and Tabs
To SQL or not to SQL?
Low overhead
Flexible schema
“Good-enough” indexing
Constructing the Tabbed-Index Pages
Single-page and multipage tabbed indexes
Emitting the tabbed-index pages
Dynamically Generating the Context-Sensitive Tabbed-Index Selector
Implementing Sequential Navigation
Dynamically Generating the Sequential Controls
THISAPP and THISDOC
NEXTDOC and PREVDOC
<OPTION>indexname
<OPTION VALUE=indexname>
The Docbase::Navigate Module
A Static Implementation of the Navigational Controls
Using Docbase::Indexer
Docbase Navigation in Perspective
8. Organizing Search Results
A Docbase’s Web API
URL Namespace Reengineering
Issues in URL Namespace Design
A Search Engine’s Web API
Web-Client Scripting
Multiple Engines, Multiple Docbases
Excite Versus SWISH
Exploiting URL Namespaces and Doctitle Namespaces
When URL and Doctitle Namespaces Don’t Suffice
An Implementation Plan
Finalizing the Search-Results Design
Generating the Results Display
Processing Search Results
Testing the Design with Sample Data
Variations on the Display Template
The Search::SearchResults Module
Plugging in SWISH-E
Running the SWISH-E Indexer
Classifying SWISH-E Results
The SWISH Search Driver
The Classifier Family Tree
Classifiers and Mappers
Inheritance and Polymorphism
Anatomy of a Mapper
A Specific Classifier
Anatomy of a Classifier
Plugging in the Microsoft Index Server
Working with Index Server Custom Properties
Dealing with Cached Properties
Using the .htx Template Language
Querying the Result Set Using SQL
Integrating Index Server into the SearchResults System
Exploiting Index Server’s Aggressive Indexing of Custom Properties
Using the optimized Mappers
Docbase Search in Perspective
III. Groupware Applications and Services
9. Conferencing Applications
Example 1: A Reviewable Docbase
Generate a Newsgroup Framework
Instrument the Deliverable Version of the Docbase
Generate a Feedback Form from a Template
Inject Comments Issuing from the Docbase Feedback Form into the NNTP Discussion Framework
Transforming an XML Repository into Reviewable Web Pages
You Can Easily Convert HTML to Equivalent XML
XML Means No More Custom Parsing Code
Perl’s XML::Parser Module Is Really Useful
XML and HTML Can Fruitfully Coincide
A Transitional Approach to XML Authoring Has Near-term Value
DTDs Don’t Have to Be Complex
Using a validating parser
Managing document structure: declarative versus procedural methods
Final Observations on the Transitional HTML/CSS/XML Approach
You can idealize the installed base
XML-ized HTML is a lot more valuable than plain HTML
DTDs can’t do everything
Instrumenting a Docbase for Collaborative Review
Inserting Link Targets into the Docbase
Inserting Comment Links into the Docbase
Creating the Discussion Framework
Generating a Reviewable Docbase Using Perl and XML::Parser
The StartTag( ) handler
The Text( ) handler
The EndTag handler
Uses and Limits of the Docbase Review Application
An Alternate, Email-based Comment Mechanism
Example 2: A Conferencing-Enabled Helpdesk Application
Advanced Newsgroup Scripting
Step 1: Rewriting Messages
Rewriting messages in situ
Step 2: Moving a Message
Step 3: Moving a Subtree
HelpDesk’s Ticket-Closing Function
Uses and Limitations of HelpDesk
10. Groupware Servlets
Why Server-Side Java Matters
Safe Memory
Simple and Portable Multithreading
Network Awareness
Java Object Storage
Servlet Efficiency
Java performance
Flexible Servlet-Hosting Options
The Polls Servlet
Making the Hard Things Easy
Making the Easy Things Hard
The GroupCal Servlet
GroupCal’s HTML Interface
Should users write HTML?
GroupCal’s data store
From simple serialization to object databases
Why groupware needs objects
GroupCal as a Web Component
Importing Data into GroupCal Using its Web API
Exporting Data from GroupCal Using its Web API
Connecting a Task Database to GroupCal
Groupware Servlets in Perspective
11. Membership Services
The Case for Internet Directory Services
The LDAP Consensus
A Subscriber-Based Notification System
The Hybrid Push/Pull Technique
Directory Options for the Docbase Notifier
Internal and External Populations
A Simple Perl-based Group Directory
A Data-Prototyping Strategy
Anatomy of the Docbase Update Notifier
Implementing Attribute-Based Docbase Subscription
An Alternate, Non-SQL Approach to Attribute-Based Subscription
Working with Users and Groups in the NT Accounts Database
Working with Users and Groups Using LDAP
Group Membership in Perspective
12. Authentication and Authorization Techniques
HTTP Basic Authentication
Shared Account Versus Individual Accounts
Basic Authentication for Apache
Group Authentication in Apache
Managing Larger Groups in Apache
Basic Authentication for IIS
Managing Larger Groups in IIS
Protecting Scripts in Apache
Protecting Scripts in IIS
Attribute-Based Access
An Authenticating Script for Apache
An Authenticating Script for IIS
A Pass-Through ISAPI Authentication Filter
An Attribute-Based Authorization Script
Scripted Authentication Using Netscape Directory Server
An Authorizing Docbase Viewer
Using Cookies to Authorize Access
Setting a Cookie
What to Put in a Cookie and for How Long
13. Deploying NNTP Discussion Servers
News Server Alternatives
Deploying INN on Linux
Connecting to INN and Creating Newsgroups
Controlling Access to Scoped Newsgroups in INN
Deploying the Microsoft NNTP Service
Controlling the Visibility of Newsgroups in MS NNTP
Protecting MS NNTP Newsgroups with SSL
Self-Signing a Server Certificate Using MS Certificate Server
Using Index Server to Search MS NNTP Newsgroups
Searching MS NNTP newsgroups securely
Deploying Netscape’s Collabra Server
Creating Users and Groups in Collabra Server
Creating Discussion Scopes in Collabra Server
Other Configuration Tasks for Collabra Server
Advertising Newsgroups to Users
Securing Collabra Server Newsgroups
Searching Collabra Server Newsgroups
Using NNTP Replication with Collabra Server
Deploying the MS Exchange NNTP Service
Collaboration among Heterogeneous Clients
Internet-style Groupware APIs
Creating and Publishing Exchange Public Folders
IMAP Public Folders Versus NNTP Newsgroups
IV. Advanced Internet Groupware
14. Automating Internet Components
The Object Web and Internet Groupware
Using Web APIs as Automation Interfaces
Pipelining the Web
Web Interfaces Versus GUI Interfaces
Thought Experiment: a Web-Style Win32 Application
Local and remote capability
Bookmarks
Pipelining
XML-RPC: a Next-Generation Web API
Anatomy of an XML-RPC Transaction
Other XML-Formatted Request/Response Protocols
Using Web APIs to Monitor and Test Groupware Applications
Baseline Mode Versus Test Mode
Testing Sequences of Actions
Testing a Complex Authentication Scenario
Reporting Test Results
From Quality Assurance to Monitoring
Aggregating and Repackaging Internet Services
A Technology News Metasearcher
Discovering the Web APIs
The metasearch strategy
Implementing the Newswire module
An LDAP Directory Metasearcher
15. Distributed HTTP
A Perl-Based Local Web Server
Platform Capabilities and Application Features
The dhttp System
A Developer’s View of the dhttp System
The Core serve_request( ) Method
Hello, World with dhttp
Into the Starting Gate
Connecting dhttp to SQL Data
A persistent connection to the database
Implementing Data-Bound Widgets
Namespace Completion
Implementing namespace completion with dhttp
Namespace completion driven by a tabbed index
Namespace completion driven by partial input
Failed namespace completion leads to data entry
Polymorphic HTML Widgets
Polymorphic data-bound HTML widgets in perspective
Event Bubbling
Networked dhttp
Services and Applications
Data Retrieval with dhttp
Extending the Data Viewer
Replicating Data
What Makes Records Unique?
What Happens in Case of a Replication Conflict?
Putting dhttp in Perspective
Anywhere, Everwhere Services
The Next Plateau
Replicating Code
Secure dhttp
Rethinking the Encrypted Channel
Secure Proxying
dhttp in the Windows Environment
Groupware and dhttp
16. Epilogue
Today’s Internet Groupware Opportunities
The Dynamics of Discussion
Building Web Docbases
Integrating Web and Messaging Components
Applications, Components, and Services
Data Prototyping and Object Persistence
Advanced Techniques
Next-Generation Internet Groupware
A Modest Proposal
V. Appendixes
A. Example Software
Kit for Chapter 4
The Polls Servlet
The Poll-Creating Form
The Poll-Creating Form’s Handler
Kits for Chapter 6 and Chapter 7
Contents of the Docbase Kit
Installing the Docbase Kit
Step 1: Running the Makefile.PL Script
Step 2: make (or nmake)
Step 3: make Test (or nmake Test)
Step 4: make Install (or nmake Install)
Reusing the Docbase Kit
Kit for Chapter 8
Kit for Chapter 9
Example 1: Reviewable Docbases
Requirement: the Perl XML::Parser module
Requirement: an NNTP server
Requirement: the Perl TinyCGI module
Requirement: the Perl Net::NNTP module
Example 2: HelpDesk
Requirement: an NNTP server
Requirement: Net::NNTP
Requirement: dhttp kit
Requirement: a DBI/DBD data source
Configuring the Apps::hd module for the HelpDesk app
Starting the HelpDesk app
Initializing the HelpDesk database
Using the HelpDesk application
Kit for Chapter 10
Kit for Chapter 11
Kit for Chapter 12
Requirements for the Authorization Example
Kit for Chapter 14
Quality Assurance Monitoring
Technology News Metasearcher
LDAP Search Aggregation
Kit for Chapter 15
1: dhttp Top-Level Scripts
2: Engine Components
3: Application Components
Enabling dhttp Applications
Starting dhttp and Running Plug-ins
Testing Code Replication
Testing Data Replication
Testing Proxying and Encryption
Basic Versus Advanced Encryption
B. Internet RFCs: A Groupware Perspective
Email: Core Infrastructure
Email: Fetching and Managing Messages
Email: Semistructured Documents
Email: Encryption and Authentication
News Infrastructure
Web: Core Infrastructure
Web: HTML
Web: URL Schemes
Calendaring/Scheduling
Chat
Security
Public Key Infrastructure (PKI)
Directory Services
Metadata and Resource Discovery
Miscellaneous
Index
Colophon
Search in book...
Toggle Font Controls
Playlists
Add To
Create new playlist
Name your new playlist
Playlist description (optional)
Cancel
Create playlist
Sign In
Email address
Password
Forgot Password?
Create account
Login
or
Continue with Facebook
Continue with Google
Sign Up
Full Name
Email address
Confirm Email Address
Password
Login
Create account
or
Continue with Facebook
Continue with Google
Next
Next Chapter
Practical Internet Groupware
Add Highlight
No Comment
..................Content has been hidden....................
You can't read the all page of ebook, please click
here
login for view all page.
Day Mode
Cloud Mode
Night Mode
Reset