RB and Asta
Has anyone used RB in an Asta Server enviroment, not client, (threaded and
pooled datamodules) with the RB compnents on the a datamodule?
If so, any problems?
My current report tool (Ace) does not thread at all and I am looking at
alternatives, although this is the first time I have found Ace lacking.
TIA
Mike Hall
pooled datamodules) with the RB compnents on the a datamodule?
If so, any problems?
My current report tool (Ace) does not thread at all and I am looking at
alternatives, although this is the first time I have found Ace lacking.
TIA
Mike Hall
This discussion has been closed.
Comments
Sounds like you are trying to build a report server. If so, you should
definitely check out ReportBuilder 7.0 Server Edition which we just
released last week. (See details below.)
From your prior post, sounds like you want to serve up report archives.
With RB Server Edition you can publish report archives and live reports
very easily. You can publish the reports Delphi thin-client applications
and web browser.
RB 7.0 is the first version of RB that is thread-safe. (All Editions of
RB are now thread-safe: Standard, Professional, Enterprise, and Server.)
http://www.digital-metaphors.com/server/TrialEdition.html
-----------------------------------------------------------
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
with Asta for the db pooling and scaling. I just need to create a report on
the Asta server, convert it to html and feed it back to Intraweb.
My question still stands, is there any problem using RB on an Asta server
data module, ie threading issues or other problems. Is anyone currently
doing this?
TIA
Mike Hall
----- Original Message -----
From: "Nard Moseley (Digital Metaphors)"
Newsgroups: digital-metaphors.public.reportbuilder.general
Sent: Tuesday, September 03, 2002 18:39
Subject: Re: RB and Asta
Sorry to not address your ASTA question. I was hoping an RB/ASTA
developer might respond.
I know that we have customers using RB and ASTA, however I do not know
whether any of them have tried to use RB on the server side. I think
they typically use RB on the client side and let ASTA serve up remote
datasets.
I also know that there is a DADE plug-in available for ASTA which
enables the visual query tools in the RB Data workspace to be used with
ASTA.
I think you should be able to build the type of solution that you
describe using RB 7. I am assuming the the report, datasets, data
connection components will reside on the same datamodule. Might be an
issue using RichText or TeeChart since they require a windowed control.
However, we do have these controls working on the RB server.
To test thread safety, you need a multi-CPU workstation.
Not sure why RB Server is overkill, but that is your call. My
thinking is that you are encounter a number of issues that RB has
already solved.
Best regards,
Nard Moseley
Digital Metaphors
www.digital-metaphors.com
normally i wouldn't interrupt this kind of thread
but i find the price of the server edition quite high, the more you have to
pay per server (if i got it right)
maybe you can convince me that it is cheap compared to what i get
(i'm sorry to not have the time to evaluate it for myself, so basically i do
not know what i'm talking about...)
thx
marc
Thanks for the reply.
--
I started with the client side (if you can call IntraWeb a client ) but
had threading problems (this is with Ace). Thought I might be able to
control it better on the Asta server side as I understand Asta far better
than IW, which really doesn't amount to much.
Either place, I have a safe for threading issue with Ace so am looking at
RB. I have used Ace for over 5 years and am really reluctant to give up what
has been up to this point a very good tool for me. The thought of completely
converting our legacy Ace reports to RB is not a pleasant one so I think I
will end up with supporting two reporting packages, still not pleasant, but
better than the alternative.
I'll take a closer look. We use a hosting service (Defined). Do you know of
any problems with doing this and RB Server?
TIA
Mike Hall
My guess is that a hosting service can offer any variety of services so
it probably depends on your particular service company and agreement. If
you have your own dedicated machine then they will likely allow it, if
not then it will depend upon what type of application software they will
allow you to install.
Requirements:
1. RB WebTier application. The Server Edition includes examples of using
the WebTier component to build an ISAPI, ASP, or Apache application.
2. RB Server application - this is best deployed to run as a Windows
Service. It can run on the same machine was the web application or on a
different machine.
3. Database server.
If you spend about a half day with the Server Edition Developers Guide
and examples all of this will make more sense.
--
Nard Moseley
Digital Metaphors
http://www.digital-metaphors.com
Best regards,
Nard Moseley
Digital Metaphors
www.digital-metaphors.com
excellent!
so now i do understand the amount of time needed to build such a thing
thx!
marc
I invite you to download the RB Server Trial Edition and check it out
for yourself.
Best regards,
Nard Moseley
Digital Metaphors
www.digital-metaphors.com
and
Yes, we did so. We build our astaserver with RB6.03. But after having some
unidentified problems (hanging server after running a report with RAP) now
the client makes the reports (perhaps that was a threading problem ???).
That means the reports are stored in the database (Oracle) and are streamed
to client. The client uses the astaserver to fetch the data and makes the
report. Since we changed this concept we are now able to design the reports
on clientside (after designing the report is streamed back to the db). And
that was one of the major points.
Now with version 7 the reportbuilder should be threadsafe.
Regards
Robert
problem you ran into was related to the fact that RAP was not threadsafe in
RB 6.03.
Cheers,
Jim Bennett
Digital Metaphors
http://www.digital-metaphors.com
info@digital-metaphors.com