PMC Architecture Meeting 20100219

From ADempiere
Jump to: navigation, search
This Wiki is read-only for reference purposes to avoid broken links.

Date: 2010-02-19
Time: 9AM GMT
Venue: irc #adempiere-team
Support Spreadsheet: Adempiere PMC Architecture
Chat times in GMT-5


Summary:

  • PMC architectural meetings: Every week wednesday 7AM GMT 1h duration
  • Primary goal of Architecture Group: Evolve the current architecture
  • But: Be flexible, take input from community, do research and evaluation
  • Current key topics: security, performance, scability, modular, testing, tools, persistence layer
  • Tools (both in the support spreadsheet):
    • Wishlist for architectural features
    • Todo list for group members
  • First todo: Sketch initial wishlist items until meeting next wednesday

(03:58:41) viola: ah here we go!
(03:59:00) CarlosRuiz: Hello
(03:59:04) viola: hi!
(03:59:33) hengsin: hi carlos
(04:00:44) CarlosRuiz: to start: thanks for attending the meeting  :-)
(04:01:25) CarlosRuiz: let me try to draft an agenda
(04:02:14) viola: ok
(04:04:42) trifon: hello everyone
(04:04:42) CarlosRuiz: OK, I have these from my notes (please add more if needed)
(04:04:42) CarlosRuiz: - define a periodic meeting
(04:04:42) CarlosRuiz: - review the scope defined in PMC Structure
(04:04:42) CarlosRuiz: - review a potential list of initial tasks to work on
(04:04:42) CarlosRuiz: ** consolidate current architecture / drawbacks / solutions
(04:04:42) CarlosRuiz: ** review issues with libero half as extension half as trunk
(04:04:42) CarlosRuiz: ** tracking dictionary and db changes
(04:04:42) CarlosRuiz: ** interaction with all PMC groups (i.e. user login)
(04:04:42) CarlosRuiz: ** backward compatibility guidelines
(04:04:42) CarlosRuiz: ** adempiere specification process
(04:04:42) CarlosRuiz: ** adempiere with big number of records (i.e. pagination on zk, select count(*), caching big tables ...)
(04:04:57) CarlosRuiz: [ hi trifon ]
(04:06:16) hengsin: carlos, can we talk about release schedule & roadmap as well ?
(04:06:35) CarlosRuiz: sure
(04:06:53) viola: this is an initial meeting - I would not now talk about specific problems
(04:07:02) viola: rather define some list of wishes
(04:07:53) CarlosRuiz: the ** are to define tasks to work on, how can we work on that / what can be the expected result of the task, expected date, etc
(04:08:06) viola: ok
(04:08:33) CarlosRuiz: but if there is enough interest on some topic we can go a little deeper
(04:09:05) viola: ok lets start
(04:09:17) hengsin: release schedule is probably the most important for me, need to justify my involvement as I do have person to report to now :)
(04:10:19) viola: hey congrat for that!
(04:11:03) CarlosRuiz: it's really important / and probably the most expected initial result from PMC, because we have too much time without releasing a maintained version
(04:11:39) viola: but isn't that the scope of the release mgmt group?
(04:12:22) trifon: hengsin: as person to report to i supose you mean girlfriend/wife ? :)
(04:12:43) hengsin: trifon: that's a different problem, really!
(04:12:50) CarlosRuiz: yep - release mgmt, but architecture has a lot to define there
(04:13:13) viola: ahm - excuse me, but: Very low traffic here - shouldn't we concentrate on this meeting and try to enhance speed?
(04:13:19) CarlosRuiz: let's start with the easier  :-)
(04:13:19) CarlosRuiz: can we define a date / time for a periodic meeting?
(04:13:30) hengsin: we need to prioritize architecture that would facilitate us making frequent releases
(04:13:47) hengsin: "prioritize architecture work"
(04:14:20) CarlosRuiz: weekly? bi-weekly? which weekday? which time?
(04:14:20) CarlosRuiz: alternating times every session to try to have Paul here?
(04:14:24) viola: I would propose: Weekly here on irc only as a 15 min status report
(04:15:31) hengsin: carlos, that's a good idea, Paul should be here
(04:15:56) viola: no real constraints for a *short* meeting from me
(04:16:47) hengsin: I guess we can have a status page where we update every week
(04:17:21) viola: good idea: we can do this on the wish list, no?
(04:17:21) CarlosRuiz: Jorg, are you early bird  :-)  ? 7AM can be ok for you?
(04:17:32) viola: if its GMT ;-)
(04:17:41) viola: no problem
(04:18:28) CarlosRuiz: 7GMT is 18 in Australia - I hope Paul can attend that time
(04:18:48) CarlosRuiz: 15 for HengSin, 23 for me, 8 for Jorg - that sounds feasible time
(04:18:55) viola: fine
(04:19:12) hengsin: fine for me
(04:20:01) viola: friday?
(04:20:53) CarlosRuiz: I guess better thursday / to avoid falling on Paul's weekend
(04:21:24) viola: monday or wednesday would be better but no veto
(04:22:11) CarlosRuiz: :-) monday will fall on my sunday
(04:22:26) CarlosRuiz: I'm ok with wednesday / heng sin?
(04:22:35) viola: brr I first must adapt to world-wide projects ;-)
(04:23:06) hengsin: wednesday is fine for me
(04:24:01) CarlosRuiz: bi weekly? 1h? 2h?
(04:24:32) viola: I'd prefer weekly 1 h
(04:25:16) CarlosRuiz: for me it's ok / there are plenty of work to do here and things to discuss in group
(04:25:32) CarlosRuiz: hengsin: weekly 1h?
(04:26:41) hengsin: yeap, 1h, 2 is too long to be that frequent
(04:27:29) CarlosRuiz: ok, then PMC architectural meetings -> every week wednesday 7AM GMT 1h duration
(04:27:56) viola: hurray;-)
(04:28:09) viola: carlos: you make a google cal entry?
(04:28:20) CarlosRuiz: sure
(04:28:20) CarlosRuiz: 2 - review te role and scope defined here http://www.adempiere.com/index.php/PMC_Structure#Architecture
(04:29:00) CarlosRuiz: :-) I was reading wrong / my time is not 23, is 2AM
(04:29:59) viola: I am reading two main goals:
(04:30:12) viola: 1. Move adempiere to some new arch
(04:30:52) viola: 2. Deliver spec for Documentation, Process, Conventions, Code Style
(04:31:03) viola: these can be separated
(04:32:16) trifon: what about choosing technology?
(04:32:25) trifon: like osgi? JPA or JDO?
(04:32:28) viola: part of 1?
(04:32:46) trifon: ok. then i 'm more intersted in 1.
(04:32:56) trifon: would like ot join the group working on point .1
(04:34:05) viola: hey! welcome!
(04:34:34) hengsin: we want to evolve the current architecture but I think we shouldn't say it is a "move" now, lets be more flexible here.
(04:34:50) CarlosRuiz: ready, invitation sent (sorry for the delay)
(04:35:19) viola: hengsin: Full Ack!
(04:35:40) viola: should we gather concrete requierements here?
(04:36:07) CarlosRuiz: agree too, we can work on a specific technology as group, or as goal, but we must not constraint the project to experiment other possibilities
(04:36:31) trifon: i think that only defining space where we can work on is enought for hte short meetings. we can't gather all req for 1 hour
(04:36:44) trifon: also gatherring initial ideas would be possible.
(04:36:51) trifon: but time is short.
(04:37:15) trifon: i mean in the meatings just scething.
(04:37:17) hengsin: yeap, I guess just identified the key theme for now
(04:37:22) trifon: yes.
(04:38:20) CarlosRuiz: about "2. Deliver spec for Documentation, Process, Conventions, Code Style"
(04:38:20) CarlosRuiz: I've wondered if it's in the scope of architectural - or if we must define some Development Leader
(04:38:20) CarlosRuiz: do you think that must be within the scope of this group?
(04:38:22) hengsin: and all this have again fit into our release strategy, i.e big changes should be a parallel experimental project first
(04:38:46) hengsin: "again must fit"
(04:39:22) trifon: it should be parralel effort.
(04:39:45) trifon: to explore and see how far we can reach and what issue we will find.
(04:40:02) hengsin: carlos, I think we can probably act as a group to validate a functional design/spec from the architecture point of view
(04:41:59) viola: I think 2 is not too much work - thiings are DONE in the Development PMC group - we only defined. no worry about that now
(04:42:22) CarlosRuiz: ok - we can drop such responsibility from this group - more than a responsibility is like an initial task to work on / and I can work on that
(04:43:03) viola: for 1: Proposal: Open a wiki page "Architecture Wish List" -- would contain requirements
(04:43:14) hengsin: carlos, how about validate a functional spec from the architecture point of view ( performance, scalability, etc) ?
(04:43:40) viola: and open "Architecture Sketch" for us as a working space
(04:44:45) CarlosRuiz: agree Heng Sin, I'll update the wiki page to reflect that
(04:44:45) CarlosRuiz: same for the other groups
(04:45:21) hengsin: the immediate key theme for me is "security, performance, scability, modular, testing and tools"
(04:46:58) CarlosRuiz: short question: do you prefer wiki page or google doc spreadsheet (or document) ?
(04:46:58) CarlosRuiz: personally I prefer a shared google spreadsheet for the things we're going to manage - but I'm ok with what you prefer
(04:47:36) trifon: wiki page is more open i think.
(04:48:39) trifon: for google doc admin have to invite everyone in order to be able to edit.
(04:48:57) viola: google docs also are open - and more structured for a wishlist (prio, status, etc)
(04:48:58) trifon: also wiki pgae is indexed by google search.
(04:49:06) trifon: not sure if google docs is indexed.
(04:49:22) trifon: but gogole docs is also fine for me.
(04:49:25) CarlosRuiz: is indexed if published
(04:49:32) CarlosRuiz: and it will be published
(04:50:18) hengsin: google doc is safer :) our wiki does crash a couple time in the past
(04:51:05) trifon: ok. so google docs.
(04:51:17) CarlosRuiz: ok
(04:51:20) viola: ... for the wish/requirement list
(04:51:29) viola: what about the sketches?
(04:51:55) CarlosRuiz: so, a document "Architecture Wish List"
(04:52:11) CarlosRuiz: Jorg / what's sketches
(04:52:19) hengsin: drawing ?
(04:53:20) viola: nono just writing down ideas about arch just as trifon proposed as a "working space"
(04:55:38) CarlosRuiz: ok / started spreadsheet and sent the invitations
(04:56:22) trifon: i do not see invitation?
(04:56:51) CarlosRuiz: trifon: do you want to be part of architectural team?
(04:57:33) trifon: Carlos not sure what means to be part of acrh team.
(04:57:40) trifon: i ant to help as much as i can.
(04:57:47) trifon: as i have some ideas in this direction.
(04:58:24) trifon: but i do not want to be constrainted to attend manatory meetings or reports.
(04:58:37) trifon: so my answer is something like yes and no.
(04:59:05) CarlosRuiz: check this link
(04:59:05) CarlosRuiz: http://www.adempiere.com/index.php/PMC_Structure#Applying_for_a_group_or_role
(04:59:05) CarlosRuiz: and the next paragraph "Required availability"
(04:59:13) trifon: thank's
(04:59:33) CarlosRuiz: if you're ok with that - then just let us know and you're in
(04:59:45) trifon: ok. i see.
(04:59:48) CarlosRuiz: I think attending meetings is not strictly mandatory / but is highly desirable
(05:00:00) trifon: what about hte link to the Architectural doc page?
(05:00:57) CarlosRuiz: I'm asking you if you want to become member - because I'm thinking to restrict edition of those documents just to PMC members, all the others can read
(05:01:41) trifon: reading is fine as a begging.
(05:03:14) CarlosRuiz: ready - invitation sent
(05:03:27) trifon: thank's
(05:03:35) CarlosRuiz: there is no document still - just the empty spreadsheet
(05:03:43) CarlosRuiz: anyways - I'm going to publish it as HTML page
(05:03:46) CarlosRuiz: later
(05:04:22) CarlosRuiz: so - jorg, hengsin, did you receive the invitation for the spreadsheet?
(05:04:56) viola: no not yet
(05:05:32) hengsin: yes but it is in spanish :)
(05:05:56) CarlosRuiz: :-) these transnational projects
(05:06:32) viola: ah yes - went to my old google account
(05:07:06) hengsin: google have this project in their lab where you talk in spanish and I can listen to the machine translation in real time :)
(05:07:28) CarlosRuiz: yep - I tested it in google wave - but it translated every keystroke  :-)
(05:07:45) hengsin: that's chat but they want to do that on their phone
(05:07:49) CarlosRuiz: ok - we're in / then, how can we organize the doc?
(05:07:59) CarlosRuiz: voice! wow!
(05:08:19) hengsin: so you can call anywhere in the world and start talking!
(05:08:39) CarlosRuiz: I opened two pages - Definition and Wishlist, we can add more
(05:09:18) CarlosRuiz: maybe we open a page for "Tasks" ?
(05:09:24) CarlosRuiz: or "ToDos"
(05:09:28) CarlosRuiz: ?
(05:09:47) viola: added columns headers on wishlist
(05:10:41) viola: what is meant by "Definition"?
(05:10:55) hengsin: road map ?
(05:11:16) CarlosRuiz: as this chat is probably going to be published - let me document the public link to read the spreadsheet:
(05:11:16) CarlosRuiz: http://spreadsheets.google.com/pub?key=tFef7xeNzas8eKEws8SPH0A&output=html
(05:11:51) CarlosRuiz: definition was because maybe a worthy work will be to define how adempiere current architecture is
(05:12:18) CarlosRuiz: but it's not urgent or a must still / probably because we have it on our minds / but it's not specifically written somewhere
(05:13:03) viola: thats right and important since it defined our starting point - but I would prefer a wiki page for that
(05:13:27) CarlosRuiz: ok
(05:13:52) CarlosRuiz: deleted the definition page  :-)
(05:13:52) CarlosRuiz: what must we add on the wishlist?
(05:15:08) trifon: i would say. Next ADempeire archi. must be based on open standards. Like for Persistnace: JPA or JDO.
(05:16:01) trifon: Plugi-in: use Plaugin framework or OSGI?
(05:16:02) hengsin: trifon: be flexible here, isn't SQL and JDBC an open standards :)
(05:16:10) trifon: :)
(05:16:32) trifon: right but SQL is implemented with too many vendor extensions.
(05:16:37) hengsin: and strong word is no use, prove it
(05:16:44) trifon: so SQL in MS is not compatible with SQL in MySQL :)
(05:16:50) trifon: yes. prove it.
(05:17:23) hengsin: trifon: lets not argue further but jdo isn't exactly portable either.
(05:17:34) viola: trifon: how to deal with new fields in dictionary in JDO or JPA?
(05:17:35) hengsin: nad jpa for that matter
(05:18:19) hengsin: hi guys, as we have talk about that above - big changes, parallel experimental effort
(05:18:20) trifon: hengsin: this is what i would like to know. if you say that JDO is not portbale then i know that JDO is lost effrot and concentrate on JPA.
(05:18:33) CarlosRuiz: defining specific acronyms is not part of this meeting today
(05:18:33) CarlosRuiz: http://www.adempiere.com/index.php/PMC_Structure#Architecture
(05:18:33) CarlosRuiz: "Role of this team is to help in defining the options with most benefit for ADempiere project - taking care that initial definitions must not be too specific that discourage innovation from other parties."
(05:18:33) CarlosRuiz: these are still initial definitinos
(05:18:37) hengsin: when it is proven good, there is no need to push, naturally people will goes there
(05:19:08) trifon: i would like to know what are the options.
(05:19:14) trifon: so i put JDO and JPA.
(05:19:30) trifon: later we collect opinions and see what is ood.
(05:19:42) CarlosRuiz: more rows for the wishlist?
(05:19:43) trifon: good.
(05:19:51) trifon: yes.
(05:19:54) CarlosRuiz: security, performance, scability, modular, testing and tools  ?
(05:20:04) trifon: OSGI. Abilit to stop/start service/functionality run time.
(05:20:05) hengsin: option for persistence engine: jdbc, jdo, jpa and non-relational ( google bigtable, etc )
(05:20:12) viola: proposal: anyone fills the list until next meeting
(05:20:20) trifon: ability to change functionality run-time.
(05:20:34) CarlosRuiz: you can do it now, trifon
(05:20:35) trifon: hengsin: very good! this is what i would like to see.
(05:20:39) viola: trifon ups why runtime?? - sorry ok thats detail
(05:20:40) trifon: options for persistance.
(05:20:55) trifon: viola: no need to re-start.
(05:20:59) trifon: this is my reason.
(05:21:18) CarlosRuiz: that can be done now with scripting / do you mean extending that concept?
(05:21:43) trifon: CarlosRuiz: i mean instaling new module without re-starting application or patching.
(05:22:47) hengsin: viola: can I ask what's the status of your osgi work and any plan/schedule for that ?
(05:23:28) viola: hengsin: Adempiere now starting inside equinox for standalone and webstart
(05:23:30) trifon: can somebody put HengSin proposal for the options regarding persistance.
(05:23:40) trifon: i would like to add Amazon DB.
(05:23:51) viola: current problem with equinox servletbrigde and zk - resource loading
(05:24:11) viola: defined ServiceLocator as internal interface for modularization
(05:24:19) viola: no plan/schedule
(05:24:52) hengsin: viola: I guess the key question here is will you be available to finish that :)
(05:26:21) viola: I'm sorry but only working in my spare time on that
(05:26:28) hengsin: guy, please put name to the entry in wish list, easier to follow that way
(05:27:15) viola: Ok?
(05:27:52) viola: and what exactly means ready? - modularization will be an ongoing task...
(05:30:23) CarlosRuiz: is there something in the wishlist about security?
(05:30:50) CarlosRuiz: about scalability?
(05:30:50) CarlosRuiz: about testing and tools?
(05:31:31) viola: again: Shouldn't we give us a week to collect items (25mins left for this meeting)?
(05:32:29) CarlosRuiz: yes / not a week / until next wednesday
(05:34:57) viola: yepp
(05:35:15) CarlosRuiz: I added one line to Tasks page
(05:35:30) CarlosRuiz: is that ok?
(05:35:40) viola: ok!
(05:36:05) CarlosRuiz: any other specific task do you want to work on / or do you want that I work on?
(05:36:24) viola: about prios: high is for next release, low will never be done, medium anything else?
(05:37:17) CarlosRuiz: I guess we can open a forum thread to call community for brainstorm on architectural wishlist (preferably without acronyms) - do you think is good idea?
(05:37:50) viola: yepp
(05:39:06) trifon: yes.
(05:39:13) CarlosRuiz: Heng Sin, about architecture to help release schedule - what did you have on mind?
(05:39:18) trifon: but we are talking about next architecture of adempeire, right?
(05:39:34) trifon: what we think that is good for adempeire.
(05:40:05) hengsin: carlos - I have enter a line there, we need tool to automate and validate the whole release process
(05:40:39) hengsin: trifon: we need to evolve the current architecture, not necessary just about the next
(05:41:06) hengsin: I means we want to make frequent releases and this should be a long, gradual process
(05:41:16) trifon: ok. i agree. evolve current when possible.
(05:41:53) hengsin: carlos: the big problem here is AD maintenance and the current situation with Libero
(05:42:11) CarlosRuiz: hengsin / maybe 6 must be 2 lines / one is to ease release / the other is for QA
(05:42:32) CarlosRuiz: did I understand right the "validate release is good" as QA?
(05:42:44) CarlosRuiz: or is to validate the integrity of a release
(05:42:58) hengsin: no, I means a limited automated validation, that doesn't replace a full QA
(05:43:22) CarlosRuiz: ah, ok
(05:43:52) hengsin: we have limited resources, so the more automation the better
(05:44:45) hengsin: anyone here have any suggestion on how do we maintain AD changes for module ?
(05:45:15) hengsin: the current situation with Libero is a big headache, source is a module but AD changes is in core
(05:45:40) hengsin: OSGi wouldn't solve that ( since that is code ), we need new idea here
(05:45:56) CarlosRuiz: and it's hard to achieve a release with a module still in permanent development
(05:46:41) trifon: Carlos whole ADempeire is in development still.
(05:46:51) trifon: Libero is stabilized.
(05:47:14) trifon: but all this applies to every software project.
(05:47:26) trifon: i get updates for my Ubuntu every week.
(05:47:37) CarlosRuiz: I don't want to enter in such discussion / but how many columns have we added to purchase process lately?
(05:47:42) trifon: quesiton is to have way to migrate and upgrade.
(05:48:01) CarlosRuiz: anyways / it's not the discussion here
(05:48:02) trifon: i think that we will add as many columns as users need.
(05:48:10) trifon: you can't stop/predict what users need.
(05:48:18) CarlosRuiz: 12 minutes to go / something else to add?
(05:48:42) hengsin: libero is just an example. the issue here is if we were to allow extension, there needs a way to package nicely both code and AD stuff as a module
(05:49:18) CarlosRuiz: 2pack is almost there - almost
(05:49:38) CarlosRuiz: I suppose the big lack of 2pack is manage data
(05:49:38) trifon: 2pack is to the Application dicitonary.
(05:49:52) trifon: big problem is in the code.
(05:49:56) trifon: and data.
(05:50:19) hengsin: trifon: we have OSGi for code so we need something to complement that for AD and data
(05:50:35) trifon: hengsin: no.
(05:50:42) trifon: OSGI is just infrastructure.
(05:50:52) trifon: application must manage moudles and modularization.
(05:51:11) hengsin: trifon: what I mean is we already know what is needed there so it is just work
(05:51:13) trifon: i can make module based application with JPF or any other plug-in based application.
(05:51:28) hengsin: but for AD and data, I'm not sure we have the right approach now
(05:51:47) trifon: ok let's put it as open question.
(05:51:50) trifon: and think on it.
(05:51:57) trifon: i want to identify open quesitons.
(05:52:31) CarlosRuiz: I suppose 2pack is the most advanced at this moment / not sure if we can find a different better approach
(05:52:53) hengsin: carlos: conflict resolution ?
(05:53:11) CarlosRuiz: example?
(05:53:42) hengsin: I means there can be conflicting changes between module, between core and module, etc
(05:54:21) CarlosRuiz: yes - it's hard to manage conflicts in code / in dictionary is even worst
(05:54:42) CarlosRuiz: I guess we need to define also some guidelines about PROPER extension
(05:55:29) hengsin: I guess we need better to install and validate an extension/module
(05:56:03) hengsin: easy way out would be to failed the installation for dictionary conflict :)
(05:56:08) CarlosRuiz: for example validate that it just install proper things?
(05:56:28) CarlosRuiz: i.e. it just install or modify their own entity type dictionary things
(05:57:38) CarlosRuiz: :-) I like google spreadsheet
(05:57:54) CarlosRuiz: ok guys / time to go / I guess we can finish the meeting / right?
(05:58:24) hengsin: yeap.
(05:58:33) CarlosRuiz: thanks again for attending - I think it was very productive meeting, and the next will be even more  :-)
(05:59:48) hengsin: bye all
(05:59:57) hengsin has left the channel ("Konversation terminated!").
(06:00:31) viola: bye
(06:01:24) trifon: bye