Re: OScheduler

"Mathias Bogaert" <[email protected]> Mon, 12 Jan 2004 22:18:14 +0100
Newsgroups gmane.comp.java.open-symphony.devel
Message-ID <003e01c3d951$9708f1b0$2a27e0d5@nextcom>
See inline.
----- Original Message -----
From: "James House" <[email protected]>
To: <[email protected]>
Sent: Monday, January 12, 2004 12:38 AM
Subject: Re: [Opensymphony-developers] OScheduler


>
> Mathias,
>
> [Brief interuption before the real message:   It seems that I'm only
> seeing about 50% of this conversation - - at least I don't get any
> e-mail that came from Mathias himself - I only see his comments in the
> bodies of people's responses to his messages.... does anyone know why
> this would be? I'm subscribed to
> "[email protected]" -- Mathias, if you
> respond, can you please cc me ([email protected]) directly?].
>
> I think (although of course I'm biased) Quartz is fairly light-weight,
> and its more complex features don't have to be used (and can therefore
> be ignored in the configuration) - of course you have to weed though it
> a bit to see what you can ignore ;-).  I've never heard a complaint that
> Quartz is hard to use (in fact, the forums are full of comments about
> how easy it is) - But you are right in saying that it is more complex
> than it needs to be, and the interfaces/classes have become inconsitent
> over time, and in fact some abstractions are being violated due to
> changes in direction.  It's a classic case of learning what the product
> really should be, once you've already got it made, and people start
> using it and asking for changes in the features.

As Hani mentioned, the API (IMO overall, not only JobStore) seems too
verbose. Too many methods to implement.

>
> I think a collaboration would be great.  If nothing else, I'd like to
> see how your ideas can improve my Quartz 2.0 design. :)   I've been
> really focused in the design on accomodating things like clustering,
> CMT, and improved load balancing, and it is likely that too much
> complexity is still touching the upper layers of the API -- additional
> (critical) eyes would be appreciated.   Perhaps your API is already
> perfect, and it should be adopted.  Or perhaps (more likely) meshing the
> two designs together will produce something top-notch.  Of course it is
> also possible that we'll find the goals of the two project are so
> divergent that both should exist - though I'd be surprised to find this
> to be the case.

My API is simpler, but is also less featured. It's based a lot of how
XWork's API is, since a Job resembles to an XWork Action a lot. I think that
meshing them and though collaboration and the community feedback designing
the perfect API is the best approach to take.

>
> [For those unfamiliar with the current state of Quartz:]
> Quartz the project now has a very large and fairly active community
> base.  I am still by far the primary contributor, but there are a couple
> others who commit a few times per month, and there are regularly patches
> and new (small) features submitted.   Best of all, the user forum is
> nearly running itself, thanks to having enough experienced users who are
> willing to help out the noobs.   The last official release of Quartz
> (1.2.3) has nearly 3000 downloads, aside from being contained
> (distributed) within several other open source and commercial
> products.   Quartz 1.3.0 should be release within a few days, and 1.4.0
> in about a month.    Quartz 2.0 was designed a long while back, and
> implementation began, but it's got MANY hours of work to go, since it is
> a serious refactoring.   Both the existing (1.x) design and the 2.0
> design support plugable persistence.  There is currently RAM and
> JDBC-based persistence (a bit of an oxymoron with RAM).  Also there is a
> mechanism to use XML files to auto-populate jobs in the RAM store during
> initialization.
>
> In answer to your questions:
>
> >> 1. OS components are lean and mean, so I'm not sure some of Quartz
> >> features
> >> will 'fit' in, e.g. RMI, how do you see this?
> >
> Patrick already answered this a bit.   Additionally, all of the advanced
> features are "optional use", and don't even have to be configured if you
> aren't using them.  Furthermore, these "advanced" features don't really
> tax the system much.  When Quartz is running with all features enabled,
> it's often hard to measure the load it is causing on the system.  I'm
> usually known (in my day job) as one who tends to err on the side of
> efficiency.
>

Having a lot of features is nice, but the question is 'are all these
features as useful as they are cool'. RMI support might be nice, but if 1%
of the users is actually using it, it would be better to put it in a
quartz-extras subproject.

