<TABLE> <S> <C>
<PAGE>
<ARTICLE> 5
<LEGEND>
THIS SCHEDULE CONTAINS SUMMARY FINANCIAL INFORMATION EXTRACTED FROM THE
CONSOLIDATED BALANCE SHEETS AT JUNE 30, 2000 AND THE CONSOLIDATED STATEMENTS OF
OPERATIONS FOR THE SIX MONTHS ENDED JUNE 30, 2000 AND IS QUALIFIED IN ITS
ENTIRETY BY REFERENCE TO SUCH FINANCIAL STATEMENTS.
</LEGEND>
<MULTIPLIER> 1,000
<S> <C>
<PERIOD-TYPE> 6-MOS
<FISCAL-YEAR-END> DEC-31-2000
<PERIOD-START> JAN-01-2000
<PERIOD-END> JUN-30-2000
<CASH> 2,035
<SECURITIES> 10,392
<RECEIVABLES> 5,662
<ALLOWANCES> 393
<INVENTORY> 0
<CURRENT-ASSETS> 18,333
<PP&E> 10,338
<DEPRECIATION> 3,141
<TOTAL-ASSETS> 31,373
<CURRENT-LIABILITIES> 9,970
<BONDS> 122
0
0
<COMMON> 142
<OTHER-SE> 21,139
<TOTAL-LIABILITY-AND-EQUITY> 31,373
<SALES> 11,225
<TOTAL-REVENUES> 15,668
<CGS> 441
<TOTAL-COSTS> 15,127
<OTHER-EXPENSES> 0
<LOSS-PROVISION> 156
<INTEREST-EXPENSE> 41
<INCOME-PRETAX> (3,308)
<INCOME-TAX> 80
<INCOME-CONTINUING> (3,388)
<DISCONTINUED> 0
<EXTRAORDINARY> 0
<CHANGES> 0
<NET-INCOME> (3,388)
<EPS-BASIC> (0.24)
<EPS-DILUTED> (0.24)
</TABLE>