1 encourage participants’ contributions by roles -ibm eclipse innovation grant -ibm eclipse...
TRANSCRIPT
11
Encourage Participants’ Encourage Participants’ Contributions by RolesContributions by Roles
-IBM Eclipse Innovation Grant-IBM Eclipse Innovation Grant
Haibin Zhu, PhDHaibin Zhu, PhDSenior Member, IEEESenior Member, IEEE
Dept. of Computer Science and mathematics, Nipissing Dept. of Computer Science and mathematics, Nipissing University, 100 College Dr., North Bay, ON P1B 8L7, CanadaUniversity, 100 College Dr., North Bay, ON P1B 8L7, Canada
[email protected]@nipissingu.cahttp://www.nipissingu.ca/faculty/haibinzhttp://www.nipissingu.ca/faculty/haibinz
22
Nipissing UniversityNipissing University
33
Barrie 2.5
Brantford 4.5
Hamilton 4 - 4.5
Kitchener/ Waterloo
4.5
London 5.5
Ottawa 4 - 4.5
Owen Sound 4
Pembroke 2.5
Peterborough 3.5
Sault Ste. Marie 4.5 - 5
Sudbury 1.5
Timmins 4 - 4.5
Toronto 3.5 - 4
44
ContentsContents
IntroductionIntroduction E-CARGO ModelE-CARGO Model The Process of Role-Based CollaborationThe Process of Role-Based Collaboration Human Users and AgentsHuman Users and Agents RolesRoles ImplementationImplementation ConclusionConclusion
55
IntroductionIntroduction
People cooperate in order to obtain better or People cooperate in order to obtain better or more productive resultsmore productive results
Collaboration may produce both good and Collaboration may produce both good and bad consequences bad consequences
The question is: The question is: how to maximize productive how to maximize productive collaborationscollaborations
The design of collaborative systems should The design of collaborative systems should reflect the rationalities in natural society. reflect the rationalities in natural society.
66
IntroductionIntroduction
Roles are good mechanisms in supporting Roles are good mechanisms in supporting collaborative work with computers collaborative work with computers Same Same time, different placestime, different places
The process of collaboration can affect The process of collaboration can affect participants’ satisfaction, motivation, and participants’ satisfaction, motivation, and productivityproductivity
To encourage people to work more is a To encourage people to work more is a general aim for all the regulations or policies general aim for all the regulations or policies for societies or organizations.for societies or organizations.
77
Three Types of PeopleThree Types of People
Diligent people try to do as many jobs as Diligent people try to do as many jobs as possible. They want take as many possible. They want take as many responsibilities as possible do not care about responsibilities as possible do not care about rights. rights.
Ordinary people only want to complete the Ordinary people only want to complete the regular jobs assigned to him. They would like to regular jobs assigned to him. They would like to take responsibilities but require the matching take responsibilities but require the matching rights.rights.
Lazy people try to do as less jobs as possible. Lazy people try to do as less jobs as possible. They want to grasp as many rights as possible They want to grasp as many rights as possible and take as few responsibilities as possible. and take as few responsibilities as possible.
88
More rights mean more More rights mean more responsibilities with responsibilities with RolesRoles
By roles, people can express progresses by telling By roles, people can express progresses by telling how many significant roles they are playing. That how many significant roles they are playing. That is to say, roles can be taken as a flag of advances is to say, roles can be taken as a flag of advances for people in collaboration. for people in collaboration.
In a role-based team, lazy people will be finally In a role-based team, lazy people will be finally restricted and discarded by the team and diligent restricted and discarded by the team and diligent people will be finally the majorities of the team and people will be finally the majorities of the team and be promoted to play more important roles that give be promoted to play more important roles that give them opportunities to contribute more. them opportunities to contribute more.
99
E-CARGO ModelE-CARGO Model
::= <C, O, A, M, R, E, G, s0, H>, where::= <C, O, A, M, R, E, G, s0, H>, where– C is a set of classes;C is a set of classes;– O is a set of objects; O is a set of objects; – A is a set of agents;A is a set of agents;– M is a set of messages; M is a set of messages; – R is a set of roles; R is a set of roles; – E is a set of environments; E is a set of environments; – G is a set of groups; G is a set of groups; – s0 is the initial state of a collaborative system; ands0 is the initial state of a collaborative system; and– H is a set of users. H is a set of users.
1010
AgentAgent
An agent is a representative of a human user.An agent is a representative of a human user. a ::= < n, ca, s, Na ::= < n, ca, s, Nrr , N , Ngg >, where >, where
– ccaa is a special class that describes the common is a special class that describes the common
properties of users; properties of users; – n is the identification or name of the agent;n is the identification or name of the agent;– s is the set of properties of the agent; s is the set of properties of the agent;
– NNrr means a set of identifications of roles the agent are means a set of identifications of roles the agent are
playing; andplaying; and
– NNgg means a set of identifications of groups the agent means a set of identifications of groups the agent
belongs to.belongs to.
1111
MessageMessage
m ::= < n, v, l, P, t > wherem ::= < n, v, l, P, t > where– n is the identification of the message; n is the identification of the message; – v is null or the receiver of the message v is null or the receiver of the message
expressed by an identification of a role; expressed by an identification of a role; – l is the pattern of a message, specifying the l is the pattern of a message, specifying the
types, sequence and number of parameters; types, sequence and number of parameters; – P is a set of objects taken as parameters with P is a set of objects taken as parameters with
the message pattern l, where PO; and the message pattern l, where PO; and – t is a tag that expresses any, some or all t is a tag that expresses any, some or all
message.message.
1212
RoleRole
r ::= <n, I, Nr ::= <n, I, Naa, N, Noo> where, > where, – n is the identification of the role; n is the identification of the role; – I ::= < MI ::= < Minin, M, Moutout > denotes a set of messages, wherein, > denotes a set of messages, wherein,
Min expresses the incoming messages to the relevant Min expresses the incoming messages to the relevant agents, Magents, Moutout expresses a set of outgoing messages or expresses a set of outgoing messages or message templates to roles, i.e., Mmessage templates to roles, i.e., Minin, M, Moutout (- M; (- M;
– NNaa is a set of identifications of agents that are playing is a set of identifications of agents that are playing this role; and this role; and
– NNoo is a set of identifications of objects including classes, is a set of identifications of objects including classes, environments, roles, and groups that can be accessed environments, roles, and groups that can be accessed by the agents playing this role. by the agents playing this role.
1313
Types of Collaboration Types of Collaboration
Synchronous collaboration: it is face-to-face Synchronous collaboration: it is face-to-face collaboration or virtual face-to-face collaboration collaboration or virtual face-to-face collaboration with the help of collaborative systems. with the help of collaborative systems.
Asynchronous collaboration: it occurs at different Asynchronous collaboration: it occurs at different times at ordinarily different places with the help of times at ordinarily different places with the help of paper-based or computer-based communications.paper-based or computer-based communications.
Long-term collaboration: collaboration takes a long Long-term collaboration: collaboration takes a long time, such as a large project or a large group such time, such as a large project or a large group such as an enterprise. as an enterprise.
Short-term collaboration: it takes a short time such Short-term collaboration: it takes a short time such as a meeting and a conference.as a meeting and a conference.
1414
AssumptionsAssumptions
Any person has a limited ability. If s/he plays too many Any person has a limited ability. If s/he plays too many roles, there must be a chance that s/he cannot serve all the roles, there must be a chance that s/he cannot serve all the requests satisfactorily that will affect his/her credits.requests satisfactorily that will affect his/her credits.
A person can collect his/her credits by serving others. A person can collect his/her credits by serving others. To assign new roles is to appraise the person’s past work.To assign new roles is to appraise the person’s past work. A role might be disapproved based on the credit of the A role might be disapproved based on the credit of the
person to take responsibilities.person to take responsibilities. The role dispatchers are fair and will distribute messages The role dispatchers are fair and will distribute messages
evenly.evenly.
1515
The Process of Role-Based The Process of Role-Based Collaboration (RBC)Collaboration (RBC)
Step 1: Negotiate roles. Step 1: Negotiate roles. Step 2: Assign roles. Step 2: Assign roles. Step 3: Play roles. Step 3: Play roles.
– Step 3.1: Check incoming messages. Step 3.1: Check incoming messages. – Step 3.2: Issue outgoing messages. Step 3.2: Issue outgoing messages.
1616
The Major Activities in RBCThe Major Activities in RBC
To play a role. An agent wants to grasp rights and To play a role. An agent wants to grasp rights and to take responsibilities.to take responsibilities.
To serve others. An agent responds an incoming To serve others. An agent responds an incoming message.message.
To evaluate an agent. The system evaluates an To evaluate an agent. The system evaluates an agent by checking the information relevant to it if a agent by checking the information relevant to it if a role is appropriate to it.role is appropriate to it.
To disapprove a role. The system takes away a To disapprove a role. The system takes away a role from an agent.role from an agent.
To promote an agent. This system upgrades an To promote an agent. This system upgrades an agent by assigning it a super role.agent by assigning it a super role.
1717
The Problems need to solveThe Problems need to solve
How to collect the credits for an agent? How to collect the credits for an agent? – We can set a weight number for a message. While an agent has We can set a weight number for a message. While an agent has
served this message, this weight is added to the credits of the served this message, this weight is added to the credits of the agent. agent.
How to dispatch messages? How to dispatch messages? – The role dispatcher should have no bias. There should be a The role dispatcher should have no bias. There should be a
procedure to balance the dispatching, such as considering the procedure to balance the dispatching, such as considering the factors of the credits, the abilities, and the working state of an factors of the credits, the abilities, and the working state of an agent.agent.
How to check if an agent is really capable of doing what the How to check if an agent is really capable of doing what the role requires? role requires? – The only way is by the agent’s declarations of abilities and credits. The only way is by the agent’s declarations of abilities and credits.
1818
Human Users’ TasksHuman Users’ Tasks
Task 1: provide services. Make a class of agent Task 1: provide services. Make a class of agent that includes all the implementations of the that includes all the implementations of the methods corresponding to the incoming messages methods corresponding to the incoming messages of the roles.of the roles.
Task 2: ask for services. To send messages to Task 2: ask for services. To send messages to roles and obtain services from other agents.roles and obtain services from other agents.
Task 3: accessing objects. To obtain the Task 3: accessing objects. To obtain the properties of objects constrained by the roles.properties of objects constrained by the roles.
Task 4: request to promote. To play more roles.Task 4: request to promote. To play more roles.
1919
To express an agent To express an agent <e<ett, e, ess> to express the ability for an agent, where et > to express the ability for an agent, where et
expresses how many units of free time it has and eexpresses how many units of free time it has and ess expresses how many units of space it has. < eexpresses how many units of space it has. < e tt, e, ess > > can be reset based on the performance of an agent’s can be reset based on the performance of an agent’s services. services.
w to express the past performance or credits of w to express the past performance or credits of serving others. It can be used as a criterion to assign serving others. It can be used as a criterion to assign roles.roles.
u to express the workload. u to express the workload. a ::= <n, a ::= <n, ccaa, s, , s, NNrr, , NNgg, , eett, , eess, w, u >, where n, , w, u >, where n, ccaa, s, , s, NNrr, ,
and and NNgg keep the original meanings, keep the original meanings, eett, and , and eess, are , are used to express the ability, w the credit and u the used to express the ability, w the credit and u the workload. workload.
2020
Agents’ qualifications for a roleAgents’ qualifications for a role
The agent must provide methods to cover all the The agent must provide methods to cover all the incoming messages for the role;incoming messages for the role;
The agent must collect enough credits;The agent must collect enough credits; The agent must have enough abilities; The agent must have enough abilities; At least one role the agent is playing belongs to At least one role the agent is playing belongs to
the subordinate roles of this role if the role has the subordinate roles of this role if the role has subordinate roles; andsubordinate roles; and
At last, when a role is approved for an agent, the At last, when a role is approved for an agent, the ability < ability < eett, , eess> of the agent should be decreased > of the agent should be decreased based the role’s < based the role’s < eett, , eess> that expresses the ability > that expresses the ability requirement to play this role.requirement to play this role.
2121
Entry level Programmer
Intermediate level programmer
Senior Programmer
System designer
Project manager
System analyst
Tester
Testing manager
PhD Candidate
Assistant Professor
Associate Professor
Research staff
Distinguished Professor
Full Professor
Senior Research staff
Research Fellow
PhD Holder
2222
Redefinition of Role and MessageRedefinition of Role and Message
A message is redefined as m ::= < n, v, l, P, t, w > A message is redefined as m ::= < n, v, l, P, t, w > wherewhere– n, v, l, P, and t keep the original meanings; and n, v, l, P, and t keep the original meanings; and – w is the weight for an agent to collect its credit for w is the weight for an agent to collect its credit for
promotion, i.e., if an agent or its human user responds promotion, i.e., if an agent or its human user responds this message the agent will get the weight and this message the agent will get the weight and accumulate it to its credit.accumulate it to its credit.
r ::= <n, I, r ::= <n, I, NNaa, , NNoo, , eett, , eess, , RRmm, , RRbb, w> where, , w> where, – n, I, n, I, NNaa, , NNoo, , RRmm, , RRbb keep the original meanings, keep the original meanings, eett, and , and
eess are used to express the ability requirement, are used to express the ability requirement, RRmm, the , the super roles, super roles, RRbb the subordinate roles, and w the credit the subordinate roles, and w the credit requirement.requirement.
2323
ImplementationImplementation
class C_Agentclass C_Agent {{ //…//… int credit; //It is used to express its credits to int credit; //It is used to express its credits to
provide servicesprovide services int T;int T; //the number of time units (speed) //the number of time units (speed) int S;int S; //the number of space units (memory)//the number of space units (memory) //…//… }}
2424
C_RoleC_Role
class C_Roleclass C_Role {{ //…//… C_Role [] subordinates; C_Role [] subordinates; //An array of roles as its subordinate roles//An array of roles as its subordinate roles C_Role [] supers; //An array of roles as its super roles C_Role [] supers; //An array of roles as its super roles int T; //the number of time units used to play this role int T; //the number of time units used to play this role int S; //the number of space units used to play this roleint S; //the number of space units used to play this role int credit; //the credit number to play this roleint credit; //the credit number to play this role //..//.. }}
2525
InMessageInMessage
class InMessageclass InMessage {{ public Method aMethod;public Method aMethod; //A Java //A Java
methodmethod public int weight; //It expresses the credit public int weight; //It expresses the credit
weight.weight. //…//… }}
2626
AddAnAgentAddAnAgent
public boolean addAnAgent(C_Agent a)public boolean addAnAgent(C_Agent a) //approve the agent to play this role//approve the agent to play this role {{ //1. Check if the agent has enough services//1. Check if the agent has enough services //2. Check if the agent collects enough credits//2. Check if the agent collects enough credits //3. Check if the agent has enough abilities (<T, S>)//3. Check if the agent has enough abilities (<T, S>) //4. Check if there are subordinate roles for this role, //4. Check if there are subordinate roles for this role, //5. Link the role to the agent//5. Link the role to the agent return true;return true; }}
2727
ConclusionsConclusions
To encourage participants’ contributions in collaboration is To encourage participants’ contributions in collaboration is interesting and challenging. interesting and challenging.
We can use roles as flags to express a participant’s We can use roles as flags to express a participant’s progresses and contributions in collaboration. progresses and contributions in collaboration.
Future jobs:Future jobs:– To have agents automatically issue outgoing messages, get more To have agents automatically issue outgoing messages, get more
services and apply for roles; andservices and apply for roles; and– To build a practical role engine to automatically nominate roles to To build a practical role engine to automatically nominate roles to
qualified agents, evenly dispatch messages to agents, decrease qualified agents, evenly dispatch messages to agents, decrease credits from those agents provide late services, and support credits from those agents provide late services, and support asynchronous replies.asynchronous replies.
2828
QuestionsQuestions
??