[Design of JBoss Remoting, Unified Invokers] - Extracting load balancing classes from AS cluster module for
by bstansberry@jboss.com
Opening a forum thread for discussions of http://jira.jboss.com/jira/browse/JBCLUSTER-137
First fundamental issue is the dependencies that the LoadBalancePolicy interface brings with it:
1) public void init (HARMIClient father);
This method is only used by HARMIClient (which in the AS itself is only used by HA-JNDI, and JBREM-424 will probably make that go away.) This method is implemented as a no-op in all the LoadBalancePolicy impls the AS ships with.
My inclination here is to remove this method from the interface we extract from the AS code, and leave a subinterface in the AS cluster module that includes this method.
2) public Object chooseTarget (FamilyClusterInfo clusterFamily);
This is the only method that any of our implementation classes actually implement.
Issue here is dependence on FamilyClusterInfo. Presence of this interface in the API means we need to continue to use it, or break existing custom LoadBalancePolicy impls that users may have. That would make migrating to AS 5 harder.
Tom/Ron, how do you see FamilyClusterInfo fitting into what you want to do with failover in Remoting?
3) public Object chooseTarget (FamilyClusterInfo clusterFamily, Invocation routingDecision);
The overloaded Invocation param is not actually used in any of std LoadBalancePolicy impls. However, it *is called* by all the detached invoker HAProxy impls. The ClusterChooserInterceptor used by EJB3 does not call this method.
Again, I'd prefer not to break existing custom policies. If necessary, I could add this method to the AS-specific subinterface discussed above for the init() method. But, http://jira.jboss.com/jira/browse/JBREM-385 discusses moving all the old detached invoker stuff into Remoting, so keeping it in the main interface probably makes more sense.
The problem there is you get a circular dependency -- cluster project LoadBalancePolicy depends on Invocation class from a Remoting jar; Remoting depends on LoadBalancePolicy for HA features. A solution is to move the load balance policies into Remoting as well, but then they pull FamilyClusterInfo with them. (FamilyClusterInfo does not bring any further dependencies.)
Thoughts?
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3966341#3966341
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3966341
19 years, 7 months
[Design of JBoss jBPM] - Re: Want to contribute Commands, where to start?
by kukeltje
First, welcome. I've seen and tried some of your things and think your contributions will be a welcome addition.
anonymous wrote : - Why do they call "JbpmContext context = JbpmContext.getCurrentJbpmContext();" in the execute method? Shouldn't that be hidden in a Command superclass?isn't it?
anonymous wrote : - Why are there Hibernate mappings for the commands. In which circumstances are they persistent? I thought, I pass them to the CommandService and get a answer, why Hibernate?
The async command executor in jbpm, which can be used as a simplified, not enterprise ready alternative to JMS. These commands are persisted so they can be executed at a later time and to survive a crash
anonymous wrote :
| - How exactly are the Commands working. I think I have also seen them used internally in jbpm? Wheres a good starting point?
The commandexecutor class/thread is one, the other is async functionality (they are related, one 'publishes', the other 'consumes'
anonymous wrote : Or is there some documentation or other Threads to read first? I think I have no full understanding how the commands should work. I thought of pure Java Command objects, send to [JBoss / Webapp / JMS / ...] and get back a result (if synchronous).
They are only used in asynchrounous stuff, maybe the ejb (have not looked into this) and the webservice stuff I'm working on.
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3966330#3966330
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3966330
19 years, 7 months
[Design of JBoss jBPM] - Want to contribute Commands, where to start?
by camunda
Okay, first of all: Hello guys!
I am glad to tell that I have joined the jbpm developer community. Tom has accepted me as committer also. So I hope we will have much fun together in the future :-)
A few words about me: I am working in my own company named "camunda", which I founded in 2003. We are a small company and a main focus is doing projects at customers or go into larger projects as specialists. One part of our main focus is BPM with Java and so jBPM at the moment. So I have seen some (big) jBPM projects the last years. We developed some tools around jbpm and named it "toolkit for jbpm". Now I plan to contribute much of this code to the jbpm core.
One important thing in the tk4jbpm is a EJB3 SLSB which I now plan to migrate to jbpm commands. But I have some questions on the jbpm commands in the CVS head:
- Why do they call "JbpmContext context = JbpmContext.getCurrentJbpmContext();" in the execute method? Shouldn't that be hidden in a Command superclass? Or is the
JbpmContext.getCurrentJbpmContext() usable in any environment? Also it seems to be deprectated. Sorry if this is a silly question, but I worked with a different use of the context in our bean the last year.
- I don't know where are the constants "public static final String CMD_START_PROCESS = "jbpmStart";" in the Command-Interface are for. Any hints?
- Why are there Hibernate mappings for the commands. In which circumstances are they persistent? I thought, I pass them to the CommandService and get a answer, why Hibernate?
- How exactly are the Commands working. I think I have also seen them used internally in jbpm? Wheres a good starting point?
Or is there some documentation or other Threads to read first? I think I have no full understanding how the commands should work. I thought of pure Java Command objects, send to [JBoss / Webapp / JMS / ...] and get back a result (if synchronous).
If i Have gained a better understanding I think I can submit some additional commands.
In a second step I want to change the remaining tk4jbpm (the Swing Admin-Client mainly) to work with these commands and the CommandService. A example screenshot for that Swing Admin-Client can be found on our homepage: http://www.camunda.com/toolkit_for_jbpm/tk-jbpm-screenshots.html
So sorry for the long threadand I hope to get some answers to start contributing :-)
Best regards from Stuttgart, Germany,
Bernd
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3966325#3966325
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3966325
19 years, 7 months
[Design of Security on JBoss] - SecurityContext
by anil.saldhana@jboss.com
>From Scott's quote:
instead of just a Subject representing the security context, we should have a security context that contains a Subject, trust domain info, authorization info/pointers, etc to allow better integratin/reuse of authorization aspects.
There is a need for an unified Security Context that holds both the authentication and authorization aspects together. I would like to get ideas on this from the community.
We already have SecurityAssociation acting as a central security floater (that takes care of the subject/runasidentity etc).
Where would this Security Context reside?
In my experiment, I tried a SC that was fitted inside the SA in a threadlocal, but ran into thread safety issues.
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3966261#3966261
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3966261
19 years, 7 months