Archives
 
 
 
  Special
 
 
 
  About Us
 
 
 

Newsletter
Free E-mail Newsletter from BYTE.com

 
    
           
Visit the home page Browse the four-year online archive Download platform-neutral CPU/FPU benchmarks Find information for advertisers, authors, vendors, subscribers Request free information on products written about or advertised in BYTE Submit a press release, or scan recent announcements Talk with BYTE's staff and readers about products and technologies

ArticlesUnder Construction


Augus t 1995 / State Of The Art / Under Construction

Groupware success comes when developers and end users alike understand the technical hurdles that confront the launching of applications

Kelly Trammell

Pity the poor groupware developer. It's easy for managers and end users to dream up enterprise-wide applications that foster collaboration and seamlessly tie an organization's talent into efficient workgroups. But dig deeper, as developers must, and reality bites. Issues such as immature programming tools, data-synchronization complexities, effectively handling middleware layers, sorting out mail interfaces, and accommodating a myriad of network protocols can quickly turn those dreams into multiheaded workgroup applications from hell.

Developers will grapple with most of these issues until everyone starts using the same OS, mail-transport platform, an d network protocols. Because that's not likely to happen anytime soon, organizations need to understand the key technical hurdles that confront the building and implementation of groupware applications. This knowledge will give managers and end users more realistic ideas about what types of applications are possible and practical. At the same time, developers will be able to write more efficient applications, and they'll get them up and running faster.

Programming Limits

The first problem that groupware programmers face comes from development tools that often cater more to end users than to hard-core developers. For example, the Notes development environment is still loosely based on the Lotus 1-2-3 macro language from the early 1980s.

In this environment, the Notes @commands and @functions are the primary programming tools. These are macro commands that execute options from the Notes menus, call external programs, and run common algorithms and calculat ions. Any type of coding task that is not included as an @function (e.g., sequential number generation) becomes a long and complex macro-based script or requires a Notes API call. Both of them can be tedious to code and difficult to test and debug.

Unlike a procedural language, Notes cannot perform DO loops. Notes also lacks tools such as an integrated debugger, version control, and a report writer. As the rest of the development world moves toward class libraries and OOP (object-oriented programming) techniques, Notes offers developers more modest tools: common, reusable templates for building generic applications, such as a discussion database or forms-processing system.

As a result, developers face an interesting dilemma. They can use macro-based programming tools in Notes and rely on API calls to handle tasks that go beyond the capabilities of an @function. Or they can program the entire application in C++ and write a custom mail interface, multiplatform client, middleware layer, and data-sy nchronization code.

In the interests of time, budget, and user satisfaction, many programmers choose Notes. Most developers would rather give up control on the development side than write a complicated, specialized data-synchronization or replication routine.

Another important limitation of the Notes development environment is the way it restricts programmer and end-user interaction to forms for data input and views for displaying data. Items such as custom controls, ad hoc queries, event trapping, charts and graphs, and customized reports don't exist in this environment. To get around this, developers use low-level, custom DLLs and the Notes API.

Since last fall, several products, including Powersoft's PowerBuilder Library for Notes, Lotus's HiTest Tools for Visual Basic, and Revelation Technologies' OpenInsight, have appeared. They link event-oriented tools for connecting to and manipulating Notes data. They give developers control over the application, user interface, and data store to help them work around Notes limitations. Developers can build simple or complex custom front ends to Notes and regain control over the user interface and application.

Some tools, such as the Lotus Notes ViP (Visual Programming) environment, give developers control over Notes data replication and messaging. These tools let developers build new types of Notes applications, such as executive information systems, query builders, and decision support systems that use charts and graphs.

The biggest enhancements to Notes from a developer's perspective will come when release 4.0 ships (see "Competing Platforms"). Of most interest to developers will be native support for both X.400 and SMTP mail protocols, which will make exchanging mail and documents with external mail systems easier.

Lotus Script, a visual development tool, will bring additional controls and procedural-language capabilities similar to those provided in Visual Basic. New OLE 2.0 support in Notes 4.0 will simplify interapplicatio n integration. Finally, Notes 4.0 will support field-level data replication, to simplify data synchronization between remote clients and servers.

What to Do with Data

Workgroup applications often must receive data from multiple sources, perform some type of compiling or filtering process, and then replicate the processed information to distributed clients. Because these tasks happen periodically, synchronization and integration are critical issues. Even with new tools, APIs, and utilities available to integrate traditional data sources with workgroup tools, data integration remains a significant implementation hurdle. (For details about data replication, see the article "Replication's Fast Track".)

One of the problems is that groupware platforms, including Notes, handle data differently than do traditional mainframe- or SQL-based DBMSes. Notes collects and stores data in an unstructured format that is good for group collaboration and coordination but problematic for tran saction processing, querying, and reporting. Therefore, integration with these types of systems often becomes the linchpin in making a workgroup system work.

