
<TABLE> <S> <C>

<PAGE>
<ARTICLE> 5

<S>                             <C>
<PERIOD-TYPE>                   YEAR
<FISCAL-YEAR-END>                          DEC-31-1999
<PERIOD-START>                             JAN-01-1999
<PERIOD-END>                               DEC-31-1999
<CASH>                                       3,030,000
<SECURITIES>                                         0
<RECEIVABLES>                               20,707,000
<ALLOWANCES>                                 (971,000)
<INVENTORY>                                  1,122,000
<CURRENT-ASSETS>                            26,397,000
<PP&E>                                      38,969,000
<DEPRECIATION>                            (17,109,000)
<TOTAL-ASSETS>                              75,064,000
<CURRENT-LIABILITIES>                       24,411,000
<BONDS>                                              0
<PREFERRED-MANDATORY>                                0
<PREFERRED>                                          0
<COMMON>                                    17,935,000
<OTHER-SE>                                           0
<TOTAL-LIABILITY-AND-EQUITY>                75,064,000
<SALES>                                     78,248,000
<TOTAL-REVENUES>                            78,248,000
<CGS>                                       46,526,000
<TOTAL-COSTS>                               46,526,000
<OTHER-EXPENSES>                            17,860,000
<LOSS-PROVISION>                                     0
<INTEREST-EXPENSE>                           2,151,000
<INCOME-PRETAX>                             11,715,000
<INCOME-TAX>                                 4,868,000
<INCOME-CONTINUING>                          6,847,000
<DISCONTINUED>                                       0
<EXTRAORDINARY>                                      0
<CHANGES>                                            0
<NET-INCOME>                                 6,847,000
<EPS-BASIC>                                       0.73
<EPS-DILUTED>                                     0.71


</TABLE>
