You can subscribe to this list here.
2001 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
(19) |
Nov
(22) |
Dec
(19) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2002 |
Jan
(35) |
Feb
(5) |
Mar
(13) |
Apr
(9) |
May
(3) |
Jun
(16) |
Jul
|
Aug
(6) |
Sep
(15) |
Oct
(5) |
Nov
(3) |
Dec
(7) |
2003 |
Jan
(16) |
Feb
(10) |
Mar
(19) |
Apr
(13) |
May
(5) |
Jun
(20) |
Jul
(33) |
Aug
(9) |
Sep
(1) |
Oct
(12) |
Nov
(17) |
Dec
(2) |
2004 |
Jan
(3) |
Feb
(9) |
Mar
(7) |
Apr
(16) |
May
(6) |
Jun
(6) |
Jul
(18) |
Aug
(8) |
Sep
(27) |
Oct
(8) |
Nov
(14) |
Dec
(29) |
2005 |
Jan
(1) |
Feb
(11) |
Mar
(33) |
Apr
(2) |
May
(4) |
Jun
(21) |
Jul
(41) |
Aug
(6) |
Sep
|
Oct
(1) |
Nov
|
Dec
(1) |
2006 |
Jan
(8) |
Feb
(3) |
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
(1) |
Nov
|
Dec
|
From: Vsevolod (S. I. <si...@cs...> - 2004-07-18 23:04:58
|
Hi, To let you know what I'm doing: I've finished implementing most of the new has_many functionality and revamped has_a. Next I will test them on my applications, and if I am happy, will offer them for the main tree. Links_to will pretty much stay unchanged, except for things like deep auto-saving, and I would like to test some ideas on a real-world application first. I have also added caching support to fetch_group() in SPOPS:DBI. Well, kinda. It's almost impossible to truly avoid calls to the database, as we don't know which results will be cached and which won't. I can ask for IDs first, and then ask for the data only for those IDs which are not cached, but this will severely limit possible SQL commands that can be passed to the method. So caching support is there just to keep data consistent. Simon -- Simon (Vsevolod ILyushchenko) si...@cs... http://www.simonf.com Terrorism is a tactic and so to declare war on terrorism is equivalent to Roosevelt's declaring war on blitzkrieg. Zbigniew Brzezinski, U.S. national security advisor, 1977-81 |
From: Chris W. <ch...@cw...> - 2004-07-18 02:07:48
|
On Jul 17, 2004, at 3:12 PM, Antti V=E4h=E4kotam=E4ki wrote: > I began implementing this and noticed that maybe this isn't after all=20= > what would really be needed. All I really want to do is modify how=20 > OpenInteract2::Request works - I don't want to create a new request=20 > handler for apache, apache2, cgi, daemon & future request types. I=20 > just want that when they use OpenInteract2::Request functions as base,=20= > those functions offer some extra functionality. Well, this is the standard OO dilemma, eh? The number of request types=20= is fairly limited so putting your common functions in a parent class=20 (that subclasses OI2::Request) and then creating a simple class for=20 each of the implementations won't be so hard. For instance: # put your custom stuff here, overriding methods where necessary package OI2::Request::Antti; use base qw( OI2::Request ); # These can be an empty classes... package OI2::Request::AnttiLWP; use base qw( OI2::Request::Antti OI2::Request::LWP ); package OI2::Request::AnttiApache; use base qw( OI2::Request::Antti OI2::Request::Apache ); and so forth. Since you can override methods in your=20 OI2::Request::Antti class you can change however you want OI2::Request=20= to work. (For instance, overriding 'assign_request_url()' you can use=20 whatever means you want to pull out the 'action' and 'task' from the=20 URL.) Make sense? > So could it be possible to define 'request' class in 'system_class'=20 > which would be used as base for all basic request implementations? That really breaks how the system works. I think we can find another=20 way around it :-) Chris -- Chris Winters Creating enterprise-capable snack systems since 1988 |
From: Chris W. <ch...@cw...> - 2004-07-17 17:52:30
|
On Jul 17, 2004, at 12:46 PM, Antti V=E4h=E4kotam=E4ki wrote: > Thanks. This seems do be just what we need :) > >> That's it! I'll create a JIRA issue to move the factory class >> registration into configuration for both requests/responses, then you >> won't need to modify the startup.pl or use the registration step >> within your custom request class > > And this sounds much much better :) > > Oh one thing just popped into my mind.. Could it be possible to add a=20= > section in server.ini where you can define custom classes which would=20= > be used/required in server.pl and other corresponding places for all=20= > action types? Custom classes to be brought in at server startup can go into=20 'system_class', and your action types can be defined in 'action_types'. > I think this would eliminate our need to modify server.pl at all (for=20= > now at least ;)) which would simplify the installation process. Excellent! Chris -- Chris Winters Creating enterprise-capable snack systems since 1988 |
From: Chris W. <ch...@cw...> - 2004-07-17 16:17:36
|
On Jul 17, 2004, at 11:45 AM, Antti V=E4h=E4kotam=E4ki wrote: > But there is another thing I really would like to have and it would be > [system_class] configurable Request object. This would help to put=20 > thing in their correct places.. > > For example we use path to store current group id after the task name=20= > (this way we get unique paths for each groups tools) and this group id=20= > should be accessible from CTX->request->active_group . We could also=20= > solve the default task problem which arises when group id is=20 > interpreted as task name when there is no task in the url in request=20= > when at the moment we have to fix it in out custom Action class. > > There are also other things like our user securities which should be=20= > accessible through the request object. The [system_class] the wrong place for this since there's already a=20 built-in way to handle it. The request/response objects are created=20 from factories, so you just need to register your custom request object=20= with the factory. Here's how to do it: - Create a new request class. (It sounds like you've already done=20 this.) Just subclass the main one you want, like=20 OpenInteract2::Request::Apache, and override init() with something=20 like: package OpenInteract2::Request::MyCustom; use strict; use base qw( OpenInteract2::Request::Apache ); sub init { my ( $self, $params ) =3D @_; $self->SUPER::init( $params ); # ... now set your custom properties } # Register yourself with OI2::Request: OpenInteract2::Request->register_factory_type( mycustom =3D> 'OpenInteract2::Request::MyCustom' ); - Create a new/modify 'startup.pl'. This is where we tell OI2 which=20 request/response handlers to create from the factory. # Require your custom class: ... use OpenInteract2::Request::MyCustom; ... # Let OI2 know which request to create -- this is the name # we use in 'register_factory_type()' $ctx->assign_request_type( 'mycustom' ); That's it! I'll create a JIRA issue to move the factory class=20 registration into configuration for both requests/responses, then you=20 won't need to modify the startup.pl or use the registration step within=20= your custom request class Chris -- Chris Winters Creating enterprise-capable snack systems since 1988 |
From: Vsevolod (S. I. <si...@cs...> - 2004-07-15 22:34:53
|
You probably want memcached: http://www.linuxjournal.com/article.php?sid=7451 SPOPS supports caching (there is a bug to be fixed there, though), and you should be able to plug in MemCache there. Simon Andreas Nolte wrote: > Am Do, den 15.07.2004 schrieb Greg Fenton um 19:04: > > >>For a Proxy server, I was simply thinking of either Apache or Squid. >>This assumes you are using HTTP to access OI. >> >>greg_fenton. >> >>===== >>Greg Fenton >>gre...@ya... >> > > .. well, we already using multiple OI "application servers" to which the > users are currently directed to via round robin dns. The app servers use > a mounted NFS filesystem, so they stay in sync. Our problem comes later, > when these application servers access the "main" OI database, which is > MySQL... > > > > ------------------------------------------------------- > This SF.Net email is sponsored by BEA Weblogic Workshop > FREE Java Enterprise J2EE developer tools! > Get your free copy of BEA WebLogic Workshop 8.1 today. > http://ads.osdn.com/?ad_id=4721&alloc_id=10040&op=click > _______________________________________________ > openinteract-dev mailing list > ope...@li... > https://lists.sourceforge.net/lists/listinfo/openinteract-dev > -- Simon (Vsevolod ILyushchenko) si...@cs... http://www.simonf.com Terrorism is a tactic and so to declare war on terrorism is equivalent to Roosevelt's declaring war on blitzkrieg. Zbigniew Brzezinski, U.S. national security advisor, 1977-81 |
From: Andreas N. <an...@kl...> - 2004-07-15 17:19:11
|
Am Do, den 15.07.2004 schrieb Greg Fenton um 19:04: > For a Proxy server, I was simply thinking of either Apache or Squid. > This assumes you are using HTTP to access OI. > > greg_fenton. > > ===== > Greg Fenton > gre...@ya... > .. well, we already using multiple OI "application servers" to which the users are currently directed to via round robin dns. The app servers use a mounted NFS filesystem, so they stay in sync. Our problem comes later, when these application servers access the "main" OI database, which is MySQL... |
From: Greg F. <gre...@ya...> - 2004-07-15 17:04:57
|
--- Andreas Nolte <an...@kl...> wrote: > > But for your proposal of some kind of proxy: that of course would be > also a good idea. Do you have a concrete suggestion ( e.g. package > / product ) ? > For a Proxy server, I was simply thinking of either Apache or Squid. This assumes you are using HTTP to access OI. greg_fenton. ===== Greg Fenton gre...@ya... __________________________________ Do you Yahoo!? Yahoo! Mail is new and improved - Check it out! http://promotions.yahoo.com/new_mail |
From: Andreas N. <an...@kl...> - 2004-07-15 14:13:42
|
Hi Greg, we use OI as an application server for our internal applications ( 20-30, e.g. callcenter crm type applications, order entry, digital imaging, etc. ) with about 1000 concurrent users. Each app usually has it`s own database ( some MySQL, some Oracle, some MSSQL ), but the what always gets shared are the OI tables themselves ( sys_security, sys_error etc. ). The reason for thinking about replication is availability ( .. ahem - just had a very unpleasant hardware issue... ), mainly for read access, since apart from the session table most system tables are not used that much by our applications. But for your proposal of some kind of proxy: that of course would be also a good idea. Do you have a concrete suggestion ( e.g. package / product ) ? We plan to look at the MySQL Cluster, which is coming up, and also at the Linux Virtual Server, but none of these is readily available, it seems. Therefore: any hints / ideas are very welcome.... cheers, Andreas ----- Original Message ----- From: "Greg Fenton" <gre...@ya...> To: <ope...@li...> Sent: Thursday, July 15, 2004 3:37 PM Subject: Re: [Openinteract-dev] SPOPS and MySQL replication > --- Andreas Nolte <an...@kl...> wrote: > > > > Actually I`d be surprised if SPOPS could do this out of the box > > already, but I am sure it could be extended to use one database > > handle for reading objects and anotherone for writing. > > > > So you are planning on running one server w/ OI and/or SPOPS connected > to multiple mysql servers? Have you determined that the bottleneck > truly is mysql? > > Have you considered having multiple OI servers with a Proxy server in > front that is pushing all write requests to server and load-balancing > read requests to others? > > This would avoid complicating the SPOPS design (I'm making the same > assumption as you that SPOPS is not designed for separate db > connections, one for writes and multiple for reads). > > greg_fenton. > > ===== > Greg Fenton > gre...@ya... > > > > __________________________________ > Do you Yahoo!? > Read only the mail you want - Yahoo! Mail SpamGuard. > http://promotions.yahoo.com/new_mail > > > ------------------------------------------------------- > This SF.Net email is sponsored by BEA Weblogic Workshop > FREE Java Enterprise J2EE developer tools! > Get your free copy of BEA WebLogic Workshop 8.1 today. > http://ads.osdn.com/?ad_id=4721&alloc_id=10040&op=click > _______________________________________________ > openinteract-dev mailing list > ope...@li... > https://lists.sourceforge.net/lists/listinfo/openinteract-dev > |
From: Greg F. <gre...@ya...> - 2004-07-15 13:37:33
|
--- Andreas Nolte <an...@kl...> wrote: > > Actually I`d be surprised if SPOPS could do this out of the box > already, but I am sure it could be extended to use one database > handle for reading objects and anotherone for writing. > So you are planning on running one server w/ OI and/or SPOPS connected to multiple mysql servers? Have you determined that the bottleneck truly is mysql? Have you considered having multiple OI servers with a Proxy server in front that is pushing all write requests to server and load-balancing read requests to others? This would avoid complicating the SPOPS design (I'm making the same assumption as you that SPOPS is not designed for separate db connections, one for writes and multiple for reads). greg_fenton. ===== Greg Fenton gre...@ya... __________________________________ Do you Yahoo!? Read only the mail you want - Yahoo! Mail SpamGuard. http://promotions.yahoo.com/new_mail |
From: Andreas N. <an...@kl...> - 2004-07-15 11:20:24
|
Hi all, we are thinking about redundancy and scaling up once again.=20 One possible solution we are thinking about is using MySQL master / = slave replication, where you have one master, which handles the write = requests, and multiple read only slaves. My question is, if anyone has used OI/SPOPS in such an environment or = otherwise has any ideas concening the usage of SPOPS in such an = environment. Actually I`d be surprised if SPOPS could do this out of the box already, = but I am sure it could be extended to use one database handle for = reading objects and anotherone for writing. Any comments welcome. Andreas |
From: Kutter M. <mar...@er...> - 2004-07-05 10:12:38
|
Hi *! There has been some time since I posted this on the help list. The issue (which is probably a duplicate of SP-2 in Jira, which should be reopened) is a problem SPOPS::LDAP has with LDAP attributes that do not allow empty values. On deleting an attribute from the SPOPS object, it is removed from the object. On storing an object in a LDAP directory, SPOPS iterates over the object's field_list to make up the Net::LDAP::Entry object to store in the directory. Thus, SPOPS tries to store non-existant (and undef) attributes as empty in the LDAP directory, resulting in "value #0 invalid per syntax" error message from openLDAP. I have suggested the introduction of a "ldap_require_fields" configuration directive to solve this issue. Together with a second directive "ldap_check_require_fields" it works like this: - if ldap_check_require_fields is set to a true value, SPOPS::LDAP checks the fields *not* listed in ldap_require_fields, and excludes them from the LDAP operation if they are missing or undef (resp. deleting them from the LDAP directory if they existed before). This solution does not interfere with the "skip_undef" configuration flag: If an attribute is mentioned in "skip_undef", it is not removed from the LDAP directory if missing or undef. A patch against SPOPS-0.87 including a test script (which will fail if you try it against a unpatched SPOPS::LDAP implementation) is attached. Regards, Martin Kutter |
From: Kutter M. <mar...@er...> - 2004-07-05 07:28:44
|
Hi * ! Here is the first version of a SOAP Content Generator, including SOAP Request and response handler for OI2. To check it out, copy the files to your lib path (overwriting existing OI2 modules, as introducing new Request/Response sub-modules requires small changes in OpenInteract2::Request and Response). The files contain some documentation - hopefully enough to test the stuff. Everything should work fine with 1.99_03. 1.99_04 works with the files installed, but I haven't tried the SOAP part of it yet. The attached file is *not* a patch to OI2, but the files to be copied into the lib directory. This is on purpose: Almost everything in this SOAP implementation can (and most things probably will) change. The stuff here is intended more of a base for discussions as a full release. So if you feel like adding SOAP to your OI2, please try it out and report your opinion about. Sorry for the long delay, I have been heavily involved in other projects. Martin Kutter |
From: Yung-chung L. <xe...@cp...> - 2004-06-25 04:21:02
|
I just found there was a missing line: use HTTP::Status qw( RC_FOUND ); , or I could get such an error message: Syntax error on line 1170 of /usr/local/apache2/conf/httpd.conf: Cannot add factory type [apache2] to class [OpenInteract2::Response]: factory class [OpenInteract2::Response::Apache2] cannot be required [Bareword "RC_FOUND" not allowed while "strict subs" in use at /usr/local/lib/perl5/site_perl/5.8.3/OpenInteract2/Response/Apache2.pm line 102.\nCompilation failed in require at (eval 798) line 3.\n]\nCompilation failed in require at (eval 4) line 1.\n Yung-chung Lin -- But my OI2 with apache2 is still not working....... [SIGH] |
From: <And...@Be...> - 2004-06-22 18:46:39
|
.. just had another idea: make the wiki a mini worflow using th = workflow package on cpan - gives you all the roles you need, if you want them.. Andreas Nolte Leitung IT ----------------------------------------------------------- arvato direct services=20 Olympiastra=DFe 1 26419 Schortens Germany http://www.arvato.com/ and...@be... Phone +49 (0) 4421 - 76- 84002 Fax +49 (0) 4421 - 76- 84111 -----Original Message----- From: Wei Litao <wl...@ho...> To: ope...@li...urcefor <ope...@li...> Sent: Tue Jun 22 19:41:28 2004 Subject: Re: AW: [Openinteract-dev] can spops define customed Security level? Hello Andreas.Nolte, But What I need most is that I want to separate delete rights from = write rights. You see that most wiki page would be modified by every user, = but be deleted only be admin group. So the only write right looks not enough = :( Best regards,=20 =20 =3D=3D=3D=3D=3D=3D=3D At 2004-06-21, 15:24:18 you wrote: = =3D=3D=3D=3D=3D=3D=3D >Hello Wei,=20 > >you have to see, that you can use group rights in combination with = rights of >a person user on each individual wiki item. > >Why would you need more than: >- give world R/O rights everywhere >- make a wiki item creation handler and give world write access to the >handler >- give the creator W rights ( if you like ) on the created item >- give some admin group W rights to all wiki items > >What else would you need ? > >Mit freundlichen Gr?en >Andreas Nolte=20 >Leitung IT >------------------------------------------------- >arvato direct services >Olympiastra? 1 >26419 Schortens >Germany >http://www.arvato.com/ >and...@be... >Telefon +49 (0) 44 21 - 76-84002 >Telefax +49 (0) 44 21 - 76-84111 > > > >-----Urspr?gliche Nachricht----- >Von: Wei Litao [mailto:wl...@ho...]=20 >Gesendet: Montag, 21. Juni 2004 06:43 >An: openinteract-dev >Betreff: [Openinteract-dev] can spops define customed Security level? > > >Hello everybody, > >I want to use OI to implement a wiki based website, but it seems the >security for read, write, none is not enought (since i want to = separate >delete security from write), can SPOPS add customed security level?=20 > > > >Best regards,=20 > =20 >Wei Litao >wl...@ho... >2004-06-21 > > >------------------------------------------------------- >This SF.Net email is sponsored by The 2004 JavaOne(SM) Conference = Learn from >the experts at JavaOne(SM), Sun's Worldwide Java Developer Conference, = June >28 - July 1 at the Moscone Center in San Francisco, CA REGISTER AND = SAVE! >http://java.sun.com/javaone/sf Priority Code NWMGYKND >_______________________________________________ >openinteract-dev mailing list ope...@li... >https://lists.sourceforge.net/lists/listinfo/openinteract-dev >. =3D =3D =3D =3D =3D =3D =3D =3D =3D =3D =3D =3D =3D =3D =3D =3D =3D =3D = =3D =3D =09 Wei Litao wl...@ho... 2004-06-23 N=18?S^??[)?(?[?ZrA?=1A????)?-??V?v??~)?:?x??U???n6????_u????r=19???????= ??^???y??+ ??????????ZrHZ?&??{^?-u?j)b?b?)zx??r?????=1E~?zw????????????l??)??zx??r?= |
From: <And...@Be...> - 2004-06-22 18:40:09
|
.. this is easy: just use handler secirity for a delete handler and = give rights ony to the admins .. cheers from on the road - andreas Andreas Nolte Leitung IT ----------------------------------------------------------- arvato direct services=20 Olympiastra=DFe 1 26419 Schortens Germany http://www.arvato.com/ and...@be... Phone +49 (0) 4421 - 76- 84002 Fax +49 (0) 4421 - 76- 84111 -----Original Message----- From: Wei Litao <wl...@ho...> To: ope...@li...urcefor <ope...@li...> Sent: Tue Jun 22 19:41:28 2004 Subject: Re: AW: [Openinteract-dev] can spops define customed Security level? Hello Andreas.Nolte, But What I need most is that I want to separate delete rights from = write rights. You see that most wiki page would be modified by every user, = but be deleted only be admin group. So the only write right looks not enough = :( Best regards,=20 =20 =3D=3D=3D=3D=3D=3D=3D At 2004-06-21, 15:24:18 you wrote: = =3D=3D=3D=3D=3D=3D=3D >Hello Wei,=20 > >you have to see, that you can use group rights in combination with = rights of >a person user on each individual wiki item. > >Why would you need more than: >- give world R/O rights everywhere >- make a wiki item creation handler and give world write access to the >handler >- give the creator W rights ( if you like ) on the created item >- give some admin group W rights to all wiki items > >What else would you need ? > >Mit freundlichen Gr?en >Andreas Nolte=20 >Leitung IT >------------------------------------------------- >arvato direct services >Olympiastra? 1 >26419 Schortens >Germany >http://www.arvato.com/ >and...@be... >Telefon +49 (0) 44 21 - 76-84002 >Telefax +49 (0) 44 21 - 76-84111 > > > >-----Urspr?gliche Nachricht----- >Von: Wei Litao [mailto:wl...@ho...]=20 >Gesendet: Montag, 21. Juni 2004 06:43 >An: openinteract-dev >Betreff: [Openinteract-dev] can spops define customed Security level? > > >Hello everybody, > >I want to use OI to implement a wiki based website, but it seems the >security for read, write, none is not enought (since i want to = separate >delete security from write), can SPOPS add customed security level?=20 > > > >Best regards,=20 > =20 >Wei Litao >wl...@ho... >2004-06-21 > > >------------------------------------------------------- >This SF.Net email is sponsored by The 2004 JavaOne(SM) Conference = Learn from >the experts at JavaOne(SM), Sun's Worldwide Java Developer Conference, = June >28 - July 1 at the Moscone Center in San Francisco, CA REGISTER AND = SAVE! >http://java.sun.com/javaone/sf Priority Code NWMGYKND >_______________________________________________ >openinteract-dev mailing list ope...@li... >https://lists.sourceforge.net/lists/listinfo/openinteract-dev >. =3D =3D =3D =3D =3D =3D =3D =3D =3D =3D =3D =3D =3D =3D =3D =3D =3D =3D = =3D =3D =09 Wei Litao wl...@ho... 2004-06-23 N=18?S^??[)?(?[?ZrA?=1A????)?-??V?v??~)?:?x??U???n6????_u????r=19???????= ??^???y??+ ??????????ZrHZ?&??{^?-u?j)b?b?)zx??r?????=1E~?zw????????????l??)??zx??r?= |
From: Wei L. <wl...@ho...> - 2004-06-22 17:43:14
|
SGVsbG8gQW5kcmVhcy5Ob2x0ZSwNCg0KQnV0IFdoYXQgSSBuZWVkIG1vc3QgaXMgdGhhdCBJIHdh bnQgdG8gc2VwYXJhdGUgZGVsZXRlIHJpZ2h0cyBmcm9tIHdyaXRlIHJpZ2h0cy4gWW91IHNlZSB0 aGF0IG1vc3Qgd2lraSBwYWdlIHdvdWxkIGJlIG1vZGlmaWVkIGJ5IGV2ZXJ5IHVzZXIsIGJ1dCBi ZSBkZWxldGVkIG9ubHkgYmUgYWRtaW4gZ3JvdXAuIFNvIHRoZSBvbmx5IHdyaXRlIHJpZ2h0IGxv b2tzIG5vdCBlbm91Z2ggOigNCg0KDQpCZXN0IHJlZ2FyZHMsIA0KICANCj09PT09PT0gQXQgMjAw NC0wNi0yMSwgMTU6MjQ6MTggeW91IHdyb3RlOiA9PT09PT09DQoNCj5IZWxsbyBXZWksIA0KPg0K PnlvdSBoYXZlIHRvIHNlZSwgdGhhdCB5b3UgY2FuIHVzZSBncm91cCByaWdodHMgaW4gY29tYmlu YXRpb24gd2l0aCByaWdodHMgb2YNCj5hIHBlcnNvbiB1c2VyIG9uIGVhY2ggaW5kaXZpZHVhbCB3 aWtpIGl0ZW0uDQo+DQo+V2h5IHdvdWxkIHlvdSBuZWVkIG1vcmUgdGhhbjoNCj4tIGdpdmUgd29y bGQgUi9PIHJpZ2h0cyBldmVyeXdoZXJlDQo+LSBtYWtlIGEgd2lraSBpdGVtIGNyZWF0aW9uIGhh bmRsZXIgYW5kIGdpdmUgd29ybGQgd3JpdGUgYWNjZXNzIHRvIHRoZQ0KPmhhbmRsZXINCj4tIGdp dmUgdGhlIGNyZWF0b3IgVyByaWdodHMgKCBpZiB5b3UgbGlrZSApIG9uIHRoZSBjcmVhdGVkIGl0 ZW0NCj4tIGdpdmUgc29tZSBhZG1pbiBncm91cCBXIHJpZ2h0cyB0byBhbGwgd2lraSBpdGVtcw0K Pg0KPldoYXQgZWxzZSB3b3VsZCB5b3UgbmVlZCA/DQo+DQo+TWl0IGZyZXVuZGxpY2hlbiBHcvzf ZW4NCj5BbmRyZWFzIE5vbHRlIA0KPkxlaXR1bmcgSVQNCj4tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+YXJ2YXRvIGRpcmVjdCBzZXJ2aWNlcw0KPk9s eW1waWFzdHJh32UgMQ0KPjI2NDE5IFNjaG9ydGVucw0KPkdlcm1hbnkNCj5odHRwOi8vd3d3LmFy dmF0by5jb20vDQo+YW5kcmVhcy5ub2x0ZUBiZXJ0ZWxzbWFubi5kZQ0KPlRlbGVmb24gKzQ5ICgw KSA0NCAyMSAtIDc2LTg0MDAyDQo+VGVsZWZheCArNDkgKDApIDQ0IDIxIC0gNzYtODQxMTENCj4N Cj4NCj4NCj4tLS0tLVVyc3By/G5nbGljaGUgTmFjaHJpY2h0LS0tLS0NCj5Wb246IFdlaSBMaXRh byBbbWFpbHRvOndsdDAwOEBob3RtYWlsLmNvbV0gDQo+R2VzZW5kZXQ6IE1vbnRhZywgMjEuIEp1 bmkgMjAwNCAwNjo0Mw0KPkFuOiBvcGVuaW50ZXJhY3QtZGV2DQo+QmV0cmVmZjogW09wZW5pbnRl cmFjdC1kZXZdIGNhbiBzcG9wcyBkZWZpbmUgY3VzdG9tZWQgU2VjdXJpdHkgbGV2ZWw/DQo+DQo+ DQo+SGVsbG8gZXZlcnlib2R5LA0KPg0KPkkgd2FudCB0byB1c2UgT0kgdG8gaW1wbGVtZW50IGEg d2lraSBiYXNlZCB3ZWJzaXRlLCBidXQgaXQgc2VlbXMgdGhlDQo+c2VjdXJpdHkgZm9yIHJlYWQs IHdyaXRlLCBub25lIGlzIG5vdCBlbm91Z2h0IChzaW5jZSBpIHdhbnQgdG8gc2VwYXJhdGUNCj5k ZWxldGUgc2VjdXJpdHkgZnJvbSB3cml0ZSksIGNhbiBTUE9QUyBhZGQgY3VzdG9tZWQgc2VjdXJp dHkgbGV2ZWw/IA0KPg0KPg0KPg0KPkJlc3QgcmVnYXJkcywgDQo+ICANCj5XZWkgTGl0YW8NCj53 bHQwMDhAaG90bWFpbC5jb20NCj4yMDA0LTA2LTIxDQo+DQo+DQo+LS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPlRoaXMgU0YuTmV0IGVtYWls IGlzIHNwb25zb3JlZCBieSBUaGUgMjAwNCBKYXZhT25lKFNNKSBDb25mZXJlbmNlIExlYXJuIGZy b20NCj50aGUgZXhwZXJ0cyBhdCBKYXZhT25lKFNNKSwgU3VuJ3MgV29ybGR3aWRlIEphdmEgRGV2 ZWxvcGVyIENvbmZlcmVuY2UsIEp1bmUNCj4yOCAtIEp1bHkgMSBhdCB0aGUgTW9zY29uZSBDZW50 ZXIgaW4gU2FuIEZyYW5jaXNjbywgQ0EgUkVHSVNURVIgQU5EIFNBVkUhDQo+aHR0cDovL2phdmEu c3VuLmNvbS9qYXZhb25lL3NmIFByaW9yaXR5IENvZGUgTldNR1lLTkQNCj5fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXw0KPm9wZW5pbnRlcmFjdC1kZXYgbWFp bGluZyBsaXN0IG9wZW5pbnRlcmFjdC1kZXZAbGlzdHMuc291cmNlZm9yZ2UubmV0DQo+aHR0cHM6 Ly9saXN0cy5zb3VyY2Vmb3JnZS5uZXQvbGlzdHMvbGlzdGluZm8vb3BlbmludGVyYWN0LWRldg0K Pi4NCg0KPSA9ID0gPSA9ID0gPSA9ID0gPSA9ID0gPSA9ID0gPSA9ID0gPSA9DQoJCQkNCldlaSBM aXRhbw0Kd2x0MDA4QGhvdG1haWwuY29tDQoyMDA0LTA2LTIzDQoNCg== |
From: <And...@Be...> - 2004-06-21 07:26:03
|
Hello Wei,=20 you have to see, that you can use group rights in combination with = rights of a person user on each individual wiki item. Why would you need more than: - give world R/O rights everywhere - make a wiki item creation handler and give world write access to the handler - give the creator W rights ( if you like ) on the created item - give some admin group W rights to all wiki items What else would you need ? Mit freundlichen Gr=FC=DFen Andreas Nolte=20 Leitung IT ------------------------------------------------- arvato direct services Olympiastra=DFe 1 26419 Schortens Germany http://www.arvato.com/ and...@be... Telefon +49 (0) 44 21 - 76-84002 Telefax +49 (0) 44 21 - 76-84111 -----Urspr=FCngliche Nachricht----- Von: Wei Litao [mailto:wl...@ho...]=20 Gesendet: Montag, 21. Juni 2004 06:43 An: openinteract-dev Betreff: [Openinteract-dev] can spops define customed Security level? Hello everybody, I want to use OI to implement a wiki based website, but it seems the security for read, write, none is not enought (since i want to separate delete security from write), can SPOPS add customed security level?=20 Best regards,=20 =20 Wei Litao wl...@ho... 2004-06-21 ------------------------------------------------------- This SF.Net email is sponsored by The 2004 JavaOne(SM) Conference Learn = from the experts at JavaOne(SM), Sun's Worldwide Java Developer Conference, = June 28 - July 1 at the Moscone Center in San Francisco, CA REGISTER AND = SAVE! http://java.sun.com/javaone/sf Priority Code NWMGYKND _______________________________________________ openinteract-dev mailing list ope...@li... https://lists.sourceforge.net/lists/listinfo/openinteract-dev |
From: Wei L. <wl...@ho...> - 2004-06-21 04:43:03
|
Hello everybody, I want to use OI to implement a wiki based website, but it seems the security for read, write, none is not enought (since i want to separate delete security from write), can SPOPS add customed security level? Best regards, Wei Litao wl...@ho... 2004-06-21 |
From: Kutter M. <mar...@er...> - 2004-05-27 07:04:46
|
Hi Cris ! Here are some more details: >> There are some limitations in the current implementation: >> >> 1. Complex datatypes are not supported in SOAP requests. This is due to >> the >> simple mapping of request parameters to OpenInteract actions - and a >> similarity to WWW forms (have you ever seen a complex type in a HTML form >> ?). However, SOAP responses may be of arbitrary complexity. >I'm not sure I understand this. Do you mean that SOAP::Lite supports them >but OI doesn't? Well, I guess that no OI programmer sets up his actions to deal with complex datatypes, because these cannot be supplied by HTML-Forms - something like the example below is probably never returned by a HTML form. { book => { isbn => 1234567, author => 'Cris Winters', chapters => [ "Introduction to OI", "Programmer's Guide" ] } } My current SOAP-to-action parameter mapping just takes all parameters from the SOAP request and sets the action parameters accordingly. In theory, there would be no problem in handling complex types - at the cost of loosing the opportunity to make up a WWW-form interface that provides the same functionality. Actually, I'm not quite sure if I do the mapping right... >> 2. Compression, XML encryption and SOAP authentication are currently not >> supported. This may change for compression and XML encryption, but SOAP >> authentication is not supported by SOAP::Lite and I don't feel like >> implementing a new SOAP toolkit. > >If authentication is part of the request would it be possible for us to >pull the auth data out and do it ourselves? For apache1/apache2 we could >even create an auth handler to deal with this (similar to >Apache::OI2::Auth) SOAP authentication (that is, sendingcredentials as part of the SOAP message) is currently not supported by SOAP::Lite - that's all. HTTP authentication is no problem. >> 3. The URL rewrite requires SOAP clients to send appropriate namespace >> uris.= >> This is no major drawback - .NET does the same. > >Not sure what this means either. SOAP messages may contain so-called namespace URIs, denoting to which target namespace the message should map to. Basically said, a SOAP request contains - the SOAP envelope, - a SOAP message (usually a method call) - message parameters The SOAP message and the parameters may be additionally qualified by a namespace URI (e.g. "http://openinteract.org/WebService"). .NET Web Services won't accept messages without namespace URIs, so this doesn't mean demanding something new from the world... >> 4. There currently is no WSDL support. > >Is this difficult to implement? Maybe we can have optional hooks for >actions to provide the necessary metadata? More or less. SOAP::Lite has only limited support for WSDL, and WSDL support in perl is generally difficult to implement, because of the need to define strong-typed message elements (number, string etc.) unknown to perl. A WDSL file could define something like a method called "Date" returning the date in several fields like DayOfWeek => 'Wed', # string DayOfMonth => '28', # number Month => 'May', # string Year => '2004' # number Complete WSDL support would mean - request typechecking (against SOAP types, not perl datatypes) - request validation (does the request contain the elements defined in WSDL ?) - maybe parameter mapping (...maybe mapping of complex types to simple ones with some config directives in the action config ?) - response templating (providing a kind of template for the response) - maybe output parameter mapping (same as for request params...) - response typechecking (make sure we don't params of the wrong type back). This is not *that* hard to do, but it's a bunch of work. ...I'm currently working (with little involvement) on WSDL support, but it may take a while and maybe never cover the subject completely... >> The least obvious parts in this implementation are 3.3 (the URL rewrite >> for >> request-to-action mapping) and 4.1.1 (the content generation). >> >> A look at URL rewriting: >> >> URL rewrite seems desirable - this allows to set up a WebService in >> parallel >> to a WWW frontend (e.g. http://www.myhost.org/OpenInteract/ for the WWW >> frontend, http://www.myhost.org/OpenInteractWebService/ for the SOAP >> frontend). >> Moreover, it allows to map SOAP requests accepted at exactly _one_ URL to >> different OpenInteract actions based on the namespace uri of the request. > >Hmmmm... this is an interesting idea, being able to differentiate content >generators based on the top-level namespace rather than the action + task >mapping. It would not be too difficult to implement either. I'll create a >JIRA task for investigating this... Actually, URL rewrite is almost necessary if you don't want your action tasks to be one flat list: A Web Service usually has *one* URL to connect to, with lots of method (correspond to OI tasks) to call. OI, in contrast, has many URLs which map to different actions and tasks. The (simple) URL rewrite I got up by now just rewrites the URL to the SOAP namespace URI + method name. The SOAP namespace URI must be the same as the base URL for an OI action would be. This means, if you got a OI action saying "Hello world" set up at "http://mymachine.org/hello/world" with "hello" as action and "world" as task, and a SOAP Webservice set up at "http://mymachine.org/WebService/" you would have to send a SOAP request for the method "world" qualified by the namespace URI "http://mymachine.org/hello". A more sophisticated URL rewrite mechanism could be based on config file - but my simple one is all I need by now. >> A look at content generation: >> >> The content generator currently takes the action return parameters and >> - creates a SOAP::Fault response if an error_msg is set >> - encodes _all_ return parameters (aside from ACTION) into a SOAP >> response, >> automatically encoding SPOPS objects, hash and list references correctly. > > >Excellent! This is exactly what I had in mind. > >> Hereby SPOPS objects are transformed into Hash refs containing all fields >> of the object (nobody but a perl SOAP client could handle perl >> objects...). > >Absolutely, makes perfect sense. > >> Theres are some caveats in this kind of content generation: >> 1. The soap response may include more information than the WWW response - >> this occurs if you filter your action response with the template. > >That's okay. I assume the client only uses what data it needs. > >> 2. Lists may be badly encoded if they contain data of more than one SOAP >> datatype (number, string and ? I forgot about is...). This is a SOAP >> limitation. > >So if you return a list of 'news' SPOPS objects (which just get hashified) >SOAP gets confused? Or something else...? No, not just. SOAP only requires list elements to be of the same type, so mixing numbers with strings may result in unpredictable behaviour. This is due to the nature of SOAP messages, which encode list as something like <list of numbers> <element>1</element> <element>2</element> </list> (well, that's actually not what SOAP messages look like, but it basically is how list encoding works...). Lists of SPOPS objects are no problem as long as the SPOPS objects are of the same class - I don't know how it is with SPOPS objects of different classes in one list. >> Interested ? > >Heck yes! This would be a really snazzy thing to show people at the >tutorial I'm doing at YAPC::NA in June as well. (No pressure or >anything...) I can post the OI-1.99_03 stuff to the list by now (along with an example client and some docs). I'm not sure, wether I got .NET interopability working by now - I have no means to test it. And, sure, I guess some serious bugs are lurking around somewhere, too... >Thanks for your hard work! Apreciated. But don't expect too much - I implement the stuff because I need it, and YAGNI is one of my working principles... Regards, Martin Kutter |
From: Chris W. <ch...@cw...> - 2004-05-26 13:29:45
|
> I got an implementation ready for a SOAP Content generator, a SOAP Request > & Wow, this is great! > Response handler and an apache1 content handler using SOAP::Lite > (currently > based on OpenInteract-1.99_03, but porting to _04 shouldn't be much of an > issue). I'm pretty sure that nothing in the request/response objects changed between _03 and _04, but I'm not 100% certain. (One of the side-effects of taking too long to get a release out...) > The basic layout is like this: > > Apache Content handler takes request and > > 1 checks correctness (HTTP POST, encoding, compression etc.) and sends > back error message on error. > 2 sets up response (the only change to OpenInteract2::Response::Apache is > setting the content type to text/xml ). > 3 sets up request which > 3.1 parses SOAP document & calls oi2_error on error > 3.2 looks up SOAP namespace uri from SOAP request and > rewrites URL on base of the namespace uri > 3.3 returns request containing both apache and soap request > (soap request is a SOAP::SOM object) > 4 calls controller (should be raw, i "accidentally" wrote a new one, too) > 4.1 controller executes action > 4.1.1 action calls content generator (SOAP) to create content > 4.2 controller sets up response > 5 sends back content This seems straightforward enough. > Both apache content handler and the request module are somewhat more > complicated than the existing ones. This is due to the whole bunch of > errors > that can appear when receiving SOAP messages, and the different levels of > errors (HTTP level, XML encoding level, content level). Sure, this makes sense. We can probably move these into a separate module so you can run SOAP under the other adapters (LWP, apache2, etc.) as well. > There are some limitations in the current implementation: > > 1. Complex datatypes are not supported in SOAP requests. This is due to > the > simple mapping of request parameters to OpenInteract actions - and a > similarity to WWW forms (have you ever seen a complex type in a HTML form > ?). However, SOAP responses may be of arbitrary complexity. I'm not sure I understand this. Do you mean that SOAP::Lite supports them but OI doesn't? > 2. Compression, XML encryption and SOAP authentication are currently not > supported. This may change for compression and XML encryption, but SOAP > authentication is not supported by SOAP::Lite and I don't feel like > implementing a new SOAP toolkit. If authentication is part of the request would it be possible for us to pull the auth data out and do it ourselves? For apache1/apache2 we could even create an auth handler to deal with this (similar to Apache::OI2::Auth) > 3. The URL rewrite requires SOAP clients to send appropriate namespace > uris.= > This is no major drawback - .NET does the same. Not sure what this means either. > 4. There currently is no WSDL support. Is this difficult to implement? Maybe we can have optional hooks for actions to provide the necessary metadata? > The least obvious parts in this implementation are 3.3 (the URL rewrite > for > request-to-action mapping) and 4.1.1 (the content generation). > > A look at URL rewriting: > > URL rewrite seems desirable - this allows to set up a WebService in > parallel > to a WWW frontend (e.g. http://www.myhost.org/OpenInteract/ for the WWW > frontend, http://www.myhost.org/OpenInteractWebService/ for the SOAP > frontend). > Moreover, it allows to map SOAP requests accepted at exactly _one_ URL to > different OpenInteract actions based on the namespace uri of the request. Hmmmm... this is an interesting idea, being able to differentiate content generators based on the top-level namespace rather than the action + task mapping. It would not be too difficult to implement either. I'll create a JIRA task for investigating this... > The SOAP namespace URI seems to be a "usable" base for the URL rewrite: It > just identifies some (arbitrary) namespace, which does not need to refer > to > an existing URL. Namespace URIs can be set to arbitrary values by > (almost?) > all SOAP client packages, including SOAP::Lite (.NET supports and normally > even requires the use of namespace URIs). I'm not familiar with the namespace issues with SOAP so this is a bit over my head. > A look at content generation: > > The content generator currently takes the action return parameters and > - creates a SOAP::Fault response if an error_msg is set > - encodes _all_ return parameters (aside from ACTION) into a SOAP > response, > automatically encoding SPOPS objects, hash and list references correctly. Excellent! This is exactly what I had in mind. > Hereby SPOPS objects are transformed into Hash refs containing all fields > of the object (nobody but a perl SOAP client could handle perl > objects...). Absolutely, makes perfect sense. > Theres are some caveats in this kind of content generation: > 1. The soap response may include more information than the WWW response - > this occurs if you filter your action response with the template. That's okay. I assume the client only uses what data it needs. > 2. Lists may be badly encoded if they contain data of more than one SOAP > datatype (number, string and ? I forgot about is...). This is a SOAP > limitation. So if you return a list of 'news' SPOPS objects (which just get hashified) SOAP gets confused? Or something else...? > Interested ? Heck yes! This would be a really snazzy thing to show people at the tutorial I'm doing at YAPC::NA in June as well. (No pressure or anything...) Thanks for your hard work! Chris |
From: Kutter M. <mar...@er...> - 2004-05-26 10:23:43
|
Hi * ! On the Wiki, SOAP is mentioned as an alternative content generator in Openinteract2Ideas. I got an implementation ready for a SOAP Content generator, a SOAP Request & Response handler and an apache1 content handler using SOAP::Lite (currently based on OpenInteract-1.99_03, but porting to _04 shouldn't be much of an issue). The basic layout is like this: Apache Content handler takes request and 1 checks correctness (HTTP POST, encoding, compression etc.) and sends back error message on error. 2 sets up response (the only change to OpenInteract2::Response::Apache is setting the content type to text/xml ). 3 sets up request which 3.1 parses SOAP document & calls oi2_error on error 3.2 looks up SOAP namespace uri from SOAP request and rewrites URL on base of the namespace uri 3.3 returns request containing both apache and soap request (soap request is a SOAP::SOM object) 4 calls controller (should be raw, i "accidentally" wrote a new one, too) 4.1 controller executes action 4.1.1 action calls content generator (SOAP) to create content 4.2 controller sets up response 5 sends back content Both apache content handler and the request module are somewhat more complicated than the existing ones. This is due to the whole bunch of errors that can appear when receiving SOAP messages, and the different levels of errors (HTTP level, XML encoding level, content level). There are some limitations in the current implementation: 1. Complex datatypes are not supported in SOAP requests. This is due to the simple mapping of request parameters to OpenInteract actions - and a similarity to WWW forms (have you ever seen a complex type in a HTML form ?). However, SOAP responses may be of arbitrary complexity. 2. Compression, XML encryption and SOAP authentication are currently not supported. This may change for compression and XML encryption, but SOAP authentication is not supported by SOAP::Lite and I don't feel like implementing a new SOAP toolkit. 3. The URL rewrite requires SOAP clients to send appropriate namespace uris. This is no major drawback - .NET does the same. 4. There currently is no WSDL support. The least obvious parts in this implementation are 3.3 (the URL rewrite for request-to-action mapping) and 4.1.1 (the content generation). A look at URL rewriting: URL rewrite seems desirable - this allows to set up a WebService in parallel to a WWW frontend (e.g. http://www.myhost.org/OpenInteract/ for the WWW frontend, http://www.myhost.org/OpenInteractWebService/ for the SOAP frontend). Moreover, it allows to map SOAP requests accepted at exactly _one_ URL to different OpenInteract actions based on the namespace uri of the request. The SOAP namespace URI seems to be a "usable" base for the URL rewrite: It just identifies some (arbitrary) namespace, which does not need to refer to an existing URL. Namespace URIs can be set to arbitrary values by (almost?) all SOAP client packages, including SOAP::Lite (.NET supports and normally even requires the use of namespace URIs). A look at content generation: The content generator currently takes the action return parameters and - creates a SOAP::Fault response if an error_msg is set - encodes _all_ return parameters (aside from ACTION) into a SOAP response, automatically encoding SPOPS objects, hash and list references correctly. Hereby SPOPS objects are transformed into Hash refs containing all fields of the object (nobody but a perl SOAP client could handle perl objects...). Theres are some caveats in this kind of content generation: 1. The soap response may include more information than the WWW response - this occurs if you filter your action response with the template. 2. Lists may be badly encoded if they contain data of more than one SOAP datatype (number, string and ? I forgot about is...). This is a SOAP limitation. Interested ? Martin Kutter |
From: Chris W. <ch...@cw...> - 2004-05-26 01:18:02
|
On May 25, 2004, at 3:23 AM, Kutter Martin wrote: > The SPOPS-0.86 ldap test 40_ldap.t and 41_ldap_inline_config.t scripts > contain some errors which cause them to fail (these errors may not > appear on > an LDAP directory with disabled schema checking, but as this is not > what one > can expect, the tests should also work with enabled schema check). > > Most errors can be tracked down to assigning a DN to an LDAP object > with a > different value (or no value) in the equally named field. At least > openldap-2.1 complains with something like "naming attribute 'ou' is > not > present in entry". > > In the 41_ldap_inline_config.t script, the error appears to be a typo: > The > class of an SPOPS object is tested, but is defined different than the > test > value. > > The attached patches should fix these errors Thanks, applied! I'll respond to general LDAP items in your other email... Chris -- Chris Winters Creating enterprise-capable snack systems since 1988 |
From: Kutter M. <mar...@er...> - 2004-05-25 07:26:15
|
Hi *! The SPOPS-0.86 ldap test 40_ldap.t and 41_ldap_inline_config.t scripts contain some errors which cause them to fail (these errors may not appear on an LDAP directory with disabled schema checking, but as this is not what one can expect, the tests should also work with enabled schema check). Most errors can be tracked down to assigning a DN to an LDAP object with a different value (or no value) in the equally named field. At least openldap-2.1 complains with something like "naming attribute 'ou' is not present in entry". In the 41_ldap_inline_config.t script, the error appears to be a typo: The class of an SPOPS object is tested, but is defined different than the test value. The attached patches should fix these errors. Regards, Martin Kutter |
From: Antti <ant...@he...> - 2004-05-05 16:24:06
|
Hi all! I'm new here so a minimal introducton could be in place: I'm a CompSci student and sometimes working on the Mimerdesk/Dicole project mendtioned earlier on this list mainly as a volunteer. We are building the new Dicole upon OI (and will soon port it to OI2) and I'm currently trying to wrap my brains around OI2 with some prior OI1 knowledge. My question concerns OI(2) caching on a distributed environment. Our system will sometimes be distributed among two or more request serving servers running apache and mod_perl (and a single database backend) and I'm wondering what might be the best solution to implement various caching strategies for such an environment. Our application will be quite dynamic with very few static elements and thus it might be not so important to cache already generated pages in a shared filesystem. We anyway do have some quite static sets of data in the database which are used as base to generate the user specific data and it would be nice to be able to cache these data collections - preferably in their parsed state. An example of this kind of data would be the navigation system. We have many spops objects (of one type) which in the end form a tree of navigation items. After the navigation tree has been generated it is run through for the specific user and the parts the user is not allowed to see are deleted and user/group specific information and links are generated. The first point of caching would be after the generation of the initial navigation items tree. The second could be after the user specific navigation tree generation. The first data collection will be the same for every user and thus it will be loaded from the database and formed into the tree each time a request is received. I peronally think that the best solution for caching this kind of data would be to keep it in the process' memory. This rises some questions about the validity of the data which I have thought of resolving by creating a database table listing the last modification times for each dataset which will be checked in the beginning of each request (could also be any other shared datasource). The more global datasets like this we have, the more we get benefit out of having a single small dataset specifying the validity of all other datasets which hold their generation time that will be checked against the last data modifying time when the data is used. My question is could there be support in OI2 for this kind of data caching? I know it would be quite easy to extend the OI2::Cache to use also Cache::MemoryCache to hold the data cache in each process but there should also be a globally accessible place (LDAP, database others?) to store the last modification times. If OI2 would use this kind of caching for example language data or theme data we get even more benefist out of this kind of approach since the single checking of the validity table would validate even more data caches in memory. Also I'd like to hear Chris's ideas about language data storing and caching if I could learn something to improve or refactor my ideas on the global data caching area. Then to the second caching area.. We have in our system a heavily used groups system and lots of user specific data - so both for groups and for users there will be loads of datasets like the navigation tree described earlier. This data we can not cache in the process' memory since there simply is no space for the data of many users and groups multiplied by the amount of processes running simultaneously. So if we want to cache this kind of data an obivous place would be the filesystem. Now I don't like the idea that caching would be handled in a shared filesystem and thus suggest that it is being held in the local filesystem and its validity would be checked just like the global data - just tied to the user/group/whatever key. For this purpose we could either use the previous global data table or form new tables which could be queried just for the relevant data (current user and users groups). This again would be nice to somehow integrate to OI2 to get the full benefits out of a single modifications table. So any thoughts or suggestions on the caching area bot in OI or in our system? - Antti Ps. Thanks if you read the whole post ;) |
From: Ray Z. <rz...@co...> - 2004-04-30 21:02:16
|
>> I wonder what happens if you make $log a package variable? > > Good question! More investigation is clearly needed. I made $log in SPOPS a package variable and it still destroyed all of the Logger objects in the same sequence. I think the order of global destruction is undefined in Perl, so this isn't going to make any difference. Ray |