For developers, Notes provides some simple tools for importing and exporting data, but they are limited to transfers of structured or tabular text from spreadsheets and single-user databases. The next step up for developers is to write a C program that calls the Notes API to move data in and out of Notes databases. This is a good solution for solving specific problems, such as a one-time data migration or initial database load. However, this solution levies a high maintenance cost: You can rarely reuse these interfaces, and you must modify them whenever you change either side of the application or when the source of the data is different.

Another option is to use one of the new data-interchange tools that are available for Notes and SQL databases (see the sidebar "Strained Relations"). These middleware products offer developers point-and-cl ick mapping from source to target data and insulate the developer from having to work the underlying plumbing that is moving the data. These solutions work well as long as the source data you need is timely, stored in the correct format, and at the level of detail required by the target application.

Until recently, middleware products were server-based and expensive. They needed dedicated server hardware, were priced on a per-server basis, and required a great deal of custom programming. These products are generally limited to scheduled or batch migration and cannot support ad hoc queries or dynamic updates.

However, newer middleware tools such as Trinzic's InfoBroker provide dynamic access to foreign data sources, such as Oracle, SQL Server, or DB2. InfoBroker can run as an add-in task on the Notes server.

Better tools won't solve all your replication problems. Performance remains an overriding concern in any replication system you create. For example: A company wanted a Notes-based proj ect management application to pull project expenditures from a mainframe general ledger daily and then replicate the information to project managers in the field.

However, the general ledger could not report actual expenditures by project, and the general-ledger information was updated only weekly. The solution came in bypassing the general ledger and writing a query routine on the mainframe to extract and sort the expenditure data by project from a transaction file. The application then imported this extract file into the Notes database every night for distribution the next day to project managers throughout the company.

This worked because the amount of data being moved was way below 1 GB, which is technically the size limit for Notes 3.x databases. The practical limit from a performance standpoint is closer to 300 to 400 MB, depending on the number of users, the number of forms and views, and the complexity of the application. A query that pulls down 500 MB or more of data into a Notes databa se is like pointing a fire hose into a paper cup.

Mail Sort

Different E-mail systems and network protocols turn developers into systems integrators to build applications that work for everyone. Interoperability often requires developers to find lowest-common-denominator standards, which can limit an application's robustness and performance. It is common for organizations to have multiple, disconnected E-mail systems. Some companies may have 10 or more, although the long-term goal is to move to no more than three E-mail systems.

If you are writing an application that calls for mail integration, you must decide what level of integration is necessary. Mail integration can be as simple as converting mail messages to text and importing them into a common data store. Alternately, the integration approach taken can be as complex as initiating a work flow based on keyword triggers within the mail message.

A developer must figure out which mail standard and protocol to use . An alphabet soup of competing messaging standards and APIs exists, including MAPI, VIM (Vendor-Independent Messaging), MHS, X.400, and CMC (Common Mail Calls). Notes and cc:Mail support VIM. Using it, developers can write an application so that users forward cc:Mail messages to a Lotus Notes database, where the message text appends to a Notes form and initiates a work-flow process.

To perform the same tasks with other mail systems, such as MHS or MAPI, developers would run the message through a mail gateway for conversion to a workable format. Gateways are typically stand-alone processors that convert foreign addresses and message text to a common format for delivery by host mail systems.

Like any other conversion, this process is an inexact science. Mail systems have unique features and functions that other systems may not support. Developers must determine what trade-offs are being made by the gateway and determine the impact on the application.

Some common problems with mail gateways include message text becoming truncated or address and subject fields getting garbled or lost. In an application where the subject field routes a product-request form to the proper department, the gateway conversion must be clean and reliable. Some organizations continue to operate proprietary mail systems for which no gateway exists. If the application requires a mail interface, the developer usually has to write the conversion code as part of a front end to the workgroup application. The worst-case solution is for the application to convert the data to ASCII, parse the data to figure out the addressing and message text information, and then import the data into the target database.

Remember the End User

A groupware application can't be successful unless it's easy to use and scalable. Part of the design work involves meeting with end users to determine how they will access the system. Some people may connect into a central server; others use a LAN connection or a remote-acces s server. Developers need to determine how the application will handle each access method.

Today, it is also common for workgroup applications (e.g., help desks and customer service) to support a myriad of requests or questions from E-mail, fax, telephone, and wireless devices. By comparison, COBOL programmers rarely have to worry about segmenting the user population by access method or the layout of the enterprise network.

Each access type has some issues associated with it--capacity and bandwidth, compatibility, and security--that have to be sorted out as part of the application's design task. For example, it certainly doesn't make sense for 15,000 salespeople to dial into one or two remote-access servers in an evening.

A similar problem with capacity exists when remote users or servers are replicating Notes documents that have large file attachments or embedded images. Moving documents that are 2 MB or larger over a dial-up connection can take up 8 hours.

