Sorry for my ignorance, but even after reading the information, I'm trying to work out what server does. If it's mainly for display of reports on the web, doesn't one of the third-party addons cater for this?
2. I would compare the approach you describe to using Delphi and TPrinter to write reports. Why use ReportBuilder when you can just write your own?
After our vendor showcase at BorCon, a developer who had been trying to build a custom server solution told that me that the RB Server Edition was the most impressive thing that he had seen the entire week!
3. For the developer the Server Edition provides a high performance RAD solution. That means huge cost savings on development time. That means greater performance than with a server solution that is cobbled together. For the end-user it means a higher quality client experience - that as much as possible duplicates the experience presented by a standard Windows application.
a. Performance: The report application server can incrementally generate report pages on demand, cache session information, and automatically garbage collect sessions that have timed out. It can execute on the same machine as the WebTier or on a different machine. Thus you can offload processing from the web machine to report servers machine or to a farm of report server machines. If the report application server encounters a fatal exception the server will automatically be restarted.
The WebTier handles management of web sessions, stores state information and enables page on demand generation of web pages and garbage collects web sessions. In addition the WebTier generates a very high quality web interface (i.e. HTML/Javascript) that will have to see to believe.
b. Windows Client: If the remote client is a Delphi application, the Server Edition provides the same Report Explorer and Print Preview interface found in standard RB Applications. And it supports RB's AutoSearch feature that generates an ask-at-runtime dialog.
c. Web Client: The RB WebTier is capable of generating an HTML/Javascript interface the duplicates the Windows client interface. When we showed this off at BorCon customers thought it was an ActiveX interface! And the Web client supports the AutoSearch feature as well.
4. Customers who have tried to build server solutions know the value of what we are offering. Below is a quote that one of our customers posted to the general newsgroup yesterday. (Look for a post titled RB and ASTA if you want to read the entire message.)
"..We created our own web reporting solution using ReportBuilder Pro starting almost exactly two years ago. At the time, there weren't any web report server products available (other than Crystal, and I won't even go there). Four developers (including myself) spent nearly a thousand man-hours (952 hours to be exact) researching, designing, writing, and debugging our web reporting system. That doesn't count the time our QA engineers spent testing it, which was probably another 400-500 hours..." ML
----------------------------------------------------------- R B S E R V E R E D I T I O N -----------------------------------------------------------
Server Edition Overview ------------------------ The Server Edition makes it easy to create and deploy report applications to the web. Using basic component configuration you can get a Windows service-based report server application up and running, a web application up and running, and have users previewing reports in a web browser in no time. And you can do it all without having to master multi-threaded programming, Windows Services, Windows Sockets, Windows System Tray applications, COM, I/O Completion Ports/Worker Thread Pools, XML, SOAP Services, ISAPI Thread Pools, XHTML, or JavaScript. Sound interesting? Then read on...
1. ReportBuilder Services
ReportBuilder Services is a Windows service designed to act as a host to a report server application. This two-piece architecture isolates a report server application in its own process, allowing it to be started and stopped from the service. By default, the service is configured to start automatically each time the server machine boots. Once the service is started, it launches the report server application. The service is also configured to automatically restart the report server application in the event of a crash.
To install ReportBuilder Services, you simply run the included RBWinService.exe installation program. The program installs and starts the Windows service and deploys a server management application, accessible from both a system tray icon and a Start menu item. You can then access the management application and point the Windows service to the location of your report server application.
2. Report Server Component
The Report Server component implements a multi-threaded report server that can execute reports and deliver report pages to clients. You build a report server application by dropping a ReportServer component on a Delphi form, creating data modules which contain ReportVolume components (explained next) and compiling the application. And that's it; you can build an entire server application without writing any code. Once the application is built you can then use ReportBuilder Services to quickly and easily designate it as the official report server.
The Report Server is implemented using an I/O completion port/worker thread architecture that optimally manages persistent report sessions to maximize performance and throughput. The server can generate reports incrementally (that is, page-by-page) in order to optimize response time. Pages are cached on the server and on the client to minimize network traffic. The amount of time that passes before a session expires (and the cache is cleared) can be controlled via the TimeOut property.
3. Report Volume Components
Report Volume components are used to register a collection of reports with the server. The server uses a report catalog to build and store the tree structure which forms as the various reports are registered.
There are several types of report volume components, one for each of the ways that reports are most commonly deployed. For report templates stored in file directories or database tables, there is the ReportTemplateVolume. For reports stored in the Explorer database structure (i.e. RB end-user reports), there is the ReportExplorerVolume. For report archives stored in file directories or database tables, there is the ReportArchiveVolume. For reports stored on a Delphi form, there is the "behind-the-scenes" report volume object. The bottom-line: wherever or however your reports are deployed, there is a simple way to register them with the server, usually without writing a single-line of code.
Report volumes are also dynamic; as you add reports to a designated file directory or database storage medium, the report server will automatically add or remove those reports from the catalog. Yes, this does mean that you can deploy reports to the server without bringing the server down.
4. Windows Rich Client Components
With one ClientReportExplorer, one ClientReport, and one line of code, you can build a full-featured Delphi reporting application which provides access to reports on a remote server. The ClientReportExplorer uses a Windows Explorer style interface to display a folder tree structure of available reports. The ClientReport makes it easy to preview and print. When previewing a report that requires search criteria, the AutoSearch dialog is automatically displayed and any search values entered are returned to the server. The report is then generated and pages are returned.
5. WebTier Component
When compiled as part of a web application, the web tier acts as a middle tier, providing access to a report server application from a web browser. A user may select reports from a folder tree structure, enter search criteria when applicable and preview report pages from the web browser. All of these capabilities are made possible via a zero-client application (100% JavaScript/XHTML) generated by the web tier. The zero-client is compatible with Netscape 4, Netscape 6, and Internet Explorer (5 and 6.)
Designed to integrate seamlessly with Delphi's various web technologies, the web tier requires only a single line of code to compile successfully as part of an ISAPI DLL or Apache Shared Module. ASP is also a snap, as a single COM interface (easily generated with the help of Delphi's ActiveX support) is all that is needed to deploy the web tier as part of an Active Server Page.
The web tier implements a sophisticated concept of "session", grouping all of the communications received from a single web browser under a single session object. In order to optimize performance, both the state of the session, and any report output generated for the session are cached. For example, assume a user previews report A, then report B, then returns again to report A. The web tier would manage all of this activity as a single session, and whenever possible, would return pages from the session cache, instead of re-requesting them from the report server application. The amount of caching which occurs, the TimeOut for a session and the frequency with which garbage collection is performed on expired sessions are just a few of the configuration options available on the web tier.
Implemented as a set of Delphi classes, the WebTier consists primarily of objects which descend from TrsWebContentProvider. Web content providers communicate with the report server application, converting the response from SOAP/XML to native Delphi objects to XHTML/JavaScript, suitable for consumption by a web browser. The content providers included in the Server Edition make it easy to provide a complete, robust, and professional web reporting solution right out of the box. You can customize the HTML created by the web tier by creating your own content provider descendants.
6. RB ISAPI Thread Pool
The Server Edition includes a custom ISAPI thread pool, implemented using an I/O completion port/worker thread architecture designed to optimally manage incoming requests. The thread pool queues requests based on session, and can eliminate redundant requests. This greatly improves both throughput and performance, as the web tier passes only relevant requests through to the report server application.
7. Server Farm
The web tier can be configured to utilize any number of report servers to maximize scalability. This allows the web tier to scale gracefully as a greater number of users access reports. There are two load balancing options provided: Round Robin and Minimum Load. Round Robin simply steps through a list of servers, each time returning the next server in the list. Minimum Load checks the CPU usage of each server (based on a sixty second moving average), and returns the server with the minimum usage.
8. Documentation, Help & Examples
The Server Edition Developer's Guide is provided in PDF format. The concepts behind the web server are covered, along with numerous step-by-step tutorials that guide you through everything from creating a report server application to deploying the web tier with a server farm. The online help is a reference for all of the components and major classes which make up the product. The help is integrated with the Delphi help and is accessible via the help menu or the F1 key. Numerous examples of report server applications, web applications and client applications are also provided.
Best regards,
Nard Moseley Digital Metaphors www.digital-metaphors.com
Comments
1. Best answer is to download the RB Server Trial Edition and spend an
hour or two running the demos.
http://www.digital-metaphors.com/server/TrialEdition.html
2. I would compare the approach you describe to using Delphi and
TPrinter to write reports. Why use ReportBuilder when you can just write
your own?
After our vendor showcase at BorCon, a developer who had been trying to
build a custom server solution told that me that the RB Server Edition
was the most impressive thing that he had seen the entire week!
3. For the developer the Server Edition provides a high performance RAD
solution. That means huge cost savings on development time. That means
greater performance than with a server solution that is cobbled
together. For the end-user it means a higher quality client experience -
that as much as possible duplicates the experience presented by a
standard Windows application.
a. Performance: The report application server can incrementally generate
report pages on demand, cache session information, and automatically
garbage collect sessions that have timed out. It can execute on the same
machine as the WebTier or on a different machine. Thus you can offload
processing from the web machine to report servers machine or to a farm
of report server machines. If the report application server encounters a
fatal exception the server will automatically be restarted.
The WebTier handles management of web sessions, stores state information
and enables page on demand generation of web pages and garbage collects
web sessions. In addition the WebTier generates a very high quality web
interface (i.e. HTML/Javascript) that will have to see to believe.
b. Windows Client: If the remote client is a Delphi application, the
Server Edition provides the same Report Explorer and Print Preview
interface found in standard RB Applications. And it supports RB's
AutoSearch feature that generates an ask-at-runtime dialog.
c. Web Client: The RB WebTier is capable of generating an
HTML/Javascript interface the duplicates the Windows client interface.
When we showed this off at BorCon customers thought it was an ActiveX
interface! And the Web client supports the AutoSearch feature as well.
4. Customers who have tried to build server solutions know the value of
what we are offering. Below is a quote that one of our customers posted
to the general newsgroup yesterday. (Look for a post titled RB and ASTA
if you want to read the entire message.)
"..We created our own web reporting solution using ReportBuilder Pro
starting
almost exactly two years ago. At the time, there weren't any web report
server products available (other than Crystal, and I won't even go
there).
Four developers (including myself) spent nearly a thousand man-hours
(952
hours to be exact) researching, designing, writing, and debugging our
web
reporting system. That doesn't count the time our QA engineers spent
testing it, which was probably another 400-500 hours..." ML
-----------------------------------------------------------
R B S E R V E R E D I T I O N
-----------------------------------------------------------
http://www.digital-metaphors.com/server/TrialEdition.html
Server Edition Overview
------------------------
The Server Edition makes it easy to create and deploy report
applications to the web. Using basic component configuration you can get
a Windows service-based report server application up and running, a web
application up and running, and have users previewing reports in a web
browser in no time. And you can do it all without having to master
multi-threaded programming, Windows Services, Windows Sockets, Windows
System Tray applications, COM, I/O Completion Ports/Worker Thread Pools,
XML, SOAP Services, ISAPI Thread Pools, XHTML, or JavaScript. Sound
interesting? Then read on...
1. ReportBuilder Services
ReportBuilder Services is a Windows service designed to act as a host to
a report server application. This two-piece architecture isolates a
report server application in its own process, allowing it to be started
and stopped from the service. By default, the service is configured to
start automatically each time the server machine boots. Once the service
is started, it launches the report server application. The service is
also configured to automatically restart the report server application
in the event of a crash.
To install ReportBuilder Services, you simply run the included
RBWinService.exe installation program. The program installs and starts
the Windows service and deploys a server management application,
accessible from both a system tray icon and a Start menu item. You can
then access the management application and point the Windows service to
the location of your report server application.
2. Report Server Component
The Report Server component implements a multi-threaded report server
that can execute reports and deliver report pages to clients. You build
a report server application by dropping a ReportServer component on a
Delphi form, creating data modules which contain ReportVolume components
(explained next) and compiling the application. And that's it; you can
build an entire server application without writing any code. Once the
application is built you can then use ReportBuilder Services to quickly
and easily designate it as the official report server.
The Report Server is implemented using an I/O completion port/worker
thread architecture that optimally manages persistent report sessions to
maximize performance and throughput. The server can generate reports
incrementally (that is, page-by-page) in order to optimize response
time. Pages are cached on the server and on the client to minimize
network traffic. The amount of time that passes before a session expires
(and the cache is cleared) can be controlled via the TimeOut property.
3. Report Volume Components
Report Volume components are used to register a collection of reports
with the server. The server uses a report catalog to build and store the
tree structure which forms as the various reports are registered.
There are several types of report volume components, one for each of the
ways that reports are most commonly deployed. For report templates
stored in file directories or database tables, there is the
ReportTemplateVolume. For reports stored in the Explorer database
structure (i.e. RB end-user reports), there is the
ReportExplorerVolume. For report archives stored in file directories or
database tables, there is the ReportArchiveVolume. For reports stored
on a Delphi form, there is the "behind-the-scenes" report volume
object. The bottom-line: wherever or however your reports are deployed,
there is a simple way to register them with the server, usually without
writing a single-line of code.
Report volumes are also dynamic; as you add reports to a designated file
directory or database storage medium, the report server will
automatically add or remove those reports from the catalog. Yes, this
does mean that you can deploy reports to the server without bringing the
server down.
4. Windows Rich Client Components
With one ClientReportExplorer, one ClientReport, and one line of code,
you can build a full-featured Delphi reporting application which
provides access to reports on a remote server. The ClientReportExplorer
uses a Windows Explorer style interface to display a folder tree
structure of available reports. The ClientReport makes it easy to
preview and print. When previewing a report that requires search
criteria, the AutoSearch dialog is automatically displayed and any
search values entered are returned to the server. The report is then
generated and pages are returned.
5. WebTier Component
When compiled as part of a web application, the web tier acts as a
middle tier, providing access to a report server application from a web
browser. A user may select reports from a folder tree structure, enter
search criteria when applicable and preview report pages from the web
browser. All of these capabilities are made possible via a zero-client
application (100% JavaScript/XHTML) generated by the web tier. The
zero-client is compatible with Netscape 4, Netscape 6, and Internet
Explorer (5 and 6.)
Designed to integrate seamlessly with Delphi's various web technologies,
the web tier requires only a single line of code to compile successfully
as part of an ISAPI DLL or Apache Shared Module. ASP is also a snap, as
a single COM interface (easily generated with the help of Delphi's
ActiveX support) is all that is needed to deploy the web tier as part of
an Active Server Page.
The web tier implements a sophisticated concept of "session", grouping
all of the communications received from a single web browser under a
single session object. In order to optimize performance, both the state
of the session, and any report output generated for the session are
cached. For example, assume a user previews report A, then report B,
then returns again to report A. The web tier would manage all of this
activity as a single session, and whenever possible, would return pages
from the session cache, instead of re-requesting them from the report
server application. The amount of caching which occurs, the TimeOut for
a session and the frequency with which garbage collection is performed
on expired sessions are just a few of the configuration options
available on the web tier.
Implemented as a set of Delphi classes, the WebTier consists primarily
of objects which descend from TrsWebContentProvider. Web content
providers communicate with the report server application, converting the
response from SOAP/XML to native Delphi objects to XHTML/JavaScript,
suitable for consumption by a web browser. The content providers
included in the Server Edition make it easy to provide a complete,
robust, and professional web reporting solution right out of the box.
You can customize the HTML created by the web tier by creating your own
content provider descendants.
6. RB ISAPI Thread Pool
The Server Edition includes a custom ISAPI thread pool, implemented
using an I/O completion port/worker thread architecture designed to
optimally manage incoming requests. The thread pool queues requests
based on session, and can eliminate redundant requests. This greatly
improves both throughput and performance, as the web tier passes only
relevant requests through to the report server application.
7. Server Farm
The web tier can be configured to utilize any number of report servers
to maximize scalability. This allows the web tier to scale gracefully as
a greater number of users access reports. There are two load balancing
options provided: Round Robin and Minimum Load. Round Robin simply
steps through a list of servers, each time returning the next server in
the list. Minimum Load checks the CPU usage of each server (based on a
sixty second moving average), and returns the server with the minimum
usage.
8. Documentation, Help & Examples
The Server Edition Developer's Guide is provided in PDF format. The
concepts behind the web server are covered, along with numerous
step-by-step tutorials that guide you through everything from creating a
report server application to deploying the web tier with a server farm.
The online help is a reference for all of the components and major
classes which make up the product. The help is integrated with the
Delphi help and is accessible via the help menu or the F1 key. Numerous
examples of report server applications, web applications and client
applications are also provided.
Best regards,
Nard Moseley
Digital Metaphors
www.digital-metaphors.com