> >> 2. The package should be com.opensymphony.quartz, objections?
> >
> No objections there.  I'd propose the switch happen with the 2.0 release
>
> >> 3. What are your main motivations for moving to OS now and not before?
> >
> The main thing stopping me before was that my employer (PartNET) was
> giving me some on-the-clock hours to work on Quartz, and it didn't have
> much of a community yet.  Becuase PartNET was "investing" in it, my boss
> was hesitant to give it over to a community, when he was still unsure
> about how he may want to profit from it.  At this point, this isn't an
> issue any more.  All of Quartz's files currently say "Copyright James
> House" in them - and there are no claims to ownership by PartNET.
> Furthermore, I don't get company time to work on it anymore (never did
> get very many hours in the first place), and the 2.0 design was done
> entirely on my own time.
>
> If the OS community is willing to have Quartz, I'll first need to run it
> by a few of the other people over on the Quartz project, who ought to at
> least have a little say about it.  And frankly I've got just a little
> bit of hesitancy still in me myself (perhaps I'm too proud, but it is
> kind of hard to go from something that's nearly 100% yours, to it only
> being 50% or so yours).  However, I'm thinking that this is probably the
> best way to go, as I could really use the additional support (if there
> is some here).  As I said in my previous e-mail, I was planning to
> approach Patrick (and OpenSymphony in general) about this some time soon
> (when I made up my mind definitively), but seeing this mail thread
> spurred me into it.
>
>
> Some things I'd like to know:
>
> 1) Why would OpenSymphony want Quartz?  What does OpenSymphony have to
> offer Quartz?

Quartz is the only decent J2EE scheduler around. Period.

> 1a)Are there any of you who are willing to be active developers on core
> functionality?

I would offcourse be interested.

> 1b)Are there any of you who are willing to be active developers on
> making Quartz work well with (integrate with) other OpenSymphony projects?
> 1c)Are there any of you who are willing to be forum supporters etc.?
> 1d)Are there any of you who are willing to pat me on the back and say
> "good job"?  ;-)

As with any of the other OS projects, the moment that you have design
questions or would like feedback on something, the OS developers are there.
People already discuss a whole lot of topics concerning OS. Check the
archives. In the end, for most of us this is a learning thing. Although many
of us are around for quite a while, most of us are perfectionists looking
for the coolest design, the 'holy grail'. It's addictive.

>
> 2) How is Java.net working out?  Are you moving there completely?

Very good for now. Performance is superb!

> 2a) Where/how do you guys host your site?  (I've got a tomcat server
> that I run the Quartz website and wiki (SnipSnap) on, as well as
> ownership of the domain "quartzscheduler.org" (and ".com"), a
> mail-server, and I happily use JIRA for issue tracking).   -- Thus
> Quartz is primarily using SourceForge for file distribution and the
> forum (though the forum software really bites).  If Quartz is going to
> be an OpenSymphony project, it ought to sit along side the others
> (actually I'm not entirely sure how much the others are all hosted the
> same place, in the same way, etc.) -- I guess my question really is:
> Where will it be expected that Quartz is hosted (mail, forum, CVS,
> documentation, "home page", wiki, etc.)   -- Also, I'm willing to offer
> my server (on a T3 with 40GB available transfer per month) for anything
> that's needed.
>
> james

Mathias

