[REBOL] Temporal data [was is REBOL OO]
From: SunandaDH::aol::com at: 12-Jan-2004 17:39
> Just to give you an idea of the involved difficulties, imagine
> a customer that phones at the arena and want to know if
> he can take a reservation one time each week for the next
> 12 weeks preferably during the wednesday evenings.
> This should not be of a real problem if the 12 wednesdays are free.
> The problem begins when some of the weeks are not free and the
> clerk must go back and forth interrogating the system to see
> where it will fit another evening to accomodate the client for all of
> his needs - IN REAL TIME PLEASE - the client is waiting at
> the other end of the phone.
> I know how real and good is the efficiency of the paper method in such a
> but I always dreamed of some tool to explore with a
> computer. I think REBOL could be this tool - if we could get some way to
> connect it to some external way to enter data like a touch
> screen can do instead of a mouse and a keyboard. In fact the three should
> intermixed in this app.
I once knew someone who was charged a small fortune for a computer system to
do precisely that. Absolutely crazy. Nothing could beat their two-stage wall
chart: pencilled in for provisional bookings, inked in when confirmed.
On the other hand, it doesn't scale well.
I've worked on realtime reservations systems. Before airlines had computers,
they had large warehouses full of telephone order takers (a 1950s call
center). Flight details were marked on blackboards around the walls. Runners (the
younger kids) ran back and forth updating the boards as flight details (e.g.
seating capacity) changed. At one point, the airlines were the binocular
manufacturer's biggest customers. (You are sitting at a phone at one end of a
warehouse. How else do you read a blackboard at the far end?)
The sort of data structures you need for handling the sale of time (as
opposed to material goods) are fairly non-intuitive if you've never worked in that
area. Read up on "temporal databases" if you want an insight into a whole new
world, and possibly a few headaches.
The other thing that is vital with this sort of application is not just
availability checking (have we got what they've asked for?) but also the automatic
offering of alternatives.
In your example, the system should automatically offer these sorts of
alternatives (assuming they are available) and sequence them in a blend of the
customer's priorities (wednesdays are nice, but evenings are essential) and the
company's yield management goals (we gotta take some afternoon bookings soon!)
-- 11 consecutive weds plus 1 after a gap over Thanksgiving weekend.
-- 12 consecutive thursdays starting 3 weeks after their desired date
-- 10 consecutive wednesdays late afternoons
-- 6 weeks here and 6 weeks at our sister site ten blocks away.
To rummage a database realtime for those sorts of alternatives can be very
processor heavy. Example, suppose I wanted any 5 consecutive slots, any time of
day, in the six months, ordered by lowest booking price, if I was to pay by
next Tuesday -- remember your pricing may vary by the week (xmas is higher) and
you may have specials if I book by a given date). At a quick glance, that
looks like you have to run through almost every combination of slots that are
available, and price them.
Getting performance for something like that is a real pig. That's why real
airlines (until perhaps very recently) don't use real databases. No one's got
time for record locking and transaction rollback features and stuff like that.
Not when you want to do 200 vague queries like the one above per a second
across a multi-terabyte database that is being simultaneously bulk loaded with
next year's flight inventory.
If that doesn't scare you off, then I do have in my head a design for such a
system (though not so high performance) using REBOL and (if we have to -- but
I'd rather not) a standard SQL database for the raw user data. It's been on
the backburner for the past year or so, as the people who want it are nothing
like ready. There is a chance it might be a goer later this year.
But I'm still fairly agnostic about whether REBOL is a great tool for this.