fourfive-devel Mailing List for Web Reporting
although fully functional, this is a pre-framework that you can extend
Brought to you by:
fourfive
You can subscribe to this list here.
| 2003 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
(1) |
Nov
(1) |
Dec
|
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2004 |
Jan
|
Feb
|
Mar
|
Apr
|
May
(1) |
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
|
From: <ben...@id...> - 2004-05-25 07:57:51
|
Dear Open Source developer I am doing a research project on "Fun and Software Development" in which I kindly invite you to participate. You will find the online survey under http://fasd.ethz.ch/qsf/. The questionnaire consists of 53 questions and you will need about 15 minutes to complete it. With the FASD project (Fun and Software Development) we want to define the motivational significance of fun when software developers decide to engage in Open Source projects. What is special about our research project is that a similar survey is planned with software developers in commercial firms. This procedure allows the immediate comparison between the involved individuals and the conditions of production of these two development models. Thus we hope to obtain substantial new insights to the phenomenon of Open Source Development. With many thanks for your participation, Benno Luthiger PS: The results of the survey will be published under http://www.isu.unizh.ch/fuehrung/blprojects/FASD/. We have set up the mailing list fa...@we... for this study. Please see http://fasd.ethz.ch/qsf/mailinglist_en.html for registration to this mailing list. _______________________________________________________________________ Benno Luthiger Swiss Federal Institute of Technology Zurich 8092 Zurich Mail: benno.luthiger(at)id.ethz.ch _______________________________________________________________________ |
|
From: <on...@ar...> - 2003-11-02 06:16:04
|
Hi all, the week is almost past and here is what happened: 1) we are on rank 328 from 70 000 projects! In 2 weeks! This is great and if we keep the pace, we are project of the month soon ... This would mean 50 000 site hits and 2 000 downloads per day... 2) CVS is ready to use 3) please use the developers forum on sourceforge as our primary means of communication. You have to be logged in to see the forum! 4) i keep on developing the Papillon so that the release 0.4 can be built on December, the 1st. 5) how are things going on folks? how is the code? any troubles? Cheers, jacek |
|
From: Jacek K. <on...@ar...> - 2003-10-27 18:30:18
|
Hello Lukasz, Joe, Sameer, Vijay.
So, our team grew to 5 people in all. I think it is now enough as this
size is currently ideal
and lets us start efficiently. Your accounts as developers are already
done and i would also strongly recommend
that we switch from private mails to the fourfive-devel mailing list or
the developers forum.
This would enable us to know each other better, to keep track of our
correspondence
and synchronize better.
It is also important what we choose as our primary means of communication:
mailing list or forum?
Any input from Your side is welcome and very important.
Now to some issues that already appeared on the horizon:
1. Vijay says we need cvs, discussion forum (see above) and a roadmap
2. Sameer says he is a server guy (interest area) and says that the
roadmap which is now on the sourceforge
is not very understandable.
3. Joe also wants to have some more details about the roadmap and takes
a look at Scoped Custer, report cache, CB cache, Oracle Admin
Interface, Database Browser for Oracle, and Support for MySQL as his
future areas. He also says some better docs on the architecture would be
the best to let him start.
OK, so i think i will try to tell You more about the architecture today.
Then, i think i have to prepare the cvs, and my goal would be to have
the project up and running in terms of Your full access this week.
On important point that comes to my mind:
I will try NOT to assign any tasks to any of You. The team is very young
and it is in my eyes extremely important that we all feel well in our
team. Which on the other hand means that You find Your tasks Yourself.
It is possible, especially now, since the tasks in roadmap
are (luckily enough) pretty loosely coupled and actually do not have any
dependancies on one another.
I will also try to do my best to give You the full support and help You
really dive into the project. Giving You the support
is in my spectation my most important task.
OK, now to the architecture:
1. Fourfive is about servlets, but is much less servlet-centric than any
other web reporting i have done. I think, Fourfive is based on a more or
less
intuitive microkernel architecture, and we have practically three
microkernels:
The first one is the LocalManager2 in the highservice package. It has
pretty much logic and (wow!) i even have the flow chart of this logic.
Appended is the gif which very well (and to 90% truthfully) reflects
what LocalManager2 does.
Generally, each servlet prepares itself and then gets the report as java
object in one call. Just getReport. Point.
2. In terms of the abstract data types we have 2 major inheritance
trees: I_Service and I_Report. The first one is the representation of
the definition,
the second one is what is being filled with data.
OK, so LocalManager2 itself deals with I_Service. In order to transform
I_Service to I_Report the I_Kernel is called. We have actually
only one implementation of the I_Kernel which is EasyKernel in the
kernel package.
So up to now we have LocalManager2 as the first microkernel which deals
with I_Service and the second microkernel, the EasyKernel,
dealing with I_Report. So to say LocalManager2 "pipes" the request to
the EasyKernel.
3. Formatting of reports (writing HTML) is done by the
I_FrontendFormatters and formatting is delayed until very late,
under the control of the servlets themselves.
4. The third microkernel is the I_ClusterManager and a set of
background threads dealing with resources and the network.
5. JasperReports are modified and are in the source code. I had to
change them and in order to have pooling and so on
there was no other way as to get into this code. Also the definition of
a jasper report is changed, so that we use our own DTD
6. All other types of definition files are generated through castor. But
BEWARE! MainMenu services and SubMenu Services
need cloning because of the security implementations, so if You change
the xml schema and regenerate, You will loose cloning.
What happens then? Since these services are cached, they get more and
more restrictive as users come with less and less permissions.
7. How is the clustering implemented? Well, fourfive keeps talking to
the cluster machines and calculates the relative load.
The clustering itself is done based just on the URL - redirection. The
background threads sit in the highservice/booster package.
The background communication within cluster is implemented using web
services, concretely, AXIS. Take a look at
org.fourfive.webservices.WSClientFacade if You want to dive into this.
8. We do not use the HttpSession AT ALL! That's because i do not want to
be servlet-centric. This already payed off! For stateful
things i just use the I_CacheManager, which, in the long run, should be
so fancy like the object oriented database (ozone?).
9. My general hint: Take LocalManager2, SimpleResourceManager (in
lowservice) EasyCacheMock (in highservice) and maybe GroundStrokeCache
(in lowservice). If You understand the general flow of them, then You
only need the net boosters (for clustering) and You are full in control
of Fourfive.
10. Do not be scared where You see "kedil" as the author in the code.
From each vowel take one vowel before, and from non-vowel
one non-vowel before and what You get is "jacek". I promise i will give
up this little joke :)
OK, i know, these are just basic informations, and we will go more
deeply into it based on Your interests and needs.
Now back to the future...
Fourfive is only one product.
In Fourfive 0.4 comes the visual designer. The point is: for
non-programmers the learning curve of Fourfive
and the need to write xml is just too high. The visual designer (working
name Papillon) will take this burden from them.
Papillon is based on IReports (sourceforge project) which is a designer
form JasperReports but again has been taken apart by me.
The third product is Evologic, but it is just a very early stage. I call
Evologic "BPEL over AQ" (business process execution language over
advanced queuing).
General idea is: If it is possible to declaratively deal with reporting
then it also must be possible to deal with input processes through
declaration.
What shall happen in Fourfive next?
I fully agree that the current description of the tasks might be a
little bit gloomy
to You. But i have an idea. Instead of talking about everything now, i
will describe
4 really easy tasks that will make You familiar with Fourfive fast and
easy way:
1. Static trees:
Take a look at the demo_tree1.xml in the distribution. There is a place
there for data!
You see it? data - row - member. So instead of going to the database,
the data might come from here
which is a very good thing, believe me, and many companies need and like
this hook ...
Now extend the org.fourfive.tree.ResultSetWrap so that it accepts the
config or a 2 dimensional structure from the config.
As soon as You have it, You will get the TreeModel. In easyKernel You
have the small section where You build the if condition
and go to the tree facade with the config.
And it's done!!
2. Support for MySQL.
It should run out of the box! But maybe first add a database population
script like in the distribution
for MySQL. I know, dummy work, but it will let us test many things. Then
get the db_pool.xml and configure
the JDBC driver. Put the driver in WEB-INF/lib. Run Your MySQL.
And tell us all why it crashes ... :)
3. Static images.
At the beginning i thought i will do the clustering
much different that it is now. So i wanted to have everything
serializable. Now the clustering
are just smart redirects, so serializing is no issue. The point is: If
we rewrite the SerialHashtab, we can put java.awt.Image there.
Then some changes in the JasperReports are needed, so that it writes,
instead of "mylogo.gif" "image?image=mylogo.gif". (for ImageLoaderServlet)
Put mylogo.gif in the image subdirectory of a vertical app. Done. Should
work and our reports are much much nicer.
4. Start thinking about scoped cluster.
What is now is: if the member is in the cluster file, it will be
accepted by others
and it will accept everything from others. But what about a scenario
about subclusters?
Or about " i know You want something from me but in my policy i have
that i shall exclude You"
Or "OK, i have Your policy (by the way policy must be invented first)
but i override Your policy with my policy"
Literature: cluster file, + ClusterBooster, ClusterFileBooster,
ClusterNetBooster in highservice/boosters.
This is a new area. No support has been built for it now.
5. Oh, i got warm ....
Folks, two areas are very important: charting and LDAP.
Both of them will be very big, so if You feel like taking it in Your hand,
You will have Your own area and a peace of mind.
6. One more easy task:
You know Velocity Engine? (jakarta.apache) It is great!
I have built many things with it and it would be very good to have it
for menus since the customers could really reach their own look and feel
which, unfortunately, is a requirement number 1.
7. What about the report cache?
In the fourfive section of the dtd
(dori.jasper.engine.dtds.fourfivejasperreport.dtd)
we could have "cache-timeout" element. This is needed because some
reports are very dynamic and some are static.
Then we would have the information. A new factory would be needed in
org.fourfive.factory.digester
and hooked in from the dori.jasper.engine.xml.JRXmlLoader. Then, in the
LocalManager2 store or retrieve into EasyCacheMock.
Done! Caching done.
OK cammerades, i think it is enough for the first day.
I will go into preparing cvs. This might take
a few days, since i want to get it right the first time.
Take care,
do not overwork,
and be a brick.
yours,
jacek
P.S.
Oh, Sammer: You said You did not understand the money part.
Have You read the support page of the website? There will be free support
and a commercial support.
Commercial documentation is the second issue.
Of course,
IF we have customers
IF we do things right
IF they want to pay us
THEN we can earn money.
ELSE
hmmmm....
|