[omniORB] [Q]report server architecture with omniOrb
V S P
toreason at fastmail.fm
Thu Feb 5 13:50:28 GMT 2009
I think I am finally able to distill my question into something I can
describe one sentense :-)
does omniOrb support non-blocking remote calls (from client-to-servants)
and non-blocking calls to functions of the Servant from within that
servant
(using POA if that's relevant for the question)
if yes, is there example/description I can start looking at?
thank you,
Vlad
On Thu, 05 Feb 2009 08:36:46 -0500, "V S P" <toreason at fastmail.fm> said:
> Thank you
>
> If the
> ReportGenerator ::StartProcessingRequest
>
> returns back 'true', what mechanism should there be
> to allow the same ReportGenerator server instance to beging
> the several hours work on the report?
>
> In otherwords, can I somehow reuse pre-spawned threads within
> the report generator (after replying 'true') and ask them: now start
> processing this request.
>
> For example, in older applications I worked with -- there was
> a simple thread-safe queue of tasks for the worker threads.
>
> So what I thought, I need, is a way, may be,
> for the ReportGenerator ::StartProcessingRequest to post a task
> onto the internal OmniOrb queue (if such a thing exists)
> such that one thread unlocks and starts processing the task.
>
> or otherwise, how would I commence the processing such that
> the 'response' -- 'yes I will take on the work' -- is decoupled
> from the actual work.
>
>
> thank you again,
> Vlad
>
>
>
>
>
> On Thu, 05 Feb 2009 08:10:44 +0100, "Martin Trappel" <0xCDCDCDCD at gmx.at>
> said:
> > V S P wrote:
> > > Hi,
> > > I am new to the list.
> > > Currently designing a somewhat simple (but distributed) reporting server
> > > that will be using postegres and files joining them together to create
> > > reports.
> > >
> > > The way the system would work is there is a table called request_queue
> > > an entry there would indicate a type of report to run and the status of
> > > the entry (submitted, executed, errored, inprogress).
> > >
> > > Reports can take several hours to run, so the 'report servers'
> > > have to be asynchronious.
> > >
> > > I was thinking I coud use omniOrb to implement the 'distribution'
> > > underpinning. However I am having difficulties invisioning how it can be
> > > done.
> > >
> > > a) assuming that I have some kind of a 'dispatcher' client that reads
> > > the data from the queue table, then it needs to figure out which one of
> > > the report serveres is not busy -- and send the request to that one.
> > >
> > > b) the server would take the request, will say 'thank you' and work it
> > > on it for a couple of hours, and then update the status of the queue
> > > entry as 'executed'.
> > >
> >
> > Since both the Servers and the Dispatcher-Client need to talk to the
> > postgre Database, you could just leave CORBA out completely and let them
> > talk via the database ...
> >
> > > I thought I would need Naming Service and notification service for this,
> > > however, my undestanding is that Notification service is not really
> > > supported and certainly not working in Windows with VC++ 9
> > >
> > > Wanted to ask if anybody has recommendation of what OmniOrb features I
> > > need to look for/use for the above (or if there are better alternatives)
> > >
> >
> > I'm not sure you even need the Naming Service.
> >
> > // Multiple Instances on multiple machines:
> > interface ReportGenerator {
> > // return true on OK, false on currently busy
> > // ReportDispatcher can call al registered servers until one returns
> > true
> > bool StartProcessingRequest(in request_id id);
> > }
> >
> > // Dispatcher Service, starting the report generation.
> > // Servers look it up via corbaloc.
> > interface ReportDispatcher {
> > void RegisterGenerator(in ReportGenerator r);
> > void UnregisterGenerator(in ReportGenerator r);
> >
> > void RequestFinished(in request_id id);
> > }
> >
> >
> > br,
> > Martin
> --
> V S P
> toreason at fastmail.fm
>
> --
> http://www.fastmail.fm - Does exactly what it says on the tin
>
>
> _______________________________________________
> omniORB-list mailing list
> omniORB-list at omniorb-support.com
> http://www.omniorb-support.com/mailman/listinfo/omniorb-list
--
V S P
toreason at fastmail.fm
--
http://www.fastmail.fm - And now for something completely different┘
More information about the omniORB-list
mailing list