Using Objects to Implement Office Procedures 1

Office information systems (OISs) provide facilities for automatically triggering procedures when certain conditions become true or particular events tak ep lace such as receipt of mail. Such systems are characterized by a high degree of parallel activity that cooperates with but may run independently of user processes. Traditional high-leve lp rogramming languages do not readily capture this sort of beha viour .T his makes building a customized OIS a painful process. "Objects" are entities with contents and a set of rules describing their use. We believe that objects are a useful primitive for designing and building such systems quickly. 1. Intr oduction An office information system is a computer system that models the activities of an office. One would expect to find that the objects defined in an OIS parallel the real objects in a physical office such as desks or workstations, memos, forms, telephones, calculators, tables, mail trays and so on. An OIS presents a uniform medium in which to represent the objects in an office thus permitting the automation or partial automation of routine activities and providing the advantage of increased speed of communication. Automation in an OIS is enabled by permitting events to trigger other events. The receipt of a certain kind of message, for example, may trigger a procedure which automatically reads the message and responds to it. The creation or modification of an yo bject may also trigger an event. By specifying exactly what situations may trigger an event a user passes the responsibility of firing it to the system. What distinguishes an electronic office from a ph ysical office is that in it we may implement "intelligent" office objects. Such objects may be passive and merely constrain their appearance or range of values, or the ym ay be active and initiate more involved office procedures. These procedures need not be explicitly called in all cases. Instead, one might ask for an e vent to be triggered wheneve rap articular situation arises, without indicating what other events might possibly be responsible. "Objects" can be used to model intelligent office objects and office procedures in an easy ,n atural way. I ntelligent forms with the full range of f ield types and constraints can be specified. Standard form manipulations can also be easily defined. In addition, it is simple to define office procedures that are modelled on sequential scripts, finite automata or eve na ugmented Petri nets. The term object is a familiar one but also a notoriously imprecise one. It suggests at once a collection of similar concepts: abstract data types, intelligent messages, modules, actors [Hewi77], boxes [deJo80], data frames [Embl80], automatic procedures [TRGH81] and Smalltalk objects [BYTE81].