RE: P work in new charter

"Abbie Barbir" <[email protected]>
Newsgroups gmane.ietf.opes
Message-ID <[email protected]>
Alex,

I agree with your orchestration example. The point here there are other work
that does that, check CDL in W3C and BPEl in OASIS.

I think it is important that we scope the P well before we start the work. 
I really do not see how we can scope well in the charter without fully
understand the do or do nots first.
I is going to be a fine line.


Abbie

> -----Original Message-----
> From: Alex Rousskov [mailto:[email protected]] 
> Sent: Wednesday, June 30, 2004 1:13 PM
> To: Geetha Manjunath
> Cc: OPES WG
> Subject: Re: P work in new charter
> 
> 
> 
> Geetha,
> 
> 	I think there are two very different panes of 
> discussion/scope, and I failed to identify them clearly in my 
> original classification.
> 
> 1) One pane is whether P can be used to write user-defined
> P functions and user-defined collections of P functions.
> 
> Markus concerns are that user-defined functions add too much 
> complexity. Markus suggests that such complexity can be 
> implemented in services using some service-specific 
> interfaces. My longish response tried to argue that this 
> service-specific loophole is not feasible because services 
> will be commoditized and will need to express the same kind 
> of selection rules using some standard language. Since what 
> we need to express would be the same, we should use one 
> language for that, regardless of whether the future will 
> place complex rules on processors, services, or both.
> 
> 2) The other pane is whether P can be used to implement 
> services themselves.
> 
> I think the answer is that "P can orchestrate adaptations, 
> but cannot perform adaptations natively". In other words, all 
> message adaptations are performed outside of P. For example, 
> the following code should not cause any problems:
> 
> 	if (message meets some criteria) then {
> 	    services.adaptation1(message); // apply adaptation one
> 	    services.adaptation2(message); // then adaptation two
> 	    services.adaptation3(message); // then adaptation three
> 	}
> 
> The following is still acceptable if HTTP module supports 
> header updating operations (which is something we have to decide):
> 
> 	if (http.message meets some criteria) then {
> 	    http.message.headers.delete("Content-Length");
> 	}
> 
> But implementing http.message.headers.delete() method 
> natively in P will not be possible because of P's 
> single-assignment semantics, lack of loops, data structures, etc.
> 
> Alex.
> 
> 
> On Wed, 30 Jun 2004, Geetha Manjunath wrote:
> 
> > Hi,
> > I think Alex has put the scoping of 'P' discussion in a 
> nice way... I 
> > mostly agree with his agruments..
> >
> > In terms of  what 'P' would enable:
> > * Rule Specification : The filtering services themselves would be 
> > provided by vendors (say, virus scanners) while the configuring 
> > conditions (rules) will be  described/specified using the 'P' rule 
> > language.
> > * Writing simple filters/actions: While modifying a message 
> to be able to
> > call several commoditized filters may be one of the 
> examples (Alex), I would
> > see the need for writing actions more when the actions 
> themselves are very
> > simple - may be to just put some additional authentication 
> controls onto
> > services, where the OPES processor would just return a 40x 
> response. It could
> > also be used to compose output of multiple filters (I 
> remember a discussion
> > we had on this mailing list about how pipelining of filters 
> should function
> > and so on. This now leaves the decision to the rule 
> writer). There will be
> > many more use cases I am sure.
> > * Writing modules in 'P':  Since a set of rules themselves 
> may need to be
> > reused many a times, we may want to create customized 
> reusable modules in 'P'
> > .
> >
> > While the above are under the category of  "#1. How deep 
> does P reach? 
> > (P scope)", I want to just add on additional option to "#2. 
> How deep 
> > does our charter reach? (WG work scope)" or an extension to 2c.
> > (d) defining mechanisms by which a user can communicate rulesets to 
> > the OPES processor.
> >
> > Comments Welcome.
> > (sorry for joining in late on this thread - I was on a 
> business trip 
> > could not see my emails earlier )
> >
> > Thanks and regards
> > Geetha
> >
> > Alex Rousskov wrote:
> >
> > > On Tue, 29 Jun 2004, Markus Hofmann wrote:
> > >
> > > > It moves functionality I would expect from a service 
> itself into 
> > > > the rules language!
> > >
> > > I believe I understand your concerns.
> > >
> > > The outcome of this discussion will have a paramount effect on 
> > > initial P specs and, with some luck, on P success. So 
> let's proceed 
> > > with care.
> > >
> > > We are trying to find the right scope for P. We all agree 
> that P is 
> > > used for selecting services based on messages. We all have an 
> > > understanding of what a typical service does to a message (block, 
> > > filter, or modify). We all realize that a lot of customizations 
> > > (i.e., using logic and data specific to a local service 
> invocation 
> > > environment and to the message itself) may be required to 
> adapt the 
> > > message correctly; some of those customizations might be quite 
> > > complex. We may disagree on where some of those customizations 
> > > should be taking place and how they should expressed.
> > >
> > > > Rather than building all these fine-grained 
> capabilities into the 
> > > > rules language itself, I would prefer a very simple rules 
> > > > langueage that allows me to invoke services - all the logic and 
> > > > more fine-grained rules are part of the service.
> > > >
> > > > The whole reason we want to have callout servers is to move 
> > > > services out to a separate server. Are we now trying to 
> move some 
> > > > of the processing complexity back into the OPES 
> processor in form 
> > > > of a highly programmable, compelx rules language that allows 
> > > > "programming" of actions?
> > >
> > > I believe you highlighted the core of our problems and 
> also hinted 
> > > at the solution!
> > >
> > > Here is a key question: Why do we have OPES service as a distinct 
> > > entity? Why do we not simply talk about OPES processors 
> that somehow 
> > > adapt messages? Calling a piece of code a "service" does 
> not make it 
> > > more efficient. Placing a piece of code on a separate box is not 
> > > always a good idea (or we would not have software libraries and 
> > > integrated appliances).
> > >
> > > I believe the primary reason we logically isolate services from 
> > > processors is that we expect and want many services to be 
> > > standardized and commoditized (based on their functionality, 
> > > separately from OPES processors). Folks will be able to 
> plug in the 
> > > "best" virus filtering service, the "best" translation 
> service, the 
> > > "best" mobile rendering service, etc., all selected among many 
> > > standardized offerings.
> > >
> > > If services are not easily pluggable/interchangeable, if 
> there are 
> > > only a few vendors building a few services, then we are 
> wasting our 
> > > time here. IETF WG should not be concerned with technologies that 
> > > support just a few vendor products.
> > >
> > > So what? Well, if our operating environment is a large set of 
> > > standardized and commoditized services, then those 
> services cannot 
> > > be efficiently customized by service _manufacturers_!
> > >
> > > For example, most customers today cannot buy a customized 
> version of 
> > > a disk drive or motherboard for their PC. They can select from a 
> > > variety of models that will all comply with a few standards for 
> > > size, voltage, and functionality. Manufacturers of drives 
> and boards 
> > > cannot know exact user needs and have to ship with reasonable 
> > > defaults.
> > >
> > > Now, if customizations are essential, but OPES services cannot be 
> > > customized by their manufacturers, and the number of 
> manufacturers 
> > > is large, there are two sane customization options for OPES
> > > administrators:
> > >
> > >   - customize OPES processor using a common rule language:
> > >     if (message meets some condition) then
> > >         apply(some service to message)
> > >
> > >   - customize OPES service using a common 
> service-customization language:
> > >     if (message meets some condition) then
> > >         apply(some service function to message)
> > >
> > > Note that an OPES administrator will end up writing 
> pretty much the 
> > > same kind of rules in either case. That is, regardless of what is 
> > > customized (processor or service), the same rule language 
> is needed!
> > >
> > > In summary, we cannot assume that commoditized services will be 
> > > customized by their manufactures and, hence, we cannot "offload" 
> > > customization complexities from P to manufacture-specific 
> > > languages/solutions. Same for OPES processors. We have to support 
> > > those customizations in P, which may be used to customize OPES 
> > > processors and/or services.
> > >
> > > Do you agree with the above logic?
> > >
> > > If yes, here is the next logical step. Given a set of 
> commoditized 
> > > OPES processors, commoditized OPES services, and a single rule 
> > > language to configure/customize them, what should the 
> minimal scope 
> > > of that language be? I believe the answer is that "the language 
> > > should be good enough for expressing all common OPES 
> customizations" 
> > > simply because that language is the _only_ customization 
> interface 
> > > an OPES administrator will have.
> > >
> > > For our work to make sense in IETF setting, we must accommodate 
> > > common customizations _natively_ in P. We must not rely on 
> > > processors or services to provide OPES administrators with 
> > > non-standard ways of doing some part of that customization. 
> > > Commoditized processors and services will not have non-standard 
> > > interfaces, and an IETF WG should not care about markets 
> where there 
> > > are just a few vendors and those vendors are using a few 
> proprietary 
> > > interfaces.
> > >
> > > Is there a flaw in the above logic?
> > >
> > > Please note that the above does not give us the answer for, say, 
> > > whether P should support user-defined functions or full regular 
> > > expressions. However, it may give us a framework to derive those
> > > answers:
> > >
> > >         - If user-defined functions are essential for
> > >           matching messages with services, then P must have them
> > >
> > >         - If full regular expressions are essential for
> > >           matching messages with services, then P must have them
> > >
> > > We just need to debate whether X is essential for a good matching 
> > > interface. If it is essential, it must be supported natively in P.
> > >
> > > In the absence of such a framework, we now have to debate 
> two things:
> > >         - whether X is essential for a good matching interface
> > >         - whether X has to be supported natively in P or as
> > >           a part of some custom service or processor knob
> > >
> > > Sorry for such a long message. I could not find a shorter way to 
> > > express this idea. Hope it makes sense.
> > >
> > > Please comment.
> > >
> > > Thanks,
> > >
> > > Alex.
> >
> >
> 
>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.