Server functions?
My company uses a heavily customised Pro RB 6. We are looking at what
would be required in moving to RB10.
I may have miss understood some of the material I have been looking into,
so hence the questions.
Can the server product return a PDF version of a report into a database?
If so how would this be done? (Important as another product grabs it from
there)
We run RB in a non user mode to act as our server currently, would the
server product replace this?
There is no scheduler? (Which is fine since we have our old one if not)
Does the server load all the same values as RB into memory(All tables etc)?
Or does it only load what in the report?
Or does it load everything once and use the information for all reports?
Some feedback in these areas would be greatly appreciated.
Regards
Charles
--- posted by geoForum on http://delphi.newswhat.com
would be required in moving to RB10.
I may have miss understood some of the material I have been looking into,
so hence the questions.
Can the server product return a PDF version of a report into a database?
If so how would this be done? (Important as another product grabs it from
there)
We run RB in a non user mode to act as our server currently, would the
server product replace this?
There is no scheduler? (Which is fine since we have our old one if not)
Does the server load all the same values as RB into memory(All tables etc)?
Or does it only load what in the report?
Or does it load everything once and use the information for all reports?
Some feedback in these areas would be greatly appreciated.
Regards
Charles
--- posted by geoForum on http://delphi.newswhat.com
This discussion has been closed.
Comments
RB Server is a multi-tier solution. The back end ReportServer produces Page
objects that are sent to ClientReport and/or WebTier.
report server --> Page ---> client (clientreport, webtier) --> output
formats (preview, print, pdf, etc)
The ClientReport can be used in Delphi windows applications to preview,
print, generate PDF's or any other type of output. The point here is that
the Page objects are translated into output formats by the client.
The WebTier can be used in Delphi web applications (typically a Web Broker
application). The WebTier manages web sessions initiaited by web browser
clients and generates web content. The webtier generates an xhtml/javascript
report previewer and can also generate PDF and other content that can be
sent to the browser.
RB Server does not currently include a built-in scheduler - that is a
feature that we want to add to a future release.
I do not understand the question about what the server loads. Perhaps you
can explain further or give me an example.
There are ReportVolume components that you use to define collections of
reports to the server. For example, you can use the ReportExplorerVolume to
publish reports stored to the report explorer database.
The sever is multi-threaded. Each client session will have a separate
instance of the report.
--
Nard Moseley
Digital Metaphors
www.digital-metaphors.com
Best regards,
Nard Moseley
Digital Metaphors
www.digital-metaphors.com
To make it easier for you to see where I am coming from, let me explain
our architecture and setup.
1. Report Builder (RB)
2. RGS ? Scheduler (RGS)
3. Report Builder in a non GUI mode ? Server mode (RBS)
The RB has been customised a fair bit over the years and the RGS is our
own development. The RBS uses the same code as RB.
All of the reports are built through RB as normal. The reports are saved
back into the database. A user can only see what their security allows
them to. This can mean they cannot see certain reports as it is outside
their department or they do not have permission to see events. This
security is setup by another application. This other application is based
on the intranet and written in Java.
From the other application a report request may be made for now or
scheduled for later. Either request writes a record to the database.
For an immediate request the RGS grabs the record and passes the
appropriate information to the RBS through a file referenced on the
command line as a parameter. The RBS then generates the report as a PDF
and saves the report into the database. The other application will then
display the PDF to the user or a message if a failure of some sort occurred.
For a scheduled report the process is the same except the record for
processing will not appear until later.
When RB loads it always loads the data dictionary, which is a slow
process, and when in RBS mode it does a similar thing. So for every report
that is generated there is the same overhead occurring.
(Current system)
RB -> built report -> database
Other app - > request to database - > RGS -> pass request -> RBS -> output
pdf -> database -> Other app displays
From looking at this can we improve things? (The other app is something we
cannot get rid of, as it is a flagship product, but we could make changes
to it.)
I am wondering if it is possible to have a server with a clientreport
component so the server could write a PDF to the database?
With the WebTier component, it only converts server output to a client
within a browser? Correct? It cannot save a PDF to a database, only to a
directory on the sever machine which is then served out to the internet?
Thanks for your time.
Regards
Charles
--- posted by geoForum on http://delphi.newswhat.com
- For your DataDictionary, try setting ValidateTableNames and
ValidateFieldNames to False. That can help performance.
- I think that with RB Server it only loads the DataDictionary information
once, and all client sessions that need that information share a thread-safe
singleton meta cache.
- Loading report templates from a database can also cause performance
issues. For RB 10 we added a new property
ReportExplorer.ItemTemplatePipeline property that can be used to optimize
performance of reports stored to the report explorer database. On the
server, there is a ReportExplorerVolume component that has the same
property. This enables the ItemPipeline to connect to a table that contains
all fields except the template field and the ItemTemplatePipeline to contain
a linked query that selects the template field for a single record.
- Based upon your description I would use the ClientReport to build the
functionality that you need. The ClientReport is very simple to use.
ClientReport and Report descend from a common ancestor (Producer) and
therefore share many of the same properties and methods.
- I can understand using the PDF generation for the scheduling, but for an
interactive user I recommend letting ClientReport display the preview
dialog. RB Server can incrementally generate pages upon demand - so the
users gets Page 1 very very quickly (just like with RB in a non-server
environment). Then if they want to navigate to anothe page, RB Server will
generate that page. The clientreport caches the page locally also.
- The WebTier internally uses ClientReport to communicate with the report
server. The WebTier receives web request from browser clients, communicates
with the report server, manages web sessions, and generates web content.
I recommend downloading a trial version of RB Server Edition. Run the demos
that are installed and and work thru the tutorials in the RB Server
Developers Guide. This will not take long - the tutorials are simple and
clear. RB Server makes it very very simple to get your existing reports
working in a high performance server environment.
--
Nard Moseley
Digital Metaphors
www.digital-metaphors.com
Best regards,
Nard Moseley
Digital Metaphors
www.digital-metaphors.com