>
> >>
> >> Cheers,
> >> Mathias
> >>
> >> ----- Original Message -----
> >> From: "James House" <[email protected]>
> >> To: <[email protected]>
> >> Sent: Friday, January 09, 2004 9:44 PM
> >> Subject: Re: [Opensymphony-developers] OScheduler
> >>
> >>
> >>>
> >>> Matthias,
> >>>
> >>> James here (primary developer of Quartz).  I don't know if your
> >>> interested or not, but I've had a full new design of Quartz (Quartz
> >>> 2.0)
> >>> getting dusty for several months no, and was getting ready to actually
> >>> dig in and build the thing (The work is about 20% done, and the
> >>> changes
> >>> include: a significantly improved/changed API, usage of Hibernate for
> >>> persistence, over-hauled clustering features, re-thinking of how
> >>> guarantees and prioritization of job firings (and misfirings) occur,
> >>> etc.).   In the past I had been invited to join Quartz under the OS
> >>> umbrella, and had declined, but I was actually planning to write an
> >>> e-mail to Patrick in the next week or so and ask if I'm still welcome,
> >>> and see if anyone wants to help...  I'm also interested in leaving
> >>> SourceForge and moving java.net.
> >>>
> >>> Anyway what are your thoughts on a collaborative effort?
> >>>
> >>> james
> >>>
> >>>
> >>> Hani Suleiman wrote:
> >>>
> >>>> Yep, that's what I was going to propose. xml, ejb, and memory.
> >>>>
> >>>> Mathias Bogaert wrote:
> >>>>
> >>>>> I'm not a big fan of multiple persistence mechanisms (look at the
> >>>>> many
> >>>>> problems with it in OSUser/OSAccess). Hibernate supports all
> >>>>> kinds  of
> >>>>> databases, so no problem there. And offcourse, the API allows to
> >>>>> plug, but
> >>>>> except for perhaps an XML and EJB one, I don't think we should add
> >>>>
> >> more.
> >>
> >>>>>
> >>>>> Mathias
> >>>>>
> >>>>> ----- Original Message -----
> >>>>> From: "Hani Suleiman" <[email protected]>
> >>>>> To: <[email protected]>
> >>>>> Sent: Friday, January 09, 2004 9:17 PM
> >>>>> Subject: Re: [Opensymphony-developers] OScheduler
> >>>>>
> >>>>>
> >>>>>
> >>>>>> Yes! Although the one thing that is glaringly missing from your
> >>>>>> description is support for multiple persistence mechanisms, so any
> >>>>>> objections to adding that in?
> >>>>>>
> >>>>>> Anyway, big +1 from me for having such a component, as long as it
> >>>>>> follows the same principles as all the others (few dependencies,
> >>>>>> optional support for stuff, etc etc).
> >>>>>>
> >>>>>> Mathias Bogaert wrote:
> >>>>>>
> >>>>>>
> >>>>>>> Guys,
> >>>>>>>
> >>>>>>> Over the last month, I've written a scheduler (like Quartz),
> >>>>>>> but  with
> >>>>>>
> >>>>>>
> >>>>>
> >>>>> much
> >>>>>
> >>>>>>> cleaner interfaces, based on java.util.Timer, lot of the same
> >>>>>>> principals
> >>>>>>
> >>>>>>
> >>>>>
> >>>>> as
> >>>>>
> >>>>>>> XWork (Job, JobSupport, JobInvocation, interceptors, etc),
> >>>>>>> using  the
> >>>>>>
> >>>>>>
> >>>>>
> >>>>> cron
> >>>>>
> >>>>>>> parser from OSCache, with Hibernate as backing store for
> >>>>>>> storing  jobs
> >>>>>>
> >>>>>>
> >>>>>
> >>>>> and
> >>>>>
> >>>>>>> job parameters (that are set on a job having setters). Startup
> >>>>>>> through a
> >>>>>>> context listener. The documentation is a work in progress, and
> >>>>>>> it's
> >>>>>>> not
> >>>>>>
> >>>>>>
> >>>>>
> >>>>> very
> >>>>>
> >>>>>>> well tested (almost zero unit tests, I'm not into TDD yet).
> >>>>>>>
> >>>>>>> I've been thinking about releasing it as open source, and I'm
> >>>>>>> wondering
> >>>>>>
> >>>>>>
> >>>>>
> >>>>> if
> >>>>>
> >>>>>>> OpenSymphony would be interested. Offcourse any better name or
> >>>>>>> other
> >>>>>>> suggestions are appreciated.
> >>>>>>>
> >>>>>>> Mathias Bogaert
> >>>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>>> -------------------------------------------------------
> >>>>>>> This SF.net email is sponsored by: Perforce Software.
> >>>>>>> Perforce is the Fast Software Configuration Management System
> >>>>>>
> >> offering
> >>
> >>>>>>> advanced branching capabilities and atomic changes on 50+
> >>>>>>> platforms.
> >>>>>>> Free Eval! http://www.perforce.com/perforce/loadprog.html
> >>>>>>> _______________________________________________
> >>>>>>> Opensymphony-developers mailing list
> >>>>>>> [email protected]
> >>>>>>> https://lists.sourceforge.net/lists/listinfo/opensymphony-
> >>>>>>> developers
> >>>>>>>
>
>
>
>
> -------------------------------------------------------
> This SF.net email is sponsored by: Perforce Software.
> Perforce is the Fast Software Configuration Management System offering
> advanced branching capabilities and atomic changes on 50+ platforms.
> Free Eval! http://www.perforce.com/perforce/loadprog.html
> _______________________________________________
> Opensymphony-developers mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/opensymphony-developers
>
>



-------------------------------------------------------
This SF.net email is sponsored by: Perforce Software.
Perforce is the Fast Software Configuration Management System offering
advanced branching capabilities and atomic changes on 50+ platforms.
Free Eval! http://www.perforce.com/perforce/loadprog.html