<TABLE> <S> <C>
<PAGE>
<ARTICLE> 5
<LEGEND>
THIS SCHEDULE CONTAINS SUMMARY FINANCIAL INFORMATION EXTRACTED FROM THE
CONSOLIDATED STATEMENTS OF FINANCIAL CONDITION OF REGISTRANT AS OF JUNE 30, 2000
(UNAUDITED) AND THE CONSOLIDATED STATEMENTS OF OPERATIONS OF REGISTRANT FOR THE
SIX MONTHS ENDED JUNE 30, 2000 (UNAUDITED) AND IS QUALIFIED IN ITS ENTIRETY BY
REFERENCE TO SUCH FINANCIAL STATEMENTS.
</LEGEND>
<S> <C>
<PERIOD-TYPE> 6-MOS
<FISCAL-YEAR-END> DEC-31-2000
<PERIOD-END> JUN-30-2000
<CASH> 6,253,000
<SECURITIES> 16,329,000
<RECEIVABLES> 10,322,000
<ALLOWANCES> 253,000
<INVENTORY> 432,000
<CURRENT-ASSETS> 0
<PP&E> 5,702,000
<DEPRECIATION> 1,437,000
<TOTAL-ASSETS> 51,970,000
<CURRENT-LIABILITIES> 0
<BONDS> 0
0
0
<COMMON> 8,125,000
<OTHER-SE> 27,194,000
<TOTAL-LIABILITY-AND-EQUITY> 51,970,000
<SALES> 18,847,000
<TOTAL-REVENUES> 20,852,000
<CGS> 13,723,000
<TOTAL-COSTS> 20,274,000
<OTHER-EXPENSES> 0
<LOSS-PROVISION> 126,000
<INTEREST-EXPENSE> 96,000
<INCOME-PRETAX> 578,000
<INCOME-TAX> 391,000
<INCOME-CONTINUING> 14,000
<DISCONTINUED> 693,000
<EXTRAORDINARY> 0
<CHANGES> 0
<NET-INCOME> 707,000
<EPS-BASIC> .09
<EPS-DILUTED> .09
</TABLE>