Differences between revisions 4 and 5
Revision 4 as of 2005-03-31 11:55:10
Size: 15346
Editor: 203
Revision 5 as of 2009-09-20 22:48:43
Size: 15346
Editor: localhost
Comment: converted to 1.6 markup
No differences found!

<Deepal> Hi GM/GE
[09:08]<Srinath> we are talking about the WSDL, modules and client invocations
[09:08]<Srinath> we are talking about the policy and the there role in deciding the handler chain
[09:10]<Srinath> now we shift to server side 
[09:10]<Deepal> server side in run time
[09:10]<Deepal> how module is going to be added at the run time
[09:10]<Srinath> at the sever side not much can be done untill the service is found
[09:10]<Deepal> depending on the police
[09:16]<{eng}bar4ka> :D
[09:32]  *** {eng}bar4ka quit FreeNode : "Chatzilla 0.9.67 [Firefox 1.0.2/20050317]"
[09:42]<Chinthaka> now discussing how to set properties
[09:42]<Chinthaka> for cutom config we inputs in Code Gen
[09:47]  *** Thilina joined #apache-axis
[09:49]  *** sanjiva joined #apache-axis
[09:52]  *** Chinthaka quit FreeNode : "Chatzilla 0.9.66 [Mozilla rv:1.7.5/20041107]"
[09:53]  *** Chinthaka joined #apache-axis
[09:58]<sanjiva> Potential architecture for client side stubs and interaction with modules:
[10:01]<sanjiva> - if there are policies in the WSDL, the stub generator will generate a "getModuleController()" method
[10:01]<sanjiva> - the returned ModuleController can be cast to (for example) RMModuleController
[10:02]<sanjiva> - speciifc module controllers can have methods to allow stubs to control the behavior of the module
[10:02]<sanjiva> - for example RMModuleController.createSequenceNowBecauseIWantItDoneNow()
[10:02]<GlenD> -1 getModuleController() - it should be getController(String name) or getRMController()/getSecureConversationController()/etc
[10:02]  *** alek_away is now known as alek_s
[10:02]<alek_s> hi
[10:03]<GlenD> s/createSequenceNowBecauseIWantItDoneNow()/createSequence()/ :)
[10:03]<sanjiva> - we need to make sure modules work without this being done - i.e., the simple case remains as simple as the policy being in the WSDL file and "everything just works"
[10:03]<GlenD> hi Alek
[10:03]<alek_s> was possibility of not generating *almost* any code but an interface and maybe use some annotations ala JSR181 considered?
[10:03]<sanjiva> hi Alek
[10:03]<alek_s> just generate Java interface (with annotation) and use java Proxy to have dynamic stubs
[10:04]<alek_s> and java refection to provide dynamc skeletons with whatever level of dynamic adaptation required
[10:04]<alek_s> self configured modules, flexible chains of handlers, you name it ...
[10:04]<alek_s> ;-)
[10:04]<alek_s> hi Glen
[10:04]<alek_s> hi Sanjiva
[10:04]<Chinthaka> hi 
[10:04]<Srinath> :)
[10:04]<Deepal> hi Alek
[10:04]<Chinthaka> shall we run a for loop :D
[10:05]<Thilina> hi alek
[10:05]  *** Jaliya joined #apache-axis
[10:05]<GlenD> for (String name = ChanServ to Thilina) { say "hi, $name" }
[10:05]  *** dasarath joined #apache-axis
[10:05]<Jaliya> Hi Alek
[10:05]  *** foxsden joined #apache-axis
[10:05]<dasarath> Hi Alek
[10:05]<Deepal> :D
[10:06]  *** dims joined #apache-axis
[10:07]<alek_s> hi Everybody!
[10:07]<dims> hi Alek :)
[10:09]<foxsden> 'Hi to Indiana from Geoffrey
[10:09]<alek_s> hi to the other side of planet ;-)
[10:10]<alek_s> i would add "the sunny side"
[10:11]<sanjiva> Hi Alek: We didn't discuss details of what the stubs look like - dynamic proxies is a possible way too
[10:12]<alek_s> i have experimented with dynamic stubs that uses Java Proxy and are im[lemented on top of WSIF so are WSDL driven
[10:12]<alek_s> WSDL portType is used to generate Java interface and that is it
[10:12]<alek_s> everything else is done in runtime and derived from Java interface (to keep static typing) and from WSDL 
[10:13]<alek_s> from WSDL i can read features/properties to auto-configure handlers (and use policies as well)
[10:13]  *** sanjiva_ joined #apache-axis
[10:14]<alek_s> i have a working prototype with XML-security in XSUL2 where chainedhandlers can autoconfigure themselves depending of features in WSDL and dyanmic stub encapsulates handler chain
[10:15]<alek_s> so in this case there is no code generation but for Java interface derived from WSDL:portType (and interface in WSDL2 in distant future ...)
[10:15]<alek_s> the only downside is possibly harder to debug (but generated code is not easy to read anyway) and some slowdown (minor when compared ot network latencies)
[10:16]<Deepal> today chat log upto this point is located at 
[10:16]<Deepal> http://wiki.apache.org/ws/Frontpage/Axis2/f2f_2/day3
[10:18]  *** Jaya joined #apache-axis
[10:18]<GlenD> -- We should generate both "float getStockQuote(String)" and "CallbackHandle getStockQuote(String, Callback)"
[10:19]<GlenD> -- If the callback argument is null, then the engine treats it as a one-way
[10:19]<GlenD> -- (i.e. doesn't hold resources for reply, etc)
[10:21]<Chinthaka> Deepal : http://wiki.apache.org/ws/Frontpage/Axis2/f2f_2/Scribe31 is reserved for today's chat log
[10:22]<alek_s> if you have an operaiton that is one way then with java annotaiotn (JSR 175 that is now backported to JDK 1.3/1.4) it can be very nicely described
[10:22]<Chinthaka> put it there please
[10:22]<alek_s> here is simple example
[10:22]<Deepal> Chinthaka  :oh ok I will do that 
[10:23]<GlenD> -- Jaliya asks about how we deal with robust MEPs in the async case... 
[10:23]<GlenD> -- We decided that since there's no one right answer that there should be a default behavior and a configuration option.
[10:23]  *** sanjiva quit FreeNode : Read error: 60 (Operation timed out)
[10:24]<GlenD> -- Example - if the default is "return immediately for async calls and do EVERYTHING on another thread", then you cannot get a fault back except via a Callback object (if you don't pass one you don't get faults)
[10:24]<GlenD> -- If the default is "robust" then the engine can wait until it sees either a "202 OK" or a fault on the HTTP connection before it returns.
[10:25]<alek_s> example for one way without fault:   /** @OneWay */ public void someMethod(SomeParam)
[10:25]<GlenD> I think the default should be "return immediately"
<Deepal> chat log http://wiki.apache.org/ws/Frontpage/Axis2/f2f_2/Scribe31
[10:27]<alek_s> Glen: i agree - it is what one-way means - as son as message is out you can start doing other things
[10:29]  *** alek_s is now known as aleks_12hourslag
[10:30]  *** aleks_12hourslag is now known as aleks_11hour_lag
[10:34]<GlenD> *** TAKING A TEA BREAK ***
[10:34]<GlenD> back in a few...
[10:43]<Chinthaka> listing : what we need to 1.0
[10:49]<Deepal> what are going to do next
[10:49]<Deepal> supportinng SOAP 1.1/1.2
[10:49]<Deepal> WSDL 1.1/2.0
[10:49]<Deepal> specs
[10:49]<Deepal> Modules
[10:50]<Deepal> RM , security
[10:50]<Deepal> session
[10:50]<Deepal> Transports
[10:50]<Deepal> HTTP/SMTP/TCP
[10:51]  *** GlenD quit FreeNode : Read error: 145 (Connection timed out)
[10:52]<Deepal> -- Providers
[10:52]<Deepal> Java
[10:52]<Deepal> E4X
[10:52]<Deepal> --
[10:53]<Chinthaka> WSA impl of 2004/08 and final version
[10:54]<Deepal> RPC encoding
[10:55]<Deepal> MIME/MTOM/SwA
[10:55]<Deepal> Java provider 
[10:55]<Deepal> RPC & MSG
[10:57]<Deepal> supporting WS police
[10:58]  *** dims left #apache-axis : 
[10:59]  *** chathura joined #apache-axis
[10:59]<Deepal> Data binding framework has to be there
[11:01]<Deepal> How deployment and Deployment
[11:01]<Deepal> Client API , modules
[11:02]<Deepal> interopt testing
[11:03]<Deepal> WS-I sample application
[11:03]<Deepal> java2WSDL
[11:03]<Deepal> and WSDL2Java
[11:05]<Deepal> Managment tool
[11:06]<Deepal> More tool (eclipce)
[11:08]<Chinthaka> hey guys
[11:08]<Chinthaka> look at http://wiki.apache.org/ws/FrontPage/Axis2/f2f-2
[11:08]<Chinthaka> for Axis 2 1.0 requirements
[11:08]<Chinthaka> its the last item
[11:10]<chathura> deployment
[11:10]<chathura> .........................................
[11:10]<chathura> Decession
[11:11]<Chinthaka> Guys, is that list ok ... ?
[11:11]<chathura> "We need a way to find the required services,etc ohther than in AXIS_HOME
[11:12]<sanjiva_> I'd like to add one more requirement to 1.0: Support for REST Web services too
[11:13]<sanjiva_> (its very easy to do)
[11:13]<Srinath> :)
[11:15]<Chinthaka> agreed, even Shawn was concerned abt this
[11:20]  *** ashutosh joined #apache-axis
[11:23]<Chinthaka> so shall we add REST support ?
[11:23]<Chinthaka> for Axis 2  1.0 ?
[11:27]  *** chathurah__ joined #apache-axis
[11:33]<chathurah__> Problem with deployment
[11:34]  *** chathura quit FreeNode : Read error: 60 (Operation timed out)
[11:35]<chathurah__> "How will the service isolation using seperate class loader will affect the module which is required to be shared over services
[11:35]<chathurah__> "
[11:44]  *** Thilina quit FreeNode : Read error: 54 (Connection reset by peer)
[11:48]<chathurah__> Discussion :can the module in its own declare a phase inside it
[11:50]<chathurah__> glen says : no reason you shouldnt
[11:50]<chathurah__> dr sanjiva says YAGNI
[11:50]<chathurah__> :d
[11:54]  *** GlenD joined #apache-axis
[12:02]<GlenD> Open topic - Module-specific phases (i.e. module.xml defines new phases)
[12:03]<GlenD> Open topic - referring to individual handlers within other Modules (i.e. "I need to run after the 'authentication' handler" instead of just using phases for constraints)
[12:04]<GlenD> WRT Module-specific phases, discussion included the idea that modules are able to define new phases so that other modules can refer to them.  These phases become available EITHER a) globally (by editing server.xml, etc) OR b) locally (i.e. that phase may only exist for the service where the module is deployed)
[12:05]<Srinath> creating a list of the default pahses ..we differed for investigation
[12:05]<Srinath> but need to done in quickly and to do it in the mailing list.
[12:07]<Srinath> should we have the inter module dependancies
[12:07]<Srinath> ?
[12:08]<Srinath> we leave the Q more or less open
[12:21]<Srinath> To lunch
[12:23]  *** dasarath quit FreeNode : "Miranda IM! Smaller, Faster, Easier. http://miranda-im.org"
[12:33]  *** FR^2 joined #apache-axis
[12:54]  *** Jaliya quit FreeNode : Read error: 54 (Connection reset by peer)
[13:02]  *** FRQuadrat joined #apache-axis
[13:05]  *** FR^2 quit FreeNode : Nick collision from services.
[13:05]  *** FRQuadrat is now known as FR^2
[13:31]<Chinthaka> back after lunch
[13:45]<Chinthaka> back to module interface discussion
[13:52]  *** foxsden quit FreeNode : Read error: 110 (Connection timed out)
[13:53]<GlenD> No revoke() for now... if you want to deal with faults, put a handler on the fault flow
[13:53]  *** Jaliya joined #apache-axis
[13:55]<GlenD> We discussed the possibility that various components (handlers, etc) might want to do cleanup when a given scope (message, interaction, server) ends.  We should note that we might want to use something like context.registerExitHandler(ExitHandler) in order to do this - this would allow Handlers to put resources in a DB, higher level context, etc, and then clean them up when the interaction ends (like finally {} in Java)
[13:55]  *** Jaliya left #apache-axis : 
[13:55]  *** Jaliya joined #apache-axis
[13:56]<sanjiva_> On the question of a handler changing the handler chain dynamically: You are not allowed to do that. Modules can edit the handler chain the way they want at module engagement time but once a message is flowign thru the chain the chain cannot be modified.
[14:00]<sanjiva_> Note: handler programming model will say its not a good idea to do the above (and if you do then all bets are off) .. we won't write code that will check this.
[14:03]  *** dasarath joined #apache-axis
[14:04]  *** Jaliya quit FreeNode : Read error: 104 (Connection reset by peer)
<Srinath> we are going to have MEPContext
[14:38]<Srinath> when the service/opeariation is dispatched if it is create a new MEPcontext or find existing one
[14:40]<Srinath> the MEPcontext can be asked from the WSDLOperation
[14:45]  *** Jaya quit FreeNode : Remote closed the connection
[14:49]<Deepal> glen drawing MEP diagram
[14:50]<Deepal> how to identify the MEP and how provider work according to the MEP
[15:02]<Srinath> the the client side either call or the Dispatcher/addressing handler find MEP context
[15:02]  *** foxsden joined #apache-axis
[15:04]<Srinath> Recap:now the opeation is going to executable
[15:04]<Srinath> we are going to generate it or
[15:05]<Srinath> have inbuild ones for the default ones like IN-Only, IN-OUT
[15:05]<Srinath> that would be picked in
[15:06]<Chinthaka> Introducing a MEPContext
[15:07]<Chinthaka> MEPContext is there to hold all the related messageContexts per MEP
[15:08]<Chinthaka> this will ease the task of finding the related other messages for a particular message
[15:08]<Chinthaka> for example, in IN-OUT 
[15:09]<Chinthaka> out handlers may need to accesss the IN message contexts
[15:09]<Chinthaka> the MEPContext will provide the handlers with that
[15:12]--->> PRIVMSG #apache-axis 
[15:12]> No text to send 
[15:15]  *** Jaliya joined #apache-axis
15:51]<Srinath> To
[15:51]<Srinath> Tea
[15:53]  *** ashu joined #apache-axis
[15:54]  *** ashu slaps ashutosh around a bit with a large trout
[15:55]  *** ashu quit FreeNode : Client Quit
[16:00]  *** ashutosh quit FreeNode : Remote closed the connection
[16:12]  *** dasarath quit FreeNode : Read error: 110 (Connection timed out)
[16:13]  *** GlenD quit FreeNode : Read error: 110 (Connection timed out)
[16:28]<Srinath> We discussed faults
[16:28]<Srinath> and tht fault flows
[16:41]  *** sanjiva_ is now known as sanjiva
[16:42]  *** GlenD joined #apache-axis
[16:42]<GlenD> Fault flows discussion resulted in a bunch of interesting stuff.
[16:45]<GlenD> -- Operations have message descriptors inside them, and those message descriptors are ChainBuilders (i.e. they might contain handler/module deployments)
[16:45]<GlenD> -- Faults are message descriptors just like ins/outs
[16:46]<GlenD> -- When an operation gets selected / dispatched-to, it figures out which message descriptor is active based on the MessageContext it is given.
[16:47]<GlenD> -- Using this information, it can construct the correct handler chain (merging message specific handlers, service specific handlers, and global handlers) - i.e. operation.genHandlerChain()
[16:48]<GlenD> -- Figuring out a message is a fault is akin to dispatching it to a service/operation - so similar code is used
[16:49]<GlenD> Note that it's probably possible to do good optimization of handler chains by caching (or precomputing) the resultant chains for given messages/operations/services.  Good places to cache these might be in the stacked contexts
[17:05]  *** Jaliya quit FreeNode : Read error: 104 (Connection reset by peer)
[17:06]<Srinath>  We rename the Reciver to MessageReciver (interface) and Sender to MessageSender(class)
[17:07]<Deepal> look at this http://wiki.apache.org/ws/Frontpage/Axis2/f2f_2/people
[17:10]<Srinath> has the send(MessageContext) and recive(MessageContext)
[17:15]<Srinath> we vote and it is going to be MessageReciver
[17:15]<Srinath> and it is final :)
[17:22]<Srinath> As long as the interfaces are concerned we have EngineConfiguration, not EngineRegistry
[17:27]<Srinath> EngineContext, MessageContext, ModuleContext, MEPContext, ServiceContext

Frontpage/Axis2/f2f_2/Scribe31 (last edited 2009-09-20 22:48:43 by localhost)