Home General
New Blog Posts: Merging Reports - Part 1 and Part 2

RB and Asta

edited September 2002 in General
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

Comments

  • edited September 2002

    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
  • edited September 2002
    Actually no, the RB Server would be a bit of overkill. I am using Intraweb
    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
  • edited September 2002

    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
  • edited September 2002
    Nard,
    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

  • edited September 2002
    "Marc Antheunis" wrote in message
  • edited September 2002

    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
  • edited September 2002



    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
  • edited September 2002
    Mike,
    excellent!
    so now i do understand the amount of time needed to build such a thing
    thx!
    marc

  • edited September 2002

    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
  • edited September 2002
    Hi Mike

    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

  • edited September 2002
    Yes, we have made RB 7 threadsafe, including RAP and DADE. Most likely, the
    problem you ran into was related to the fact that RAP was not threadsafe in
    RB 6.03.


    Cheers,

    Jim Bennett
    Digital Metaphors

This discussion has been closed.