Scalability becomes an issue when the infrastructure for a groupware application was initially built for small pilot groups. Few organizations prepare an enterprise architecture plan to support current and future applications requirements. As a result, enterprise architectures that are planned around 100 users in three major cities have a difficult time scaling to 1000 users on three continents. Because the application drives infrastructure requirements, the developer often carries out the task to plan and build the infrastructure, which is often a larger project than writing the application itself.

Another common implementation problem is that not everyone in the workgroup may have the technology needed to run the application. The first question to ask when you get a request for a multiuser, multilocation application is whether all participants are on some common system (e.g., Notes, mail, or forms). The usual answer is, "Not yet, but probably by the end of the year."

Faced with that response, do you roll out a group ware product such as Notes before you develop your applications? If you do, you risk early user rejection because of no immediate benefit. Or do you develop essential applications and then deploy Notes? The time delays minimize your application's return on investment and eats away at the shelf life of your solution.

An effective answer is to split resources into a development team and a Notes deployment team. You should allow the developers to stay one step ahead of the deployers so that applications requirements can be fed to the deployers on a just-in-time basis.

As groupware matures, the issues outlined above should diminish with new workgroup tools and standards for interoperability. Until then, workgroup computing will remain a challenging but fertile area for developers.


WHERE TO FIND


Big Sky Technologies

San Diego, CA
(800) 488-4188
(619) 496-2100
fax: (619) 496-2119


Lotus Develop
ment Corp.

Cambridge, MA
(800) 346-1305
(617) 577-8500
fax: (617) 253-9150


Powersoft Corp.

Concord, MA
(800) 395-3525
(508) 287-1500
fax: (508) 287-1600


Revelation Technologies

Stamford, CT
(800) 262-4747
(203) 973-1000
fax: (203) 975-8744


Trinzic Corp.

Waltham, MA
(800) 234-7724
(617) 891-6500
fax: (617) 622-1544


PROGRAMMING TOOLS


PROBLEM               CHOICES                       TRADE-OFFS


Standard programming  Use Notes @functions or       Short development time
tools don't always    @commands; rely on API        and low costs yield
do the job.           calls for more sophisticated  modest, generic
                      tasks.                        applications with
                                                    limited capabilities.

                      Write a custom C++            Tight development
                      program with a                c
ontrol and more robust
                      proprietary mail              applications but
                      interface, middleware         increased complexity
                      layer, and data-              and development time.
                      synchronization code.




MULTIPLE DATA SOURCES


PROBLEM               CHOICES                       TRADE-OFFS


Importing and         Use bundled Notes tools.      Simple, but limited to
exporting data                                      structured or tabular text
from various                                        from spread sheets and
sources.                                            small databases.

                      Write a custom C              Good for solving specific
                      program that calls            problems versus code that
                      the Notes API to handle       can be reused in other
                      data import/export.           situatio
ns.

                      Use a third-party             Easy point-and-click
                      product.                      mapping for source and
                                                    target data versus costs
                                                    that can run as high
                                                    as $25,000 per server,
                                                    depending on the product.



MAIL INTEGRATION


PROBLEM               CHOICES                       TRADE-OFFS


Connecting multiple   Convert messages              Simple to implement but
disconnected          to text and import            effective for only a
E-mail systems.       them into a common            handful of different
                      data store.                   mail systems.

                      Use multiple gateways         Difficult to administer,
                      for mail-message              but a
ble to handle
                      conversion.                   multiple mail systems
                                                    at a relatively low cost.



Kelly Trammell is a partner with KPMG Peat Marwick's Strategic Services (Houston, TX), which focuses on workgroup computing and sales-force automation. You can reach him on the Internet or BIX at editors@bix.com .

Up to the State Of The Art section contentsGo to previous article: How Exchange Handles ReplicationGo to next article: Doin' the LN:DISearchSend a comment on this articleSubscribe to BYTE or BYTE on CD-ROM  
Flexible C++
Matthew Wilson
My approach to software engineering is far more pragmatic than it is theoretical--and no language better exemplifies this than C++.

more...

BYTE Digest

BYTE Digest editors every month analyze and evaluate the best articles from Information Week, EE Times, Dr. Dobb's Journal, Network Computing, Sys Admin, and dozens of other CMP publications—bringing you critical news and information about wireless communication, computer security, software development, embedded systems, and more!

Find out more

BYTE.com Store

BYTE CD-ROM
NOW, on one CD-ROM, you can instantly access more than 8 years of BYTE.
 
The Best of BYTE Volume 1: Programming Languages
The Best of BYTE
Volume 1: Programming Languages
In this issue of Best of BYTE, we bring together some of the leading programming language designers and implementors...

Copyright © 2005 CMP Media LLC, Privacy Policy, Your California Privacy rights, Terms of Service
Site comments: webmaster@byte.com
SDMG Web Sites: BYTE.com, C/C++ Users Journal, Dr. Dobb's Journal, MSDN Magazine, New Architect, SD Expo, SD Magazine, Sys Admin, The Perl Journal, UnixReview.com, Windows Developer Network