This is for my Java friends using SQL Server.
Yesterday I went to the MSDN Event and got to see some presentations on SQL Server 2005 Reporting Services. While it is still in beta, it really looked great. SQL Server 2005 adds Web Services directly into SQL Server. So you dont need IIS to talk to a Web Services (SOAP) with SQL Server. A Java application could easily remotely call stored procedures or services on SQL Server using HTTP/SOAP.
Calling SQL Server over web services gets exciting because you can call Reporting Services on SQL Server. Reporting Services looks really powerful and easy to use. So you could use Reporting Services to create those pretty reports (without BizObjects or Crystal Reports), and display the results in your java front end (HTML and other formats are available).
Another nice feature of Reporting Services is the Report Builder. With this, you can export a "Model" of your database. This model contains the definitions of tables, views, relations that the end-user can use to create their own reports. The model lets you decide what tables the user should query in their reports. Then running Report Builder they can drag and drop columns to build reports. Very easy! What if they dont have Report Builder installed? No problem, MS has made it a "no touch install", which means you can simple follow a link on a webpage and the app gets installed and run. Very similar to Java's Webstart. Ok, so now the user has created the report design. In Report Builder, they can post the report design back to SQL Server Reporting Services (it uses secure HTTP/Soap webservices). Then the report is available for future use. Since Reporting Service is exposed as a WebService you can easily call it from your Java code. Super cool. It sure beats the things we had to do at my last job to get some very basic Crystal Reports functions into the application.