Hi,

enclosed is a log of the portlet API chat on Wednesday evening. Raphael 
wanted to post it, however I haven't seen any message from him since - he's 
probably very busy.
I think the most imporant part is at the bottom:

<raphael> OK. So what we have said tonight is :
<raphael> - portlets should be as portable as possible but limited 
portability may be imposed by incompatible content models
<raphael> - fragments are the prefered output model for portlets but portal 
must implement full documents support as the default
<raphael> the content model used by a portlet is defined in its portlet 
descriptor
<raphael> - the API will have streams in the base response API, SAX support 
in a sub-interface
<raphael> - compliant portals must implement both interfaces

I "updated" the API propsal java docs, i.e. "reverted" it to the second 
last version... I promised Raphael, to update the java doc to reflect the 
results of the chat, however I have the problem that most of these points 
have to go into a portlet _specification_ rather than in the API... --> We 
need to develop a spec.

So into the spec had to go:
* compliant portals must implement both interfaces, stream and SAX
* fragments are the prefered output model for portlets but portal must 
implement full documents support as the default the content model used by a 
portlet is defined in its portlet descriptor

Sorry I'm in a hurry, hope I didn't forget anything important.

ingo.


Chat.log
============================================================================
Session Start: Wed Feb 21 20:14:41 2001
* Logging #jetspeed to 'logs\#jetspeed.log'
<ingo> thomas?
<raphael> not there yet apparently :)
<ingo> ok, which thomas is it? ;-)
<raphael> any will do
<ingo> sure, I was just wondering which thomas "blob_79" is... But he 
doesn't seem to listen right now.
<raphael> he tried a ping some time ago but has not said anything yet
*** sgala has joined #jetspeed
<sgala> hi
*** AlexLi has joined #Jetspeed
<raphael> hi santiago
<sgala> hi, I'm here with Juan Carlos, out in Ciudad Real, in a internet 
gaming place... :-)
<ingo> Hi Santiago, Hi Alexandra.
<AlexLi> Hi all
<raphael> thomas is here ?
<blob_79> yes!
<sgala> Hi, thomas.
<raphael> which thomas are you ?
<raphael> :)
<raphael> it seems like most interested parties are there, so maybe we 
shall start
<blob_79> I subcribed jetspeed mailing list and was just a bit interested 
in your chat.
<ingo> Yes, if david is listening as well?
<david> yes, im here
<raphael> ON I'll try to be the moderator for this
<ingo> None of the "IBM Thomases" seems to be here, but we can start anyway.
<sgala> GO slowly, we have a big  lag...
<raphael> I guess all the people here have read the portlet API proposals
<raphael> but before starting the real discussions maybe ingo and I can 
answer any
<raphael> outstanding questions on our respective APIs
<ingo> sure.
<raphael> ANy questions ?
<raphael> Great, this will go quickly... :)
<raphael> I think the first discussion point should be:
<raphael> is it a goal of the portlet API to allow the writing of portlet 
components
<raphael> that are fully portable on *all* compliant portal, or is it 
enough to guarantee
<raphael> portability on a subset of compliants portal ?
<raphael> My position is:
<raphael> I'd *really* like fully portable components but it has a lot of
<raphael> performance impact, so in order to achieve compromise I can live 
with partial
<raphael> portability
<ingo> I would like full portability as well.
<ingo> However, I think apart from performance, there is also the aspect that
<ingo> the portlet API should be clean enough to serve as a basis for a 
standard.
<ingo> If we'd came up with a lot of different portlet types,
<ingo> that all have to be supported by every container developer,
<ingo> we might scare people off. Especially if support for all types is
<ingo> integrated into the "base interface" so that it get's too overloaded.
<ingo> If we find an elegant way for full portability, great. I could even live
<ingo> with the fact that some containers had a bad performance for _some_ 
portlet types,
<ingo> but if we risk that noone wants to pick up our API, then I'd better 
drop full portability.
<ingo> <end> :)
<raphael> david ?
*** bjoern has joined #jetspeed
<david> we are really talking about two portlet types,
<david> streams and sax events
<david> is that asking too much from container providers?
<raphael> santiago ?
<ingo> no, I don't think so. However the subinterfaces invite to define 
more types.
<sgala> I would like to have portlets that deliver content and interaction 
information,
<sgala> independent of any given markup.
<sgala> We have to deliver a VoiceML demo briefly, and I would hate having to
<sgala> maintain getHTMLContent(), getWMLContent(), getVoiceMLContent() 
getIE4.01Content() :)
<raphael> you're not answering the question... ;/
<sgala> So, I think the portlet should stay at a "knowledge" level, be it 
bean based or markup based.
<sgala> A knowledge level guarantees, if properly standardized, that any 
portlet will run on any container.
<sgala> Each container should be responsible of translating this 
"knowledge" to device markup.
<raphael> But such a scheme has very broad implementations implications 
that will
<raphael> reduce acceptance and you also limit legacy information retrieval 
and display like
<raphael> the WebPagePortlet. This is a need that IMO we need to cater for.
<raphael> I tink "pure knowledge" portlets as very valuable but hardly as 
the appropriate
<ingo> sorry, what _exactly do you mean by "knowledge level"?
<raphael> response for all the portal needs unless you don't have any IT 
infrastructure to
<raphael> reuse in your portal... <end>
<sgala> I mean abstract, not device related markup, or attribute-value 
pairs. So I said "bean  based",
<sgala> because it could be a "turbine toolbox" object, or something that 
provides information.
<sgala> BUt I agree this is a long term goal.<end>
<raphael> From all the comments, I gather that we all agree that limited 
portability is an
<raphael> appropriate immediate goal for the Portlet API. Right ?
<ingo> Well,
<sgala> For the short term, I think SAX + stream is a good compromise, 
since it enables both processings.
<ingo> if we have only the  SAX and stream, I could imagine mandatory 
suport for both.
<ingo> At least from our point of view,
<ingo> having stream as _the_ way, it is not too hard to add a (simple) 
support for SAX portlets.
<sgala> Rapheal, what do you mean by limited portability?
<ingo> Don't know if it's as easy the other way round?
<raphael> santiago > limited portability = some containers may not run some 
portlets either because
<raphael> they don't support the correct output mode or because they don't 
support the
<raphael> same output content model
<raphael> ingo > stream -> SAX is very easy if we can rely on 
well-formedness of content, it just
<raphael> means parsing the stream <end>
<ingo> so then,
<ingo> I could live with partial support, but we could also mandate SAX and 
stream support for portlet API 1.0.
<raphael> portability will be defined by output mode + content model not 
simply output mode, in fact
<raphael> I think content model is more important than output mode for 
portability,
<ingo> true, the content model makes more problems. You're right,
<raphael> output mode is determinant for performance
<ingo> partial support is probably better for the start.
<ingo> sorry for interrupting.
<raphael> no worries :)
<raphael> Every agrees on partial portability ? (just +1/+0/-1)
<sgala> +1
<ingo> +1
<raphael> +1
<david> uh, sorry, could you explain the content model a little more... 
then I will vote
<raphael> content model = what the portal expect the portlet to output:
<raphael> - full documents
<raphael> - specific doc fragments
<raphael> - "knowledge" but no layout markups, etc... <end>
<david> ok - so we are saying that a container is not required to impl. 
both full and fragments. Thats what you mean by partial portability?
<raphael> basically yes
-> [AlexLi] PING
<david> +1
<raphael> That's settled then.
<raphael> Point 2:
<raphael> Content model: which content model should we allow/mandate ? and 
how ?
<raphael> My position:
<raphael> Default requirement: when no more specific recommandation exists, 
the portal
<raphael> should expect the portlet to output complete documents (default 
mode)..
<raphael> Mandate that all portal support at least HTML "table-fragment" model
<raphael> Defined some formalized WML content model but don't mandate 
implementation
<raphael> Use the portlet deployment descriptor to specify the portlet 
content models
<raphael> and allow the portal to use the "best" available according to its 
implementation <end>
<ingo> So,
<ingo> you would also mandate support for full documents.
<ingo> What about other markup?
<ingo> <end>
<raphael> I don't know all the markups... :) I guess we can define some 
normalized
<raphael> fragment content models for some, but I don't see how to support 
new markups
<raphael> without the "full valid docs" as the default rule <end>
<ingo> Ok,
<ingo> I don't _really_ like full documents as default, but I can see that this
<ingo> is the most sensible default setting. I couldn't live with full 
documents only,
<ingo> but both defined by the deployment descriptor
<ingo> seems as a good compromise. Obviously I'd prefer (good) fragment 
definitions
<ingo> as default more. <end>
<raphael> santiago ?
<sgala> I see your point here, Raphaël. With abstract XML markup there 
would need to be a heavy specification effort also to specify THE abstract 
markup(s).<end>
<raphael> david ?
<david> does there have to be a 'default', since the defaultmode can be 
defined in the descriptor?
<raphael> the descriptor will allow the portlet to specify which 
fragment/model it
<raphael> supports but if santiago writes a portlet outputting GALAML, he 
probably
<raphael> won't wait that someone define a common acceptable fragment 
content model,
<raphael> so we need to have a "default" rule when no fragment model is 
defined...
<ingo> On more point,
<raphael> In fact, I would expect most portal implementations to focus on 
handling their
<raphael> chosen fragment models, and then retrofit the "full document" 
requirement with
<raphael> an output stripping module thet convert the "full doc" -> 
appropriate fragment...
<ingo> Are you sure, that full documents are really easier to support? 
Wouldn't the portlet container
<raphael> On most implementations, "full docs" portlets will perform less 
efficiently than their
<raphael> fragment counterparts, but it's quite difficult to specify 
general enough
<raphael> fragment specification in some markups like WML (and I expect 
VoiceML, etc...) <end>
<sgala> Also, the point you made about "new" markups having to wait until 
someone agrees on a fragment model.<end>
<ingo> need to have similar rules for defining fragments? So even with full 
document support, you
<ingo> need to define fragment rules first before you can actually start
<ingo> to support a portlet. This in mind I'd withdraw my statement about
<ingo> "most sensible", instead it's the easiest way for the portlet API 
spec. Still,
<ingo> the work of defining fragment rules has to be done in both cases. <end>
<raphael> ingo > yes, the portal will need to have a fragment model to work 
with, but
<sgala> 4[12ingo4] 1> The difference is that the rules are defined by the 
siteadmin, and a portlet provider can sell a portlet without too much 
customisation.<end>
<raphael> starting with "full docs", the fragment model may be portal 
specific and not a
<raphael> consensus model <end>
<ingo> ok,
<ingo> you mean that the portal container can decide whether several cards 
are allowed
<ingo> as output of one portlet or not. But what do you do if you decide 
not to support several
<ingo> card per portlet and get a full wml document contaioning several 
cards? You won't have such problems
<ingo> with fragment rules specified by the spec. <end>
<raphael> if you don't support multiple cards -> you expect the content to 
fit a single card,
<raphael> so if the portlet output several cards, you have some 
implementation decisions to
<raphael> make (like building a "summary" card that links the full portlet 
generated
<raphael> deck output by the portlet) <end>
<ingo> won't this spoil
<ingo> portability in some way too? - The same portlet would have a 
different appearance
<ingo> on different portal implementations. <end>
<raphael> do you consider that appearance should be portable and preserve 
across portal ?
<ingo> no, right that must be left to the portal.
<ingo> What about the postprocessing?
<raphael> Yes ?
<ingo> WOn't it become much more complicated with full documents? Imagine
<ingo> the event mechanism, it'd much easier if every portal asks the 
container for
<ingo> a UID to prefix it's "triggers" instead of parsing through the full 
document. <end>
*** bjoern has quit IRC
<raphael> If you mean that link management should be directly handled by 
the portlet through
<raphael> an API call wether its output is full or fragments, I'd say yes.
<ingo> ok.
<raphael> I see some issues with the "event model" proposed in the current API
<raphael> (because you use object instances in the method), but let's leave 
this point for
<raphael> today :) <end>
<ingo> still, doesn't the "full document requirement"
<ingo> just shift the porblems of defining fragment rules to the portlet 
container? And
<ingo> won't it probably easier if the portlet writer already made sure 
that those rules
<ingo> are taken into account instead of letting the portal container check 
and enforce it?
<ingo> <end>
<sgala> Raphaël > I have to read more deeply the event mode. I would leave 
the event model for other discussion :)
<raphael> ingo > can you propose something else that doesn't require us to 
analyze
<raphael> all the markups that a portlet may want to output and define a 
recommended
<raphael> fragment content model ?
<ingo> well, don't we have
<ingo> to do this anyway (as we are implementing a portlet container)? We could
<ingo> start with rules for WML and HTML and make new revisions of the spec 
for new markups.
<ingo> <end>
<sgala> I see you point :-?
<raphael> We don't have to claim that our content model is appropriate for 
all purposes and
<ingo> I mean,
<raphael> implementation. I expect that the definition of a well-accepted 
fragment model
<raphael> will be a difficult task in many markup cases. Fortunately, HTML 
is easy so whatever
<raphael> HTML fragment we support will probably be sensible for other 
portals too. <e>
<ingo> What about fragments and portability?
<ingo> If we want to
<ingo> have portlets portable that only output fragments, there has to be a 
specification
<ingo> of fragment rules in the spec again. <e>
<raphael> +1. Except that I'd like to leave the "winner" content model to 
the portlet
<raphael> writers : imagine that we first specify WML and HTML fragments 
and that we
<raphael> only supports them in our implementation...
<raphael> 2 other companies decide to extend our base implementation and 
add SMIL support
<sgala> [Note. We have little time left here]
<raphael> , each will support an implementation specific SMIL portlet model 
since no one
<raphael> is dfined yet and will push for acceptance as the base fragement 
model for
<raphael> SMIL
<raphael> ... -> definition of consensus may be hard to achieve...
<raphael> My position: let's define as good fragments specs as possible as 
recommended,
<raphael> provide a fallback doument model (full documents) that can be 
used whenever no
<raphael> formal spec is defined and let the portal implementors/portlet 
writers chose
<raphael> which is the best (if all portlets support 1 specific fragment 
content, it's
*** jason has quit IRC (EOF From client)
<raphael> proabbly pretty good...) <e>
<ingo> But then,
<ingo> you'd require every portlet to be able to output full documents...
<sgala> [THey close this shop :(]
<sgala> Q: is there any voting left?
<raphael> Yes
<ingo> Can you get somewhere else soon?
<sgala> Raphaël>Could you send me the complete log by email tomorrow. please?
<raphael> Vote: do we support my previous proposed scheme ? (+1/+0/-0/-1)
<raphael> santiago > Ok for the logs, can you vote please ?
<sgala> Default --> full doc, agreements for specific models, election at 
portal ?
<ingo> wait, this is a bit fast. Do you require all portlets to be able to 
output full documents?
<sgala> Then +0. I need to go.
<raphael> not portlets but portals must accept full docs
<raphael> bye santiago
*** jason has joined #jetspeed
<ingo> Then a portlet that wants to be portable needs to be able to output 
full documents?
<raphael> no, not if a recommended fragment model exists, as it is the case 
for HTML at least
<raphael> full documents should be the fallback because there are costs 
associated with
<raphael> its support.<e>
*** sgala has quit IRC (8,1 IR0cap 046.999 14,14 1,10 9 14,14!15,15!)
<ingo> [that's a pity!]
<raphael> david , what's your opinion on this ?
<ingo> so, if fragments are recommended, a portlet should deliver them,
<ingo> if there aren't any, full documents are the fallback?
<david> again, i was trying to be diplomatic and say that the default 
fallback is configurable in a 'container' deployment descriptor,
<david> my opinion is that both should be supported, but i can see where 
ibm would want the default fallback to be fragment...
<raphael> not exactly: if for a given markup, their is a recommended 
fragment definition, then
<raphael> a portlet can safely implement a fragment model only and be 
portable across all
<raphael> portals implementing this model (hopefully all) but it can also 
chose to always
<raphael> output full documents and be guaranteed to be portable (at the 
cost of runtime
<raphael> performance) since a portal would have to also accept full 
documents. <e>
<ingo> but where is the point of outputting full documents,
<ingo> if there is a recommended fragment rule that is guranteed to work 
with all containers?...
<raphael> write a simple portlet wrapper around an existing application ?
<ingo> Shouldn't - if rules can be found and are defined - they be mandatory?
<ingo> Yes
<raphael> mandatory for portals yes, for portlet I don't think so.
<ingo> you wold be able to write a simple wrapper,
<ingo> not having to deal with "stripping" the output, but the container 
had to do it anyway,
<ingo> just one processing step later. <e>
<raphael> so basically we chose whether the portlet writer or portal 
implementor has to work more...
<raphael> I believe that in general portal implementors will be smarter and 
more skilled that
<ingo> well, there could be a base class provided for such tasks.
<raphael> portlet writers, so making the job simple for portlet writer 
makes sense to me <e>
<raphael> your base class would probably be optimized for a given portal 
implementation
*** blob_79 has quit IRC (Ping timeout)
<raphael> model (SAX, stream...) <e>
<ingo> Well, we could have base classes for both - optimized.
<ingo> A compromise:
*** dst has joined #jetspeed
*** david has quit IRC (Connection reset by peer)
<ingo> We allow portlets to deliver full documents, but *strongly* point 
out in the specs,
<ingo> that this should only be used for cases like wrapping legacy 
applications and
<ingo> that there might be a significant perfomance impact. <e>
<raphael> +1 for insisting on the performance impact and prefering the 
fragment model when it
<raphael> exists, -1 for specifying that it "should" be used only for 
something as
<raphael> we can't know all the possible use <e>
<raphael> alexandra, do you have something to say ? You're from IBM too, 
aren't you ?
<ingo> I'd be still +1 for "should", but +0 for the first part. So 
"prefering" could probably agreed upon.
<raphael> :)
<raphael> david, is this something you can agree upon too ?
<ingo> she has her child "jumping around", so she might not listen all the 
time. :)
<dst> im here to agree on things
<dst> id like to see this move forward :)
<AlexLi> I am listening now. I mean, Ingo already brought all the arguments 
we discussed together by IBM,
<AlexLi> so nothing to add , actually.
<raphael> disagreement is sometimes good because it makes you think about 
the over POV around...
<ingo> POV?
<dst> pointof view
<raphael> I rather enjoyed the disussions and I think I have a clearer 
picture of where
<raphael> we're going <e>
<raphael> Anyway, from the discussion, I gather that we are all at least +0 
on this subject ?
<raphael> alex > I'm lucky I'm working late then... I don't have to look 
after my child ;/
<ingo> Well, I don't like the idea of having to support full html 
documents, but so it be :-/
<ingo> (-0 probably expresses it better)
<AlexLi> I am also actually +1 on fragments, but I think it is really 
important to have a compromise that
<AlexLi> is acceptable for all of us.
<raphael> OK.
<raphael> Point 3: Output methods: default SAX / default Stream / no 
default and subclasses
<raphael> My position:
<raphael> The default SAX really make sense only if we are in a always 
"full docs" content
<raphael> model as its main use is to facilitate post-processing. Since we 
are not in
<raphael> this case, I accept any of the 2 alternatives with a preference 
for a
<raphael> symmetric API (provided it doesn't look too silly) <e>
<ingo> This seems to be an easy one then. I'm +1 for stream as default. ;-)
<raphael> I think Santiago would be the strongest proponent of the SAX 
model because it fits
<AlexLi> As you can already imagine, I am also +1 for stream default and +0 
on no default
<raphael> his current portal model... it's a pity he's not there anymore :(
<ingo> well, to be fair, we musn't finish voting now.
<ingo> What if we vote now and leave the others tomorrow?
<raphael> No, all the votes cast here are just for making progress toward 
an agreement
<raphael> the mailing-list is the real voting ground since some committers 
who have votes
<raphael> are not here and voting must not be a synchronous process to 
account for the
<raphael> wide diversity in the community.
<ingo> ok, that fair, actually the way it has to be.
<raphael> The goal of this chat is mainly to avoid the portlet API thread 
from respawning
<raphael> a 3 weeks discussion... :-)
<dst> ok, ive got to run. are we going to cover anything else?
<raphael> output model > I'm +1 for stream only if the SAX (either as a 
base interface or
<raphael> sub-interface must be implemented by all containers -> ensure 
that SAX based
<raphael> portlets are as portable as stream based) <e>
<ingo> that's ok with me.
<raphael> david > we just need your opinion on the output mode and we're 
pretty done
<dst> +1 - it makes sense to have stream in the base, and sax as an adapter 
or subclass
<dst> +1 on having stream implemented by all
<raphael> OK. So what we have said tonight is :
<raphael> - portlets should be as portable as possible but limited 
portability may be imposed by incompatible content models
<raphael> - fragments are the prefered output model for portlets but portal 
must implement full documents support as the default
<raphael> the content model used by a portlet is defined in its portlet 
descriptor
<raphael> - the API will have streams in the base response API, SAX support 
in a sub-interface
<raphael> - compliant portals must implement both interfaces
<raphael> Is that correct ?
<ingo> yes, I think that's what most people agreed too.
<dst> yes
<AlexLi> yes
<raphael> good. I'll post the IRC logs on a website so that people who were not
<raphael> part of the discussions can read it.
<ingo> One last point, please!
<raphael> go ahead, but quickly, I've not had my lunch yet...
<ingo> I still don't like the idea of supporting full html documents. Can't 
we probably find
<ingo> three levels of fragment rules:
<ingo> none (=full documents), recommendations and mandatory?...
<ingo> for WML we can probably only find a recommendation, but in cases 
like html,
<ingo> it may be possible to find rules that are easily acceptable to 
everybody?
<raphael> yes, that's what I proposed in the beginning : manadatory support 
for at least "full docs" and HTML "table-fragment model" :)
<ingo> still the "full docs". I see, I'll have to live with it...
<raphael> ;) ingo > can you modify the proposed API to reflect this ?
<ingo> [ok, raphael, perhaps you can find an example for when full html 
docs make much sense (apart from the wrapper)?]
<ingo> Yes I modify it.
<dst> bye :)
*** dst has left #jetspeed (dst)
<ingo> ok, I think we've made a good step forward.
<raphael> ingo > for example if the portal can collect all the <meta> tags 
of a portlet
<raphael> output and use them as <meta> for the complete page -> very 
search engine friendly.
<ingo> interresing thought, have to think about it.
<raphael> I can't really think of something better right now but it's late, 
I'm hungry and I want
<raphael> to finish my new velocity customizer implementation :)
<ingo> well, the API could support this as well. But I think we should come 
to an end, right.
<raphael> thanks for the chat, maybe we'll do another session soon ?
<ingo> Thank you Jon and Jason for staying with us!
<ingo> Yes, I think this is a good way for discussing "hot topics", definitely.
<ingo> Well then, let's part. I'm hungry as well :)
Session Close: Wed Feb 21 22:55:11 2001



--
--------------------------------------------------------------
To subscribe:        [EMAIL PROTECTED]
To unsubscribe:      [EMAIL PROTECTED]
Search: <http://www.mail-archive.com/jetspeed@list.working-dogs.com/>
List Help?:          [EMAIL PROTECTED]

Reply via email to