gnue-dev
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [GNUe-dev] [RFC] GNUe Reports Server


From: Jason Cater
Subject: Re: [GNUe-dev] [RFC] GNUe Reports Server
Date: Wed, 29 Oct 2003 08:40:49 -0600

As I've pointed out in IRC, I *really* wish we wouldn't move focus to
GNUe Reports Server at this time.  I'm trying to get the GNUe Reports
engine working well first. I think doing the reports server right now
will just cause it to be redone when I finalize the reports engine
interface. We have too many unfinished things as it is. 

>From your notes below, though, I do agree we'll need authentication. I
personally don't like the idea of uploading report definitions via the
server, though, and am not so sure about the async "feedback" thing. I
think it's overkill at this stage. 

-- Jason 


On Wed, 29 Oct 2003 12:39:42 +0100
Jan Ischebeck <address@hidden> wrote:

> Hi,
> 
> yesterday I hacked a bit on the gnue-reports-server fragments, and
> made it actual usable. By adding a sample php client implementation I
> hope to increase the value of GNUe for Webapplications as the current
> Arias.
> 
> By describing the current interface of the GNUe Reports Server I want
> to show current design flaws, how I think these flaws could be
> resolved and want to know what you all think about the stuff.
> 
> Implementation:
> ===============
> (as seen from client side)
> 
> GNUe Reports calls GNUe Reports Server in the following way:
>       
> ## PREPARATION
> 
> # 1. Server parameters are set
> params = {'host': 'localhost', 'port': 8766, 'transport': 'http' }
> interface = 'xmlrpc'
> 
> # 2. A gcomm interface is created from the settings
> gcomm      = GComm.attach(interface, params)
> 
> # 3. A proxy object is created for the "GReportServer"
> rep_server = gcomm.request("GReportServer")
> 
> ## RPC calls
> 
> # 4. get new report engine
> rep_engine = rep_server.requestReportEngine()
> 
> # 5. set parameters
> rep_engine.setDestination(destination, destinationType,
> destinationOptions)
> rep_engine.setFilter(filter, self.OPTIONS['filter_options'])
> 
> # 6. process the report
> rep_engine.processReport(reportfile, userParameters,  
>                          sortoption, self.OPTIONS["comment"],
>                          self.OPTIONS["exclude_xml"])
> 
> # 7. remove the engine
> rep_engine.clear()
> 
> TODO & COMMENTS:
> ================
> 
> 1. Implement a way to store settings for both server and reports
> client
> 
> * how should the rpc connection parameters for the report server be
> stored? (Step 1)
>  
> * what about the interface parameters of the server itself?
> 
> * do we need a seperate [gnue-reports-server] section in gnue.conf?
> 
> 2. Add security framework
> 
> * do we need a login procedure? (IMHO yes!, password etc. could be
> passed to requestReportEngine)
> 
> * security checks for report names, output file names 
> 
> 3. Add asynchronous report processing
> 
> I thought of a "report" proxy class, which provides processing status
> of the report. (needs new thread and synchronizing on server side)
> Something like this:
> 
> report = rep_engine.buildReport(....)
> 
> report.start_processing()
> 
> while not ready:
>    ready = report.Status()
>    // do other stuff
>    sleep(x)
> 
> print(report.fetchResult())
> 
> 4. Add report uploading/result downloading in the report server
> itself.
> 
> uploading: IMHO not directly needed and a security flaw in some parts.
> result downloading: could be usefull for html reports 
> 
> 
> Please read critical and comment.
> 
> Jan
> 
> 
> -- 
> Jan Ischebeck <address@hidden>
> 
> 
> 
> _______________________________________________
> Gnue-dev mailing list
> address@hidden
> http://mail.gnu.org/mailman/listinfo/gnue-dev
> 




reply via email to

[Prev in Thread] Current Thread [Next in Thread]