<TABLE> <S> <C>
<PAGE>
<ARTICLE> 5
<S> <C>
<PERIOD-TYPE> 3-MOS
<FISCAL-YEAR-END> DEC-31-2000
<PERIOD-END> JUN-30-2000
<CASH> 37,602,727
<SECURITIES> 0
<RECEIVABLES> 22,229,513
<ALLOWANCES> 1,042,132
<INVENTORY> 0
<CURRENT-ASSETS> 60,650,244
<PP&E> 40,144,782
<DEPRECIATION> 21,175,918
<TOTAL-ASSETS> 83,106,526
<CURRENT-LIABILITIES> 17,227,935
<BONDS> 458,922
0
0
<COMMON> 179,572
<OTHER-SE> 64,798,521
<TOTAL-LIABILITY-AND-EQUITY> 83,106,526
<SALES> 28,222,486
<TOTAL-REVENUES> 28,222,486
<CGS> 15,213,679
<TOTAL-COSTS> 15,213,679
<OTHER-EXPENSES> 8,500,753
<LOSS-PROVISION> 6,998
<INTEREST-EXPENSE> 21,406
<INCOME-PRETAX> 5,005,846
<INCOME-TAX> 2,042,000
<INCOME-CONTINUING> 2,963,846
<DISCONTINUED> 0
<EXTRAORDINARY> 0
<CHANGES> 0
<NET-INCOME> 2,963,846
<EPS-BASIC> .18
<EPS-DILUTED> .16
</TABLE>