<TABLE> <S> <C>

<PAGE>
<ARTICLE> 5
<LEGEND>
THIS SCHEDULE WHICH HAS BEEN RESTATED FOR SFAS 128 CONTAINS SUMMARY FINANCIAL
INFORMATION EXTRACTED FROM REGISTRATION STATEMENT ON FORM S1 AND IS QUALIFIED IN
ITS ENTIRETY BY REFERENCE TO SUCH FINANCIAL STATEMENTS.
</LEGEND>
<RESTATED>

<S>                             <C>                     <C>                     <C>
<PERIOD-TYPE>                   YEAR                   9-MOS                   6-MOS
<FISCAL-YEAR-END>                          DEC-31-1996             DEC-31-1997             DEC-31-1997
<PERIOD-START>                             JAN-01-1996             JAN-01-1997             JAN-01-1997
<PERIOD-END>                               DEC-31-1996             SEP-30-1997             JUN-30-1997
<CASH>                                       1,215,591               6,934,266               7,520,481
<SECURITIES>                                 1,867,896                 272,227                 272,227
<RECEIVABLES>                                2,767,331               3,319,400               2,644,616
<ALLOWANCES>                                   110,000                 199,000                 181,000
<INVENTORY>                                  1,683,550               2,634,408               2,093,922
<CURRENT-ASSETS>                             8,220,313              14,546,666              13,486,454
<PP&E>                                       1,383,807               1,911,230               1,503,404
<DEPRECIATION>                               1,434,795               1,629,859               1,569,476
<TOTAL-ASSETS>                               9,604,120              16,738,867              15,224,995
<CURRENT-LIABILITIES>                        2,359,229               3,321,705               2,301,905
<BONDS>                                              0                       0                       0
<PREFERRED-MANDATORY>                                0                       0                       0
<PREFERRED>                                          0                       0                       0
<COMMON>                                         8,200                   8,752                   8,734
<OTHER-SE>                                   7,236,691              13,408,410              12,914,356
<TOTAL-LIABILITY-AND-EQUITY>                 9,604,120              16,738,867              15,224,995
<SALES>                                     12,626,183              11,625,514               6,863,531
<TOTAL-REVENUES>                            13,126,183              12,875,514               7,863,531
<CGS>                                        4,797,516               3,951,075               2,285,785
<TOTAL-COSTS>                                4,797,516               3,951,075               2,285,785
<OTHER-EXPENSES>                             2,463,838               3,288,242               2,151,450
<LOSS-PROVISION>                                     0                       0                       0
<INTEREST-EXPENSE>                                   0                       0                       0
<INCOME-PRETAX>                              2,197,869               1,491,567                 861,780
<INCOME-TAX>                                   687,054                 566,782                 327,472
<INCOME-CONTINUING>                          1,510,815                 924,785                 534,308
<DISCONTINUED>                                       0                       0                       0
<EXTRAORDINARY>                                      0                       0                       0
<CHANGES>                                            0                       0                       0
<NET-INCOME>                                 1,510,815                 924,785                 534,308
<EPS-PRIMARY>                                      .17                    0.11                    0.07
<EPS-DILUTED>                                      .16                    0.10                    0.06


</TABLE>