<TABLE> <S> <C>

<PAGE>
<ARTICLE> 5
<LEGEND>
THIS SCHEDULE CONTAINS SUMMARY FINANCIAL INFORMATION EXTRACTED FROM THE
CONOLIDATED INCOME STATEMENT, THE CONSOLIDATED BALANCE SHEETS AND THE
ACCOMPANYING NOTES TO THE CONSOLIDATED FINANCIAL STATEMENTS AND IS QUALIFIED IN
ITS ENTIRETY BY REFERNCE TO SUCH FINANCIAL STATEMENTS.
</LEGEND>
<RESTATED>
<MULTIPLIER> 1,000

<S>                             <C>                     <C>                     <C>
<PERIOD-TYPE>                   3-MOS                   3-MOS                   3-MOS
<FISCAL-YEAR-END>                          DEC-31-1997             DEC-31-1997             DEC-31-1997
<PERIOD-START>                             JAN-01-1997             APR-01-1997             JUL-01-1997
<PERIOD-END>                               MAR-31-1997             JUN-30-1997             SEP-30-1997
<CASH>                                           9,741                   8,491                   7,821
<SECURITIES>                                    11,865                  12,908                  13,352
<RECEIVABLES>                                   10,300                  12,324                  13,734
<ALLOWANCES>                                     1,025                   1,025                   1,055
<INVENTORY>                                      1,039                     736                   1,689
<CURRENT-ASSETS>                                33,449                  34,769                  37,833
<PP&E>                                           9,748                   9,464                  10,222
<DEPRECIATION>                                   5,368                   4,507                   4,948
<TOTAL-ASSETS>                                  37,829                  39,726                  43,107
<CURRENT-LIABILITIES>                            8,590                   9,244                  10,894
<BONDS>                                              0                       0                       0
<PREFERRED-MANDATORY>                                0                       0                       0
<PREFERRED>                                          0                       0                       0
<COMMON>                                             9                       9                      10
<OTHER-SE>                                      29,230                  30,473                  32,203
<TOTAL-LIABILITY-AND-EQUITY>                    37,829                  39,726                  43,107
<SALES>                                          6,316                   6,216                   8,486
<TOTAL-REVENUES>                                10,067                   9,252                  11,587
<CGS>                                            3,526                   2,478                   4,044
<TOTAL-COSTS>                                    3,526                   2,478                   4,044
<OTHER-EXPENSES>                                     0                       0                       0
<LOSS-PROVISION>                                     0                       0                       0
<INTEREST-EXPENSE>                                   0                       0                       0
<INCOME-PRETAX>                                    903                   1,354                   1,151
<INCOME-TAX>                                       226                     338                     288
<INCOME-CONTINUING>                                677                   1,016                     863
<DISCONTINUED>                                       0                       0                       0
<EXTRAORDINARY>                                      0                       0                       0
<CHANGES>                                            0                       0                       0
<NET-INCOME>                                       677                   1,016                     863
<EPS-PRIMARY>                                      .07                     .11                     .09
<EPS-DILUTED>                                      .06                     .09                     .08


</TABLE>