In this series I've looked at the basics of groupware and discussed the capabilities, installation, and administration of Collabra Share, Lotus Notes, and Microsoft Exchange. This article will focus on their extensibility.
Share uses the forum metaphor for its environment (see Screen 1). Forums are collections of shared documents on a particular subject that are organized into topics or discussion threads. Forums can store a wide variety of data, including simple and rich text as well as Object Linking and Embedding (OLE) objects. Rather than generate source code or ask you to write code for your application, Share lets you manipulate properties to regulate your forum's behavior.
These properties are stored internally to Share and are accessed via the forum properties menu. Creating a forum in Share is easy: You simply click the new forum button on the library toolbar, enter a forum name, choose an icon, and click on OK. You can customize it by adding a forum description, announcement text, access policy, encryption policies, thread and message duration, and an indexing and enrollment policy. Although setting up these forums is painless, you must stay within certain limits; you don't have the flexibility offered by Exchange or Notes.
Notes is a database-centric development environment. Every application in Notes uses at least one database. Each database is represented as an icon on a user's desktop (see Screen 2). You can design Notes applications from scratch, but Lotus includes more than 25 ready-to-use templates. A template in Notes parlance is a Notes database with a predefined structure (see Screen 3). This structure can consist of forms, views, macros, etc. Templates contain no documents. Creating a Notes application is easiest when you use the templates and then customize the resulting form.
Databases: The information stored in every Notes database is organized using four basic components: Forms, Fields, Documents, and Views.
Forms--Forms define the way a document will look. Forms can contain fields, static or label text, graphics, and even special Notes objects.
Fields--A field is an area on the form that contains a single type of data. The field's type determines its content: text, rich text (including multimedia), numbers, or time and date.
Documents--A document is what you get when you enter data into a form. When you open a database, you choose a form from the Compose menu. When the form is saved, the data is stored in the database.
Views--View displays documents in tabular format. Most databases will have several views that organize information in the ways most meaningful to you. For example, you could have a database of text documents stored in a reference application. You could create a view to show documents by author, date, and time created. You could also create a view to show documents by subject and category.
Applications: These can be divided into five major categories:
Broadcast--These applications are for information that needs to be available to a large audience. They are well suited to minutes from company meetings or to data from newswire services such as the Associated Press or Reuters. The information may initially be time-critical, but it generally becomes static.
Reference--These applications are similar to broadcast applications, except that the data stored in their databases is generally used for on-line reference.
Tracking--These applications contain data that is continually updated. The data comes from a variety of sources and is updated in real-time. An example would be customer-service tracking or project-status reports.
Discussion--These applications support both structured and unstructured dialog. If you have used a bulletin-board system or a CompuServe forum, then they will be familiar to you. Some sample applications are on-line customer support and a company-feedback section.
Workflow--These applications use special features of Notes (macros, functions, formulas, etc.) to automate everyday tasks such as form-routing and batch updates. Sample applications include conference-room scheduling and automatically routing purchase requests.
Formulas: Although you generally don't have to worry about formulas, you do have to think about them when you want to customize a database. Notes formulas are similar to mathematical formulas and include variables, constants, and operators. Notes uses formulas for six purposes:
- Calculate values displayed in documents
- Validate and translate new data in documents
- Select documents for views
- Change, add, or delete data in documents
- Determine correct form for data display
- Perform an action or task
@functions: Notes uses the @functions to provide specialized calculations and actions. These @functions are similar to those in Lotus 1-2-3. Unlike number-oriented spreadsheet @functions, Notes @functions are text-oriented. There are more than 100 Notes @functions. For example:
@DocChildren--Returns the number of direct-descendant documents for a document or category
@Accessed--Determines the last date/time a document was read or edited
@DDEInitiate--Initiates a conversation with a Dynamic Data Exchange (DDE) application and returns a conversation identification
Formula Keywords: Notes also provides keywords that perform special functions within a formula. They are:
DEFAULT--Assigns a default value to a field. This can be used to assign value to a missing field in a database for the duration of any computation. DEFAULT can also be used to assign dynamic defaults to fields.
ENVIRONMENT--Assigns a particular value to an ENVIRONMENT variable: ENVIRONMENT variables are stored on a per-user basis, and the values are maintained across Notes sessions. This can be useful if you want to generate sequential numbers or pass inherited information from one database to another.
FIELD--Changes the contents of an existing field or creates new fields. Make sure you use the FIELD keyword only with fields you store in the document, not with temporary fields.
REM--Allows you to add comments to your code. As convoluted as some of these @functions get, you'll need it.
SELECT--Defines criteria to be displayed in a view, copied by replication, or processed in a macro. If you use SELECT in a formula, you eliminate the need to select all the documents in a given database.
Although Notes doesn't have as full a programming language as Visual Basic (VB), its development environment is adequate for most applications. You can develop them rapidly if you base them on the design templates. Notes really shines in its cross-platform interoperability. The functions described all work with UNIX, Macintosh, PC, and other platforms that Notes supports.
When you compose or read a message in Exchange, you're using standard forms provided by Microsoft. With the Exchange Forms Designer (see Screen 4), you can create custom forms with custom fields that allow more than simple correspondence.
A form contains one or more fields that are used to display information contained in an item. There are three major components of an Exchange form: Forms, Windows, and Fields.
Forms: How a particular behaves is determined by its properties. They are set by the Exchange Forms Designer and are accessible in the forms properties dialog. A form can be used alone, in association with a folder, or as a part of an Exchange application.
Windows: A form can consist of two or more windows. The form window is used to contain and display the fields that you see and use. Each window has its own set of properties allowing the Forms Designer to control the behavior of each window.
Fields: A field is a named area on the form that displays information, accepts user input, or initiates an action.
Setting the forms properties is the most difficult part of form design. Many forms won't need to have their default properties changed. However, if you do need to modify the properties, it's considerably easier if you divide the properties into Forms, Windows, and Fields.
When you create and install a form, you generate a significant number of files. These files are stored in the directory where the form was created. They can be .MAK, .BAS, .FRM, the compiled form executable file, the form configuration file, or the Electronic Form Project file (.EFP).
The important file is the .EFP file. It contains a complete definition of the form, and it's the only file you need to build or rebuild the form. When you save a form in the Exchange Forms Designer, the .EFP file is what you're actually saving.
When you install a form, most of the drudgery is done for you. The VB 4.0 source code is generated (see Screen 5), and the form is compiled and registered with a folder of the Forms Registry.
The VB source code is available if you want to modify it and further extend Exchange's functionality. However, once you open any of the source files in VB 4.0, you cannot open the form with the Forms Designer.
If you think about all the VB programmers out there and all the VB add-ons, Exchange's choice of application development seems strong. With a little work, you can conceivably turn any VB application into an Exchange application. You can extend Exchange's options until they meet your needs and expertise. Figure 1 shows the different levels of extensions that you can incorporate into an Exchange program.
Share is designed to integrate with existing email packages. It can support either Vendor Independent Messaging (VIM)- or Messaging Application Programming Interface (MAPI)-based email programs. Share works very well with Lotus Notes. I did have trouble with Microsoft Exchange, but Collabra should have this fixed in the release scheduled to be available by the time you read this.
Collabra also sells add-ins that extend Share's functionality. The Internet Newsgroup Agent allows controlled secure access to all the Internet newsgroups. The news articles show up as items in Share's forums. Collabra also sells a replication agent that allows replication via the Internet. And Collabra offers a Lotus Notes Agent that provides two-way connectivity between Notes databases and Share forums.
Share fully supports OLE 2.0. You can easily insert objects from any other OLE 2.0-compatible application into your Share documents. Share 2.1, with enhanced Internet connectivity, should be out by the time you read this.
Notes integrates well with other Lotus products. The documentation provides you with blow-by-blow descriptions of how to exchange data between Notes and other Lotus products, including Improv, Ami Pro, 1-2-3, and Freelance. Notes supports OLE 2.0 as well as link edit launch. LEL is used in the UNIX environment; OLE works for the Macintosh and Windows.
Lotus offers some excellent add-in programs. Some of the more interesting ones are: Notes Simple Mail Transfer Protocol (SMTP) mail gateway, Internotes News Usenet news server, Internotes Web Publisher for connection to the Web, and Notes Skytel Pager Gateway. When you buy Notes, you receive a book called Lotus Notes Guide that has more than 230 pages of add-ins from Lotus and third-party vendors.
There are hundreds of third-party add-ins for Notes: They include VB/link, which allows you to create applications in VB that will access Notes, and a complete International Standards Organization (ISO) 9000 document-management system. Notes has the best third-party support of any of the products I reviewed. There are 115 companies listed in Lotus Notes Guide as providing training for Notes in some fashion. Here again, Notes is ahead of the competition.
Exchange comes integrated with Schedule+. If you use Windows for Workgroups (WFW), you're familiar with Schedule+. It's a useful product by itself. You can track appointments, set reoccurring appointments and alarms, and fill out the nice "to-do" list.
The real benefit comes when you connect to an Exchange Server and make your schedule available to other Exchange users. For example, if you want to schedule a meeting with five other people and you don't know what time would be best, the meeting wizard will have Schedule+ and Exchange pick a good time for you. The wizard lets you pick some dates (see Screen 6) and send a special email form to the other people. They respond either by accepting the time and date you proposed or by suggesting an alternative time.
The product integrates well with the Office 95 suite. Office 95 has hooks in Word and Excel that allow you to post files directly to Exchange folders. In addition, you can use WordMail, which is a subset of Word, to edit all your Exchange messages. Embedding objects into your documents is a breeze due to support for OLE 2.0, and Exchange can handle files from Paint objects to .AVI video flawlessly.
Exchange comes with several mail connectors. They allow you to send email to and from systems not running Exchange. The version I reviewed (Beta version 2.0 patch release A) came with a connector for X.400 and SMTP. I didn't try the X.400 connection, but the SMTP Internet mail connector works well. Advanced features in the Exchange Client, such as Inbox Assistant and Outbox Assistant, make routing, filing, and retrieving email quick and easy, even if you're not present.
There are plenty of utilities with Exchange, including an easy-to-use migration tool to migrate the Novell Bindery, MS-Mail 3.X for PCs, MS-Mail for AppleTalk, a Windows NT user list, and an ASCII file with user names for Exchange mailboxes. Another utility, the Exchange Optimizer, is handy and ensures that Exchange is set to run optimally on your hardware and software configuration. I think you'll find Load Simulator invaluable for capacity planning. It actually applies a synthetic workload to your Exchange Server based on criteria you supply. It could be a great tool to justify that new multiprocessor Compaq Proliant, quad-processor MIPS, or Alpha system.
On the Move
Each of these packages is a fine piece of software in its own right. Collabra Share and Lotus Notes are available today: Share 2.1 will be available when you read this, and Notes 4.0 is due out in early January of this year. Microsoft Exchange is in final beta testing and should be released by press time. It supports Intel, Alpha, and MIPS.
I'd like to see Lotus and Collabra follow Microsoft's move toward platforms other than Intel-based machines. I'd also like to see Microsoft include PowerPC among the platforms for Exchange.
Collabra Software * 800-474-7427
Lotus Development * 800-346-1305
Microsoft * 206-882-8080