Collaborate on a business rule application Otherwise advise on the idea
-
I want to share a project idea hoping to get feedback and possibly serious collaborators who are ready to give it a try in hope it can bring concrete gain and success. The idea is easily understood given the following parts of it : - A rules execution server - A .Net UI component for rules creation - A .Net component to communicate events/facts to the server and to receive rules execution responses. So it is easy to see that this new approach aims at helping developers easily integrate expert reasoning in their applications. they will have to deploy the server with their application, integrate the editor in their UI and wire up the server with their app as follows : - communicate events when they happen. - listen for actions triggering and do the needed jobs. - when user creates a rule, just save it in the engine. So the developer does no longer have to change his code when the end-user asks for a particular logic, and he gives maximum freedom to the end user to make sophisticated treatments. I can guarantee the server part, i hope to find collaborator on the .Net side. Thanks!
Push Framework - now released ! http://www.pushframework.com
-
I want to share a project idea hoping to get feedback and possibly serious collaborators who are ready to give it a try in hope it can bring concrete gain and success. The idea is easily understood given the following parts of it : - A rules execution server - A .Net UI component for rules creation - A .Net component to communicate events/facts to the server and to receive rules execution responses. So it is easy to see that this new approach aims at helping developers easily integrate expert reasoning in their applications. they will have to deploy the server with their application, integrate the editor in their UI and wire up the server with their app as follows : - communicate events when they happen. - listen for actions triggering and do the needed jobs. - when user creates a rule, just save it in the engine. So the developer does no longer have to change his code when the end-user asks for a particular logic, and he gives maximum freedom to the end user to make sophisticated treatments. I can guarantee the server part, i hope to find collaborator on the .Net side. Thanks!
Push Framework - now released ! http://www.pushframework.com
Ahmed Charfeddine wrote:
So the developer does no longer have to change his code when the end-user asks for a particular logic,
Wont work. The reason is simple. To solve complex problems complex logic is needed. Thus programming languages exist. Complexity also allows for more ways to create errors. Complex errors. And that is why programmers exist. A general solution would either be so simple as to provide no benefit or so complex that the "users" would need to be be programmers. Thus losing all possible benefit. Now if you have a specific problem domain and extensive expertise working in that domain (and not just programming for it) then you might be able to create a 'language' that is intutive for most users of the same domain. Then you can wrap everything else you said about it around it. Other than that you can just hack it as a learning experience. If so I suggest you keep the language simple. You might want to look into some of the existing gaming systems such as the ones that let you program 'robots' (software entities only) to fight against each other. The language is simple and there are existing implementations that let you constrast against. I am certain that there are other types of games systems like that as well.
-
Ahmed Charfeddine wrote:
So the developer does no longer have to change his code when the end-user asks for a particular logic,
Wont work. The reason is simple. To solve complex problems complex logic is needed. Thus programming languages exist. Complexity also allows for more ways to create errors. Complex errors. And that is why programmers exist. A general solution would either be so simple as to provide no benefit or so complex that the "users" would need to be be programmers. Thus losing all possible benefit. Now if you have a specific problem domain and extensive expertise working in that domain (and not just programming for it) then you might be able to create a 'language' that is intutive for most users of the same domain. Then you can wrap everything else you said about it around it. Other than that you can just hack it as a learning experience. If so I suggest you keep the language simple. You might want to look into some of the existing gaming systems such as the ones that let you program 'robots' (software entities only) to fight against each other. The language is simple and there are existing implementations that let you constrast against. I am certain that there are other types of games systems like that as well.
He's talking about Business Rules Engines. There are quite a few commercially available ones available right now that do just this. I worked on one back in the early 90s.
*pre-emptive celebratory nipple tassle jiggle* - Sean Ewington
"Mind bleach! Send me mind bleach!" - Nagy Vilmos
CodeStash - Online Snippet Management | My blog | MoXAML PowerToys | Mole 2010 - debugging made easier
-
Ahmed Charfeddine wrote:
So the developer does no longer have to change his code when the end-user asks for a particular logic,
Wont work. The reason is simple. To solve complex problems complex logic is needed. Thus programming languages exist. Complexity also allows for more ways to create errors. Complex errors. And that is why programmers exist. A general solution would either be so simple as to provide no benefit or so complex that the "users" would need to be be programmers. Thus losing all possible benefit. Now if you have a specific problem domain and extensive expertise working in that domain (and not just programming for it) then you might be able to create a 'language' that is intutive for most users of the same domain. Then you can wrap everything else you said about it around it. Other than that you can just hack it as a learning experience. If so I suggest you keep the language simple. You might want to look into some of the existing gaming systems such as the ones that let you program 'robots' (software entities only) to fight against each other. The language is simple and there are existing implementations that let you constrast against. I am certain that there are other types of games systems like that as well.
I knew the answers will start to come as when the sun reaches America. Well, jschell, as Pete said, this is feasible. People have done this before. But there is a new approach. The solution will be very simple, both for the end users and for the developers as well. Here are some example scenarios (our application will be named S) : Example 1 Company A develops an emailing applications. To provide its end users with the ability to make sophisticated treatments, A integrates our solution S this way : it adds the rules editor to the front end, it publishes all sort of events/facts, when they occur to the engine part of S (incoming email, with properties, contacts with properties..) and adds code that listens for actions triggering by engine so that it fulfills them. The developer will describe to S, what is the set of possible facts/events and their arguments, also will describe to S the set of possible actions. As you can see the developer did not puzzle himself how to create some langage or parser. To the end user, I imagine he can do this : When all of the following is true There is an email E from a person X Person X belongs to contact group G Then Move email E to Folder named G+"Emails" Example 2 Company B develops an access control system that allows other companies to restric access of employees to secure zones. After integrating S, now, the end user can write this rule : When all of the following is true : There is access request from reader R by person P1 (the system should interpret the card id to a person id) Reader R is an input door to zone Z Person P2 is owner of zone Z Person P2 is within zone Z Then Open door attached to reader R. This rule allows the system to grant access to a zone only when its "owner" is in it. End users can come with many rules like this. So the company will take care of the hardware communiaction part plus some interpretations of the signals, then it sends evrything to the engine and reacts when the engine triggers some action. End users will be more happy this way. Is the idea clearer now ? What are your thoughts ? Thanks!
Push Framework - now released ! http://www.pushframework.com
-
He's talking about Business Rules Engines. There are quite a few commercially available ones available right now that do just this. I worked on one back in the early 90s.
*pre-emptive celebratory nipple tassle jiggle* - Sean Ewington
"Mind bleach! Send me mind bleach!" - Nagy Vilmos
CodeStash - Online Snippet Management | My blog | MoXAML PowerToys | Mole 2010 - debugging made easier
Pete O'Hanlon wrote:
I worked on one back in the early 90s.
Presumably you are referring to a generic/general system and not one that was specific to a industry/company. By the way I created a "business rules" engine in the 90s as well. And worked with another commercial one then as well. And another system that could be deemed that as well in 2000. All of them required developers to create the rules. Or specially trained operators who spent all of their time doing that which certainly suggests a programmer to me.
Pete O'Hanlon wrote:
He's talking about Business Rules Engines. There are quite a few commercially available ones available right now that do just this.
And how many sales people create rules? How many HR managers? How many call center employees? How many clerks?
-
I knew the answers will start to come as when the sun reaches America. Well, jschell, as Pete said, this is feasible. People have done this before. But there is a new approach. The solution will be very simple, both for the end users and for the developers as well. Here are some example scenarios (our application will be named S) : Example 1 Company A develops an emailing applications. To provide its end users with the ability to make sophisticated treatments, A integrates our solution S this way : it adds the rules editor to the front end, it publishes all sort of events/facts, when they occur to the engine part of S (incoming email, with properties, contacts with properties..) and adds code that listens for actions triggering by engine so that it fulfills them. The developer will describe to S, what is the set of possible facts/events and their arguments, also will describe to S the set of possible actions. As you can see the developer did not puzzle himself how to create some langage or parser. To the end user, I imagine he can do this : When all of the following is true There is an email E from a person X Person X belongs to contact group G Then Move email E to Folder named G+"Emails" Example 2 Company B develops an access control system that allows other companies to restric access of employees to secure zones. After integrating S, now, the end user can write this rule : When all of the following is true : There is access request from reader R by person P1 (the system should interpret the card id to a person id) Reader R is an input door to zone Z Person P2 is owner of zone Z Person P2 is within zone Z Then Open door attached to reader R. This rule allows the system to grant access to a zone only when its "owner" is in it. End users can come with many rules like this. So the company will take care of the hardware communiaction part plus some interpretations of the signals, then it sends evrything to the engine and reacts when the engine triggers some action. End users will be more happy this way. Is the idea clearer now ? What are your thoughts ? Thanks!
Push Framework - now released ! http://www.pushframework.com
Ahmed Charfeddine wrote:
The solution will be very simple, both for the end users and for the developers as well.
I have created a rules engine. I have used several others. I have created custom solutions. I have created pseudo work flow systems and real work flow systems as well. I have created scripting languages and created solutions that were delivered with scripting languages. I have created dynamic data driven systems. And of that lot I was the designer on a number of them. So I have a fair bit of experience in creating dynamic solutions that match business models.
Ahmed Charfeddine wrote:
As you can see the developer did not puzzle himself how to create some langage or parser.
What makes you think that a parser is necessary to solve this problem?
Ahmed Charfeddine wrote:
it adds the rules editor to the front end, it publishes all sort of events/facts, when they occur to the engine part of S (incoming email, with properties, contacts with properties..)
Where exactly do those come from?
Ahmed Charfeddine wrote:
Reader R is an input door to zone Z
Person P2 is owner of zone Z
Person P2 is within zone ZWhere does the physical access to the door come from? Specifically how exactly does the door get opened by the software? How exactly does person P2 come to be within Z? How exactly does P2 come to own Z? Lets take a real scenario rather than an imaginary one. - A call center employee makes a service call to an account. - The employee is tasked with getting a payment for the account (the task.) - The employee can have a number of contact numbers along with comments about each number written by previous employees (usually about how 'good' the number is, what the person is like, when available, etc.) - Certain payment options require a manager override which can either be initiated by email (task ticket) or personal presence. - The time spent on the task must be measured in detail. - Each person (employee and/or manager) must be tracked as to actions on account. - Resolution and or further action must be recorded. - Updates to at least two systems can occur depending on resolution. One system is a standard database the other is a custom database that requires a screen scaping interface. - Real time m
-
Ahmed Charfeddine wrote:
The solution will be very simple, both for the end users and for the developers as well.
I have created a rules engine. I have used several others. I have created custom solutions. I have created pseudo work flow systems and real work flow systems as well. I have created scripting languages and created solutions that were delivered with scripting languages. I have created dynamic data driven systems. And of that lot I was the designer on a number of them. So I have a fair bit of experience in creating dynamic solutions that match business models.
Ahmed Charfeddine wrote:
As you can see the developer did not puzzle himself how to create some langage or parser.
What makes you think that a parser is necessary to solve this problem?
Ahmed Charfeddine wrote:
it adds the rules editor to the front end, it publishes all sort of events/facts, when they occur to the engine part of S (incoming email, with properties, contacts with properties..)
Where exactly do those come from?
Ahmed Charfeddine wrote:
Reader R is an input door to zone Z
Person P2 is owner of zone Z
Person P2 is within zone ZWhere does the physical access to the door come from? Specifically how exactly does the door get opened by the software? How exactly does person P2 come to be within Z? How exactly does P2 come to own Z? Lets take a real scenario rather than an imaginary one. - A call center employee makes a service call to an account. - The employee is tasked with getting a payment for the account (the task.) - The employee can have a number of contact numbers along with comments about each number written by previous employees (usually about how 'good' the number is, what the person is like, when available, etc.) - Certain payment options require a manager override which can either be initiated by email (task ticket) or personal presence. - The time spent on the task must be measured in detail. - Each person (employee and/or manager) must be tracked as to actions on account. - Resolution and or further action must be recorded. - Updates to at least two systems can occur depending on resolution. One system is a standard database the other is a custom database that requires a screen scaping interface. - Real time m
Hi, and I appreciate a lot your knowledgeable answer. I don't agree with the example you gave though, and I think it is just because my idea is still not clear. Those are to me static specifications of how the application is going to work, and I would not recommend to solve it using business rules either. It is rather about applications where, at certain stage of functionality, we want to allow end-users the ability to specify custom treatments, but since the possibilities are numerous, we seek a sort of a solution.
Push Framework - now released ! http://www.pushframework.com
-
Hi, and I appreciate a lot your knowledgeable answer. I don't agree with the example you gave though, and I think it is just because my idea is still not clear. Those are to me static specifications of how the application is going to work, and I would not recommend to solve it using business rules either. It is rather about applications where, at certain stage of functionality, we want to allow end-users the ability to specify custom treatments, but since the possibilities are numerous, we seek a sort of a solution.
Push Framework - now released ! http://www.pushframework.com
Ahmed Charfeddine wrote:
It is rather about applications where, at certain stage of functionality, we want to allow end-users the ability to specify custom treatments
Which is business specific and/or company specific and it requires an infrastructure to support the the allowed rules in the first place. And much of my previous example could have been handle dynamically via a work flow system. However that doesn't mean the call center manager (the "user") would have implemented it.