A Multi-Agent Architecture for an Intelligent Website in Insurance
关于代建制中集中代建方式的思考
《国务院关于投资体制改革的决定》提出,要在全国范围内推行“代建制”,加快对非经营性政府投资项目(以下简称政府投资项目)实行“代建制”的步伐。
所谓代建制是指将项目建设者与项目使用者分离,经过规定程序由项目投资者委托有相应资质的工程管理公司或具备相应工程管理能力的其他企业、机构进行组织和管理,实现“投资、建设、监管、使用”职能分开,通过专业化项目管理最终达到控制投资,提高投资效益和管理水平的目的。
代建方式主要有集中代建和分散代建两种方式。
集中代建方式是指成立专门承担政府投资项目代建任务的事业性机构实施代建,例如深圳市工务局、东莞市城建工程管理局等。
分散代建方式是指通过有限选定或招标选定具备相应资格的代建企业实施代建,例如上海市的代建模式。
无论集中代建还是分散代建方式,都各有优点和缺陷。
笔者通过对一些地方的代建制方式进行分析,认为在当前我国所处于的社会经济条件下,集中代建方式意义和作用更大,更具有可操作性。
一、集中代建方式适合当前的社会经济条件(一)当前社会经济条件下,两种代建方式优点和缺陷的比较。
1.集中代建方式符合现行行政管理体制的需要。
我国各地方正处于高速发展阶段,由于地方政府一定程度上受政绩观的影响,往往想方设法加快工程建设速度,因此,需要代建机构很好地贯彻政府建设意图。
虽然这样做存在一定的问题,但我们必须要正视现实。
在现行的行政管理体制之下,由于许多地方政府的建设项目前期工作严重不足,没有严格执行基本建设程序,促仓上马,“三边”工程仍然存在,分散代建方式必然阻力重重,委托人、代建人之间容易引起经济纠纷,例如:对超概算的责任界定不清。
2.缺乏配套的法律法规,严重制约了代建制,尤其分散代建方式的发展。
相对于集中代建方式,分散代建方式委托人、代建人存在较大的相对利益关系,其行为的规范性显得尤为重要。
但目前“代建制”既规避了原有的法律调整,又没有新的法律规定出台。
由于有关法规建设滞后,对代建人的管理以及代建行为,没有一套完整的管理规范。
Inter-agent
Inter-agent communication in a FIPA compliant intelligent distributeddynamic-information systemLuís M. Botelho Rui J. Lopes Manuel M. Sequeira Paulo F. Almeida Sérgio MartinsADETTI/ISCTEAssociation for the Development of Telecommunications and Information Techniques1600 Lisbon PortugalABSTRACTThis paper describes a traffic surveillance system as a particularcase of the class of intelligent distributed dynamic-informationsystems (IDDIS). The Traffic Surveillance System is avision-based FIPA compliant multi-agent system that uses theFIPA Agent Communication Language (ACL) and the FIPASemantic Language (SL). The focus of the work is inter-agentcommunication and coordination. We have extended the SLexpressiveness with respect to the representation of uncertaintyand to the representation of ad hoc MPEG7 descriptions. Wepropose a transport encoding format more suitable fortime-constrained systems than the original textual formatproposed in the FIPA specifications. We show that, within thescope of the FIPA platform, the FIPA ACL is a communicationlanguage powerful enough to achieve multi-agent coordinationthrough communication. This work also suggests that the FIPAplatform is suitable for building surveillance basedapplications.Keywords: Intelligent Agents, Multi-agent communication andcoordination, Intelligent Distributed Dynamic-InformationSystems, IDDIS, Traffic Surveillance System, MODEST,FIPA, Agent communication language, ACL, Semanticlanguage, SL1.INTRODUCTIONThe MODEST project [9] is an ACTS [1] European projectwith two distinct purposes: a development purpose and aresearch purpose. The development purpose is to build avision-based Traffic Surveillance System based on a network ofvideo cameras placed along roads, tunnels, bridges, orhighways. The research purpose is to evaluate and contribute for the work of the FIPA [4] and the MPEG7 [10] standardization bodies. With this goal in mind, the MODESTproject conceived the Traffic Surveillance System as a FIPAcompliant intelligent multi-agent system. We have developed several aspects of the FIPA specifications [5][6] including inter-agent communication and some components of the FIPA platform.Inter-agent communication was addressed with MPEG7 inmind, that is, the agents in the system can exchange messagescontaining ad hoc MPEG7 descriptions. Another concern ofthe project is real-time. Design options were taken consideringthe demanding time-constraints imposed to real-time systems.This paper is essentially devoted to inter-agentcommunication and coordination although it also presents anoverview of the Traffic Surveillance System.Currently, the main goals of the Traffic SurveillanceSystem are to detect abnormal individual behaviors (such as "driving in zigzag"), to determine global traffic patterns (e.g., "traffic jams" and "very intense fast traffic") and to compute traffic macro indicators (e.g., statistics and pollution indexes).In this phase of the project, the Traffic Surveillance System is composed of four cameras placed along a bridge in Brussels. There is no overlap between the visual fields of the cameras. The cameras are fixed in specified locations and, apart from the tilt resulting from strong wind, they don’t move. The cameras don’t zoom nor pan, either. This restricted version of the Traffic Surveillance System can be viewed as a distributed information management system operating in a dynamic environment. Information-management system because it does not control any sensors nor effectors; distributed because each camera is connected to several computational agents acting autonomously in separate computers; dynamic because the vehicles enter the scope of the system in unpredicted instants of time with unpredicted positions and speeds.The Traffic Surveillance System described in this paper can be seen as an example of a class of information management systems hereafter termed Intelligent Distributed Dynamic Information Systems (IDDIS). Instead of operating over a relatively static database (as traditional Information Systems do) an IDDIS operates over dynamic physical processes. Instead of being composed of a single program that accesses and manages a single or multiple sources of information, an IDDIS is composed of several agents that access one or more information sources or distinct views of the same physical source. Besides information management, the main issues in such systems are inter-agent communication and multi-agent coordination. Figure 1 depicts the generic organization of an IDDIS.In general, we view Intelligent Distributed Dynamic Information Systems as a class of real-time systems because it is supposed that they interact with their environment, with their peers and with their clients, in real-time.Intelligent Distributed Dynamic Information Systems have two agent layers: the objective observation layer and the application layer.The agents in the objective observation layer observe the dynamic process(es) and cooperate with each other to build a distributed objective high-level description of the observed process. The agents in the application layer are mostly mutually independent although they may communicate. Each of them communicates with several observation agents in order to get the information required to build its own biased view of the available information. The role of yellow pages agents is obviously very important in an IDDIS. If an application agent wants to get some specific information, first it asks the yellow pages agent what is the name of the agent that provides such information.Examples of observed dynamic processes include highway traffic, Internet traffic, motion pictures, stock markets, plantproduction processes, organizational processes and multimedia animated environments. Examples of applications include traffic surveillance, investments advising, production scheduling and diagnostic systems.Since the MODEST is a very recent project, the preliminary test phase has just started. In this phase, the Traffic Surveillance System is tested off-line: it analyses images stored on tape captured from a single video camera.presents the architecture of the Traffic Surveillance System.Section 3 presents the knowledge representation scheme, the inter-agent communication mechanisms and messages used in the system, and the coordination mechanism adopted. The transport level of the agent inter-communication is described in section 4. Section 5 analysis the contributions of the work to the FIPA and MPEG7 standardization bodies. Finally, section 6 shows conclusions and points directions for future work.2.ARCHITECTURE OF THE TRAFFICSURVEILLANCE SYSTEMThe Traffic Surveillance System is an intelligent multi-agent system in a FIPA compliant platform. The whole system is composed by a collection of agents in the objective observation layer, by a collection of agents in the application layer and by the platform agents. The platform agents perform generic tasks for the other agents: agent management tasks and agent communication tasks.In the Traffic Surveillance System, the agents of the objective observation layer constitute the Camera Assistant subsystem; the agents of the application layer constitute the Application Assistant. Each camera has its own Camera Assistant. Some of the agents in the Application Assistant are associated to each camera whereas some others are not associated to the cameras. Besides these agents, there are other agents that belong to the FIPA Platform. These include the AMS ("Agent Management System"), the ACC ("Agent Communication Channel") and the DF ("Directory Facilitator",a yellow pages agent).Every agent that belongs to the Traffic Surveillance System must register (advertise) its services with the DF. Any agent can ask the DF to tell it the names of the agents that perform some required task.Camera AssistantEach Camera Assistant has a Camera Proxy Agent (CP) that represents the camera, as seen by all other agents. As far asagent and the camera is made via the Camera Proxy. The Camera Proxy uses a set of software tools to analyze the digitized images from the camera and to produce high level ad-hoc MPEG7 descriptions of the images. The CP delivers excerpts of those MPEG7 descriptions to all other agents in the Traffic Surveillance System that want to receive them.Besides the Camera Proxy, each Camera Assistant includes a Local-Site agent, a Classifier Agent, a Behavior Characterizer agent and a Tracker agent. All these agents work on objective,application independent representations of the external environment.The Local Site Agent maintains static representations of the road pertaining to the scope of the camera to which it is associated and the region between the camera and the next one.It also maintains dynamic representations of the typical trajectories of vehicles. The typical trajectories of the vehicles are determined by the Behavior agent.The static information about the road includes the characterization of each lane, the slope of the road, information regarding bends, information regarding legal and typical speeds, and also information used for the calibration of the camera.The Classifier agent classifies the observed mobile objects.For the time being, there are seven classes: car, van, truck,bike, motorcycle, person and very-long-vehicle. A very-long-vehicle is possibly not a vehicle, but the effect produced by several vehicles very close to each other moving with similar speeds.The Behavior agent computes the points of the typical trajectories of vehicles and describes the behavior of individualvehicles. Each point in a typical trajectory includes information regarding the speed and the position of the vehicle. A specific individual behavior description may be something like "very slow vehicle", "constant speed", "same lane". The Local Site agent stores information about typical trajectories computed by the Behavior agent.The Tracker is responsible for the identification of vehicles in two consecutive cameras. It receives descriptions of vehicles in its camera and compares them with descriptions of vehicles in the previous camera. When the descriptions are similar enough, the Tracker assumes they describe the same vehicle. The Tracker also detects new and missing vehicles. Application AssistantThe Application Assistant is composed by a set of agents, some of which are just user agents. The user agents are not associated to the cameras. Besides the user agents, the Application Assistant contains a Level of Service agent in each camera, an Abnormal Behavior agent in each camera, and some Pollution and Statistics agents.The Level of Service agent determines the global pattern of the traffic and its tendency. For instance, one may have an intense traffic with tendency to increase intensity (or to decrease it).The Abnormal Behavior agent associates degrees of alarm to the behaviors of individual vehicles (determined by the Behavior agent of the Camera Assistant), using knowledge of the application domain and of the local site. For instance, it may determine that a particular observed zigzag was not an instance of dangerous behavior, but was due to a momentary obstruction of one lane.The Statistics and Pollution agent computes several statistics and pollution indicators, such as the number of vehicles of each class that were observed in given location per hour.There may be several types of user agents. One such agent can decide to send a MPEG4 stream to the user, showing images of an accident. Another user agent may depict a graphical representation of the global level of service in the scope of the system. For this end, it uses the information about the level of service in each camera, creates a summarized version and produces a graphical representation.Thick arrows indicate ACL inter-agent communication. Dashed arrows indicate non-ACL communication. Small ovals represent individual agents. Large dotted ovals represent the Camera Assistant and the Application Assistant. The DF is represented as a square because it is a component of the FIPA Platform. The AMS and the ACC are not explicitly represented because there is no explicit interaction between them and the agents of the Traffic Surveillance System.Figure 2 - Traffic Surveillance System ArchitectureMUNICATION AND COORDINATIONAll inter-agent communication uses ACL, a speech act [14] based language. The contents of the ACL messages are expressed in extended SL (“Semantic Language”), a content language based in [13].This section covers two main aspects related to inter-agent communication and coordination: the expressiveness of the content language and the cooperation achievement capabilities of the agent communication language.First, the content language of the messages exchanged among agents enables the representation of ad hoc MPEG7 descriptions of complex objects such as snapshots (instantaneous view of the scene) and individual vehicles. The capability of representing such complex descriptions enables the agents to talk about arbitrary multimedia objects. We will see that the content language used enables the representation of two kinds of uncertainty: uncertainty of data and uncertainty of relations between objects. We show that the FIPA SL content language can easily be extended to exhibit the described properties.Second, we show that the FIPA ACL language supports the implementation of a flexible and efficient cooperation achievement mechanism that enables agents to coordinate their efforts to solve global goals and that allows the addition of new agents with new capabilities. This last feature supports the flexible and modular development of increasingly complex intelligent distributed dynamic-information systems. Extending SL: ad hoc MPEG7 descriptions and uncertainty The MODEST project adopted FIPA SL ("Semantic Language") as the content language of ACL messages. In this section, we extend the SL language to represent ad-hoc MPEG7 descriptions and uncertainty.In the Traffic Surveillance System, data entities such as object descriptions are sent as logical terms within the contents of ACL messages.In the lisp notation used by ACL and SL, the parenthesis around functional expressions come before the function symbol. For instance, (Car white 177 medium) would be used instead of the more usual Car(white, 177, medium). We use a special notation to represent possibly incomplete descriptions of compound objects. In this notation, a description starts with the constructor of the description type; the constructor is followed by a list of attribute-value pairs that represent the arguments of the constructor. These arguments are the components of the compound object. For instance the term (Car :position 177) is our notational convention for (Car unknown-color 177 unknown-size), in which Car is the constructor of the type car, and the constants unknown-size and unknown-color represent unspecified size and color, respectively.Complex descriptions can also be lists of terms. We use the function list with any number of arguments to represent lists.Any of the components of a compound object may be an uncertain term. In our extension of the SL language, we use the operator uncertain-object that takes a term and a confidence and returns an uncertain term, for instance (uncertain-object 177 0.9). The following grammar rules define the grammar of the extended SLTerms.ExtendedSLTerm =SLTerm |// original SL grammarDescription |Collection |UncertainTerm.Description =“(“ ConstructorSymbol ComponentSpec* “)”. ConstructorSymbol = FunctionSymbol. ComponentSpec = “:”RoleName Value.RoleName = Word.Value = ExtendedSLTerm.Collection =“(“ “list” ExtendedSLTerm+ “)”UncertainTerm=“(““uncertain-object”ExtendedSLTerm Confidence “)”.Confidence = RealNumber.In the proposed extension of the SL language, the special operator uncertain-proposition is used to represent uncertain propositions, for instance (uncertain-proposition (stopped obj125) 0.8). The following syntactic rules formalize this new kind of formula:ExtendedSLWff =SLWff |// original SL grammarUncertainProposition.UncertainProposition =“(“ “uncertain-proposition”SLWff Confidence “)”.Notice that the original uncertainty modal operator defined in the SL specification does not allow to say how much uncertain an agent is about a given proposition. In application domains in which the execution of certain actions depends on the confidence the agent has on its information, it is required that confidences be quantified.Coordination by Information-SubscriptionIn this section, we show that the FIPA ACL language is powerful enough to achieve coordination by communication.In a multi-agent system, coordination is achieved if agents cooperate with each other in a constructive way to achieve global goals or to solve individual problems. Coordination can be achieved in a variety of ways, ranging from the centralized control architectures [7] to the protocol-based approach [15] and to the emergent behavior approach [11].The coordination mechanism adopted in the Traffic Surveillance System represents a compromise between flexibility and efficiency. This mechanism is called information-subscription because it is useful for cases in which agents that need some information class from a provider agent must subscribe that information class with the provider. It is assumed that each agent in the Traffic Surveillance System registers (advertises) its services with the DF.Following a BDI-like understanding of agents rationality [2], if an agent wants another agent to perform some action on its behalf, it must send a message that creates the intention in the receiver of performing the action that is desired by the sender. This is the basic idea behind information-subscription. This coordination mechanism has already been suggested in [3], about the register and the service protocols.Although the intentional semantics of the FIPA ACL language has been subject to some criticism [12], it is suitable to implement the described coordination mechanism. Actually, the rational effect of the messages used by an agent to request some action from another agent is to create the intention on the receiver to perform the requested action. In particular, the query-ref performative is used to ask an agent what is the object that satisfies a given condition. This message has the desired result because, upon accepting it, the receiver becomes committed to send the requested information to the sender. The subscribe performative creates the persistent version of the intention that may be created using the query-ref performative.In the Traffic Surveillance System, the cameras and the associated image processing algorithms extract high-level descriptions from the images. The agents of the system receive all or part of the descriptions extracted from the image by the image processing algorithms. Each time a given description is available, each agent needs to receive the parts of it that are of interest to the agent. Therefore the coordination mechanism should provide an economic but flexible way to generate persistent intentions in the mental state of the providers to send the requested information to the consumers. Any agent in the system may play the role of a provider or a consumer or both.If an agent wants to receive some desired information, it must proceed as follows. First it asks the DF (“Directory Facilitator”) what is the agent that provides the required information. The DF replies with the name of the provider.Second, it sends one or more inform messages to the information provider defining the relation between the information produced by provider and the information it considers relevant. This relation is represented by a function from the descriptions of the provider agent to the descriptions of the requestor agent.Third, it sends a query-ref, a subscribe or a request-whenever message so that the provider creates the intention or the persistent intention to send the relevant information to the agent. This message requires the provider agent to apply the previously defined function to its descriptions and send the result to the requestor.The above three steps constitute the information-subscription coordination mechanism. This coordination mechanism works with agents that have the (implicit or explicit) socially oriented meta-intention of committing themselves to perform actions that are requested by some other agent once they have accepted the request.After an agent has subscribed some information class, it may send other messages canceling the subscription or updating the definition of the desired information.In the remaining of this section we present a sequence of FIPA ACL messages used in a particular instance of the described cooperation achievement process.Preliminary step. Registration with the DFIn the following message, an agent called Camera Proxy registers the capability of delivering mobile object descriptions with the DF.(request:sender (Agent Proxy 1):receiver (Agent DF 1):content(action(Agent DF 1)(register(:df-description(:agent-name (Agent Proxy 1))(:services(:service-description(:service-typeimage-description-delivery)(:service-ontologytraffic-surveillance-domain)))(:interaction-protocols (listfipa-request))))) :language SL0:ontology fipa-agent-management)The terms (Agent Proxy 1) and (Agent DF 1) represent the name of the Camera Proxy agent and the name of the DF agent of camera number 1.First step. Ask the DF to search the name of the provider. An agent called Classifier asks the DF to tell it the name of the agent that provides the image-description delivery service. (request:sender (Agent Classier 1):receiver (Agent DF 1):content(action(Agent DF 1)(search(:df-description(:service-typeimage-description-delivery)))) :reply-with (Message (Agent Classifier 1)16) :language SL0:ontology fipa-agent-management)In the message below, the DF informs the Classifier that, as a result of the requested search, it found that the Camera Proxy provides an image-description delivery service.(inform:sender (Agent DF 1):receiver (Agent Classifier 1):content(result(action(Agent DF 1)(search(:df-description(:service-typeimage-description-delivery)))) (:df-description(:agent-name (Agent Proxy 1))(:services(:service-description(:service-typeimage-description-delivery)(:service-ontologytraffic-surveillance-domain)))) :in-reply-to (Message (Agent Classifier1)16) :language SL0:ontology fipa-agent-management)The term (Message (Agent Classifier 1) 16) in the parameter :reply-with and :in-reply-to represents a unique message identifier composed by the agent identifier and by a sequential number. When the DF answers this request, it must specify the same message identifier.Second Step. Definition of the relevant data entities.In the following message, the Classifier defines the relationship between the descriptions managed by another agent (the Camera Proxy) and the descriptions that are relevant from the Classifier’s point of view. This relationship is represented by the function ClassifierObject/1. This function is applied to a mobile object description managed by the Camera Proxy and returns a mobile object description suitable for the Classifier.(inform:sender (Agent Classier 1):receiver (Agent Proxy 1):content(forall ?obj(=(ClassifierObject ?obj)(Cons (MObjectSize ?obj)(Cons (MObjectShape ?obj) null)))) :language ExtendedSL:ontology Traffic-surveillance-domain)MObjectSize is a function that takes a Camera Proxy mobile object and returns its size. MObjectShape is a function that takes a Camera Proxy and returns its shape.Third step. Creation of the desired (persistent) intention in the provider.In the following message, the Classifier tells the Camera Proxy: each time you have a new snapshot, pick each mobile object of that snapshot, apply the function ClassifierObject/1 and send me the result.(subscribe:sender (Agent Classier 1):receiver (Agent Proxy 1):content(iota ?x(exists ?snap(exists ?obj(and(last-snapshot ?snap)(member ?obj (objectsList ?snap))(= ?x (ClassifierObject obj)))))) :conversation-id (Message (Agent Classifier1) 34):language ExtendedSL:ontology Traffic-surveillance-domain)From this point on, the provider (i.e., the Camera Proxy) will send the relevant mobile object descriptions to the consumer agent (i.e., the Classifier).This coordination mechanism has the following advantages.1. The designer of an agent does not need to know whatother agents should receive the information produced by it. An agent just receives information-subscription messages. If it accepts the subscription, it must send the required information to the requestor.2. The designer of the agent does not need to know whatagents produce the required information. If an agent wants to know the name of the agent that produces the required information, it just asks the DF.3. The information-subscription can be made only once,usually during the initialization stage of the agent existence. This is much better than having to repeat the same query to the same agent demanding the same class of information. This is a specially important issue in time-constrained systems like the Traffic Surveillance System.All the above advantages mean we can create new application agents without having to modify the existing agents. It is worth noting that there isn’t any agent in the Traffic Surveillance System that plays the role of controlling the other agents.As a final remark, the previous description of the coordination mechanism assumes that all agents use the same vocabulary. However, if this is not the case, an agent can first ask the OA (“Ontology Agent”, another agent of the FIPA platform) to translate the necessary concepts. This would be the first step of the information-subscription mechanism. In the current implementation of the Traffic Surveillance System, the OA has not been implemented.4.TRANSPORT ENCODING FORMATIn the current stage of the project, it is assumed that there is a single agent platform (the MODEST platform), no inter platform interaction will occur, and no mobile agent will visit the MODEST platform. Thus, only a proprietary protocol is specified in the project for the efficient exchange of FIPA ACL messages. Two different types of requirements were defined for the protocol: transport mechanism requirements and message format requirements.Transport mechanism requirements:•reliable and ordered delivery of messages,•low overhead.One protocol that copes with these requirements is the TCP/IP protocol. Thus, TCP/IP Berkley sockets where used to implement the transport mechanism between agents in the MODEST platform.Message format requirements:•efficient coding of FIPA ACL messages,•fast interpretation of FIPA ACL messages.Figure 3 Message data and stream structureIn order to cope with these two requirements the FIPA ACL messages are stored in a message data structure as represented in Figure 3.In the message data structure, literal components are represented by numeric codes instead of the usual textualMessage Data StructureStream Structure。
Abstract A Secure Workflow Model
A Secure Workflow ModelPatrick C.K.Hung1Kamalakar Karlapalem21CSIROMathematicalAndInformationSciencesGPO Box664,Canberra,ACT2601,Australia.2InternationalInstituteOfInformationT echnologyGachibowli,Hyderabad500019,India.Email:Patrick.Hung@csiro.au,kamal@AbstractWorkflow Management Systems(WFMSs)are becoming verypopular and are being used to support many of the day today workflows in large organizations.One of the major prob-lems with workflow management systems is that they often useheterogeneous and distributed hardware and software systemsto execute a given workflow.This gives rise to decentralizedsecurity policies and mechanisms that need to be managed.Since security is an essential and integral part of workflows,theworkflow management system has to manage and execute theworkflows in a secure way.The prolific use of workflow manage-ment systems for critical and strategic applications gives rise toa major concern regarding the threats against integrity,autho-rization,and availability.In this paper,we propose an autho-rization model with a set of invariants for workflows from theaspects of agents,events and data,and prove that if they hold,the workflow execution is secure.Further,we develop the au-thorization model by a multi-layered state machine.The novelpart of this model is separating the various aspects of controlin a workflow and portraying it as a multi-layered architecturefor analyzing theflow of authorizations.Keywords:Multi-Layered State Machine,WorkflowSecurity,Authorization.1IntroductionMany of the complex day to day workflows in mostlarge organizations are facilitated and conducted byWorkflow Management Systems(WFMSs).One ofthe major problems with WFMSs is that they of-ten use heterogeneous and distributed hardware andsoftware systems to execute a given workflow.Thisgives rise to decentralized security policies and mech-anisms that need to be managed.Since security is anessential and integral part of workflows,the WFMShas to manage and execute the workflows in a secureway.In particular,a robust secure workflow model isneeded to allow controlled access of data objects,se-cure execution of tasks,and efficient management andadministration of security(Joshi et al.2001,Kanget al.2001,Thuraisingham et al.2001).The prolificuse of WFMSs for critical and strategic applicationsgives rise to a major concern regarding the threatsagainst the security properties as follows:•Integrity prevents the unauthorized modificationof information(Hung2001).Integrity ensuresthe correctness and appropriateness of the con-tent of a piece of information.Integrity is alsorelated to the legitimate pattern of operations inthis paper,we propose an authorization model with a set of invariants for workflows from the aspects of agents,events and data,and prove that if they hold, the workflow execution is secure.We develop the au-thorization model by a multi-layered state machine. In the rest of the paper,section2describes the re-lated work,section3describes the secure workflow model,section4discusses the conclusions.2Related WorkSecurity is an essential and integral part of work-flows,and it has become an important topic in the research community as well as the industry.Many researchers are working on workflow standards.The Workflow Management Coalition(WfMC)is an orga-nization that focuses on the advancement of workflow management technology in industry.WfMC summa-rizes a number of security services(WfMC2001)for a conceptual workflow model that includes authenti-cation,authorization,access control,audit,data pri-vacy,data integrity,non repudiation,security man-agement and administration.Their approach intro-duces a security profile that identifies the security services to be applied for inter-operability between two parties.Further,WfMC proposes an extension to the inter-operability protocol to support the workflow service authentication data and the workflow inter-operability protocol data.Although WfMC presents the protocol for inter-operability between two parties, the inter-operability protocol proposed by the WfMC does not consider theflow of authorizations among parties,tasks and resources during the workflow exe-cution.Access control is mainly used to tackle the secu-rity properties of Authentication and Authorization. Discretionary Access Control(DAC)(Pernul1992) is used to model the security of objects on the ba-sis of a subject’s access privileges.DAC defines what kind of access a subject has to an object,and a set of predicates to represent access rules such as read, write,delete,create and copy.In other words,DAC controls the access from subjects to objects.So far, DAC only applies to control of system-oriented re-sources like database,file system,etc.In particular, workflow security requires support for per-task granu-larity for subjects and objects.For example,a gradu-ate student submits a research paper to a conference. It is obvious that the graduate student has the access right“write”to his paper.Once the paper is submit-ted to the conference,the access right“write”(of that particular copy of the paper)will be temporarily re-voked from the graduate student.After the reviewers examine the paper,they may suggest some comments and require the graduate student to revise the paper. Then,the graduate student can have the access right “write”of the paper again.DAC can represent that the research student(subject)has the access right “write”to the paper(object)and the reviewers(sub-jects)have the access right“read”to the paper(ob-ject),but they cannot handle when to grant/revoke the access rights of the object to/from the subjects in this case.This is the major motivation for extending the work on the security properties of Integrity and Authorization for workflow security.The Workflow Authorization Model(WAM) (Atluri&Huang1996,Atluri et al.1997)presents a conceptual,logical and execution model which con-centrates on the enforcement of authorizationflow in task dependency and transaction processing by using Petri Nets(PN).The workflow designer defines the static parameters of the authorization using an Au-thorization Template(AT)during the build-time of the workflow.When the task starts execution,the AT is used to derive the actual authorization.In a Multi-level Secure(MLS)workflow environment,tasks are assigned to different security levels.Further,WAM extends the PN model by proposing a Secure Petri Net(SPN)that is used to detect and prevent all the task dependencies that violate security.Though WAM discusses the synchronization of authorization flow with the workflow and specification of temporal constraints in a static approach,it is not sufficient to support workflow security.This is because workflows need a more dynamic approach to synchronize the flow of authorizations during the workflow execution. For example,the privileges will be granted/revoked to/from the agents according to the events generated during the task execution.WAM only concentrates on the authorization in a task’s state and primitives, not the authorization in resource accesses.Further, WAM does not discuss the order of operationflow within the same object in a task.In a workflow,we need to investigate theflow of authorizations in differ-ent aspects such as tasks,events and resources.Fur-ther,we also need to consider theflow of authoriza-tions from the aspect of agents,not only the inter-dependency among tasks in a workflow.In other words,WAM only supports a static approach for han-dling theflow of authorizations in the workflow and data layer.WAM only discusses the Authorization Base(AB)to store all the privileges granted during a workflow execution but it does not consider the con-cept of history from the aspects of agents and tasks. WAM grants all the authorizations to an agent once the task starts execution and it revokes all the autho-rizations from an agent once the task is completed, but it does not monitor the event(s)generated from the agent during the execution of task.WAM han-dles the security property of Authorization and MLS handles the security property of Integrity in the task dependencies,but they do not handle the security property of Availability.Based on the Workflow Authorization Model (WAM),a web-based WFMS called SecureFlow is proposed in(Huang&Atluri1999).SecureFlow uses a simple4GL language,such as SQL,to specify au-thorization constraints.Though SecureFlow supports the security constraints for role assignments,it is not sufficient for workflow security because workflow se-curity needs to support different security constraints from buildtime to run-time of a workflow.SecureFlow handles the security property of Authorization.but it does not handle the security properties of Integrity and Availability.Theflow of authorizations included the inter-tasks or intra-task scenario from the point of agent and the event generated from the point of task are also in-volved in the workflow security.A secure workflow model must be able to ensure the security properties of Integrity,Authorization and Availability.As a re-sult,our model provides a framework to control and monitor the security properties for a secure workflow model from the aspects of workflow(task),control (event)and data(document).Further,our model considers the history of an agent(i.e.,H A)and task (i.e.,H T)as an important path to identify potential security threat(s).3Secure Workflow ModelThe information processed in a workflow is highly val-ued and it is important to protect this information against security threats.The workflow modeler de-fines a security policy that typically reflects the secu-rity requirements for the workflow.A security policy is a set of rules and procedures regulating the use of information including its processing,storage,dis-tribution and presentation (Hung 2001).The term security policy is used at the organization level and the set of rules and procedures are used to address security requirements.The security requirements are types and levels of protection necessary for equip-ment,data,information,applications,and facilities to meet a security policy (Hung 2001).For exam-ple,a security requirement may be just as simple as “a person may read a document if the clearance of the person is greater than or equal to the classifi-cation of the document”.Referring to the WfMC (Hollingsworth 1995),a workflow is formally defined as the computerised facilitation or automation of a business process,in whole or part.Based on this def-inition,we define a secure workflow as follows.Definition 1:A secure workflow is a computer supported business process that is capable to against security threats and further satisfies the security re-quirements defined by the workflow modeler.Definition 2:A secure Workflow Manage-ment System (WFMS)is a workflow management system that can specify,manage and execute a secure workflow.Formally,a workflow (WF)is represented as a par-tially ordered set of tasks (T)that is coordinated by a set of events (E).The order of task execution is or-chestrated by matching the input and output event(s)of each task.An event can be either a data event or control event.Each task represents a piece of work that needs to be done by an agent (A).Further,each task is given a Temporal Access Control (TAC)spec-ification,which describes the possible legal sequences of document accesses during the task execution.An agent needs to get certain access privileges (PR)(e.g.,“read”,“write”and “read-write”)to a set of docu-ments (D)during the task execution.Let entities of a secure workflow,namely,sets of tasks (T),events (E),agents (A),Temporal Access Controls (TAC),documents (D)and privileges (PR),respectively,be:•T ={t 1,t 2,...,t m }is the set of m tasks.•E ={e 1,e 2,...,e t }is the set of t events.A special event e start (workflow )triggers the first task of a workflow and another special event e completed (workflow )is generated after the last task of a workflow.•A ={a 1,a 2,...,a n }is the set of n agents.•T AC ={tac 1,tac 2,...,tac m }is the set of m temporal access controls.•D ={d 1,d 2,...,d p }is the set of p documents.•P R ={pr 1,pr 2,...,pr q }is the set of q privileges.The relationships among these entities are the fol-lowing:•C :A −→T gives a set of tasks that the agent has the abilities to execute.To illustrate,C (a i )={t i 1,t i 2,...,t i k }is the set of k tasks that can be executed by the agent a i ,i.e.,C (a i )⊆T .•C −1:T −→A gives a set of agents that has the abilities to execute a task.To illustrate,C −1(t i )={a i 1,a i 2,...,a i k }is the set of k agents that can execute the task t i ,i.e.,C −1(t i )⊆A .•N :T −→A is a one-to-one mapping that gives an agent that is assigned to execute the task.To illustrate,N(t i )=a i is the agent that is assigned to execute the task t i ,i.e.,N (t i )∈A .•P :D −→P R gives a set of privileges that can be acquired for a document.To illustrate,P (d i )={pr i 1,pr i 2,...,pr i k }is the set of k privileges that can be acquired on the document d i ,i.e.,P (d i )⊆P R .•F :T −→T AC is a one-to-one mapping that gives,for each task,t j ,the corresponding TAC,tac t j ,i.e.,F (t j )∈T AC .•G :T AC −→D ×P R is a mapping that gives the set of document/privilege pairs specified in a TAC.To illustrate,G (tac i )={(d i 1,pr i 1),(d i 2,pr i 2),...,(d i k ,pr i k )}is the set of k docu-ment/privilege pairs specified in the tac i where ∀j =1,2,...,k pr i j ∈P(d i j ).Note that the composite function F ◦G :T −→D ×P R gives the set of document accesses that are needed during the execution of a task.Based on the above description for a workflow,every task is as-signed to an agent and the flow of tasks is orches-trated by events.Therefore,it is obvious that there may be many legitimate paths for a workflow.This means that some of the tasks may not be executed in a workflow if they are not on the path of execution flow.For every legitimate path,a set of authorizations is needed for executing tasks and accessing documents.Tasks and documents may contain a lot of sensitive information that may cause threats to a workflow.In this section,we present a secure workflow model using a multi-layered state machine.A state-machine model describes a system as an abstract mathemat-ical state machine with a set of transition functions.A multi-layered state machine describes a system in different layers where each layer is an abstract math-ematical state machine with a set of transition func-tions.The interaction between two mathematical state machines at different layers is triggered by an event.The multi-layered state machine is used to manage and monitor the flow of authorizations at dif-ferent layers for a secure workflow execution.The novel part of this model is separating the various as-pects of control in a workflow and portraying it as a multi-layered architecture for analyzing the flow of authorizations.There are three layers in a secure workflow:workflow ,control and data .The major motivations for using a multi-layered state machine are:•Different aspects of the flow of authorizations can be modeled in a single framework.The workflow layer is a model in which authorizations can be granted to agents only during the execution of the assigned task and will be revoked as soon as the task execution is finished.The control layer is a model in which relevant event(s)can be gen-erated only during the task execution.The data layer is a model in which document authoriza-tions can be granted and revoked from agents based on the occurrence of event(s)during the task execution.•A multi-layered state machine supports concur-rent states.These states trigger one or more lower-layer state machines that are executed in parallel in the context of the upper layered state machine.This is a practical scenario for a secure workflow model because there may be more than one task running concurrently and also an agent may generate a set of events during the task ex-ecution.This set of events may trigger a set of document access activities running concurrently.•From the point of view of authorization admin-istration,the security administrator can applydifferent security services to handle the secu-rity properties in different layers.For example, the security service Discretionary Access Control (DAC)can be applied to the Workflow Layer and Data Layer to handle the security property of au-thorization for assigning/revoking tasks and doc-uments to/from agents,respectively.•A multi-layered state machine can enable the analysis,simulation and validation of the WFMS under study before proceeding to implementa-tion.The state machine has the advantage of visually depicting theflow of authorizations and presenting all properties,relationships and re-strictions among states,such as concurrency, synchronization,controlflow dependency and temporal relationships.Once a system has been modeled as a net(Michelis1999),properties of the system may be represented by similar means, and correctness proofs may be built using the methods of net theory.In the multi-layered state machine,we support a dynamic approach for handling theflow of authoriza-tions in the workflow and data layer by monitoring the event(s)generated from the control layer in a multi-layered state machine.Our model can capture the event(s)generated from the agent during the execu-tion of a task,and it can grant and revoke the au-thorizations based on the occurrence of event(s).The advantage of this dynamic approach is to avoid an over-privileged agent at anytime during the execution of a task.Further,our workflow model can capture the sequence of actions of the agent to deduce or re-vise the task’s semantics.The task semantics include aspects derived from the coordination of tasks in the workflow,the agent to execute the task and the re-sources needed involved in the execution of the task. In particular,our model can support the concurrent execution of tasks with relevant data using the char-acteristics of a state machine(Booch et al.1999). The advantage of supporting such a concurrent model is to detect and prevent the security threats such as conflict of interest during a workflow execution.For example,a security threat may occur if an agent can access different documents from different tasks con-currently.In some cases,the agent has to release the document for another task to proceed.For example, an agent a1executes the task t1and another agent a2executes the task t2concurrently.The agent a1 needs to write the document d1and then the agent a2also needs to write the document d1.Since there is concurrency in the document access,the agent a1 needs to release the document d1with the privilege “write”before the agent a2can get the“write”ac-cess to the document d1.In the multi-layered state machine,we support the agent a1to release the doc-ument d1by an event during the execution of task t1. Then,the agent a2can be granted the access privilege “write”to the document d1during the execution of task t2.Furthermore,our model can show the feasi-bility of applying different security services to tackle the security properties in different layers.In specifying a secure workflow model,wefirst need to define the security-relevant state variables. Our state variables correspond to the entities and some additional variables are needed for the transi-tion functions.•LT=a set of positive integers Z+representing discrete time.•I T(t)=an unique identifier for a task t where t ∈T,i.e.,I T(t1)=I T(t2)if and only if t1=t2.•I E(e)=an unique identifier for an event e where e∈E,i.e.,I E(e1)=I E(e2)if and only if e1= e2.•I A(a)=an unique identifier for an agent a where a∈A,i.e.,I A(a1)=I A(a2)if and only if a1= a2.•I T AC(tac)=an unique identifier for a tempo-ral access control tac where tac∈TAC,i.e., I T AC(tac1)=I T AC(tac2)if and only if tac1= tac2.•I D(d)=an unique identifier for a document d where d∈D,i.e.,I D(d1)=I D(d2)if and only if d1=d2.•IE(t)=a subset of the sets of events(i.e.,a set of input event sets)where each element in IE(t) (i.e.,a set of events)can independently trigger the task t,i.e.,t∈T and IE(t)=∅.To illustrate, IE(t)={{e1,e2},{e1,e3}}means that either the set of events{e1,e2}or{e1,e3}can trigger the task t starts execution.•OE(t)=a subset of the sets of events(i.e.,a set of output event sets)where only one element in OE(t)(i.e.,a set of events)will be generated when the task t is completed,i.e.,t∈T and OE(t)=∅.To illustrate,OE(t)={{e1,e2},{e1, e3}}means that either the set of events{e1,e2} or{e1,e3}is generated once the task t is com-pleted successfully.•DT(t)=a set of dependent tasks of a task t. Thus,DT(t)={t1|∀t1where se∈IE(t),se1∈OE(t1)such that sese1=∅}where t,t1∈T and se,se1⊆E.Note that DT(t)=∅if the task t is thefirst task of a workflow.There ex-ists a combination of output events from the set of dependent tasks DT(t)that satisfy the input events of a task t if and only if,∀se∈IE(t),–∀t2∈DT(t){e|e∈sese1where se1∈OE(t2)}=se.For illustration,here is an example.The task t1 has two dependent tasks t21and t22.The output and input events of each task is shown as follows: IE(t1)={{e1,e2},{e1,e3}}DT(t1)={t21,t22}OE(t21)={{e1}}OE(t22)={{e2},{e3}}Thus,there may be two cases that can occur:–Case1:If the se={e1,e2},then{e1}{e2}=se where{e1}is generated from taskt21and{e2}is generated from task t22.–Case2:If the se={e1,e3},then{e1}{e3}=se where{e1}is generated from taskt21and{e3}is generated from task t22.•H A(a)=the history of actual authorizations (i.e.,a set of tuples)granted and revoked with the partial orders for an agent a where N(t)=a, t∈T and a∈A.The history stores four types of authorization tuples:–granted(t,pr,x)and revoked(t,pr,x) means the task t with privilege pr isgranted/revoked to/from an agent a at timex.–granted(d,pr,x)and revoked(d,pr,x) means the document d with privilege pr isgranted/revoked to/from an agent a at timex.where(d,pr)∈F◦G(t)and x∈S(t).The partial order is determined by the time speci-fied in the tuple.The workflow modeler can also grasp the order of document access for each task in order to build the relevant TAC.For illustra-tion,here is an example to demonstrate informa-tion gathering using the partial order:H A(a)= {granted(t1,execute,1),granted(d1,read,2), granted(d2,write,3),revoked(d1,read,4),re-voked(d2,write,5),revoked(t1,execute,6)}.From this history,we can deduce that the docu-ment d1with the privilege read is accessed before the document d2with the privilege write in the execution of task t1.•S(t)=the session(time interval)for task t’s ex-ecution where t∈T.It has three cases:–The task is started and completed S[]:If granted(t,“execute”,x)∈H A(a)and re-voked(t,“execute”,y)∈H A(a)and y>x,then it is denoted as S(t)=[x,y].The taskis not active and the session is over,i.e.,thesession is the period from time x until timey.In this case,we define that z∈S(t)ifand only if x≤z≤y.–The task is started and not completed S[): If granted(t,“execute”,x)∈H A(a)and re-voked(t,“execute”,y)/∈H A(a)and y>x,then it is denoted as S(t)=[x,−).The ses-sion is an open ended period from time x,i.e.,the task is still active and the session isnot yet over.In this case,we define that z∈S(t)if and only if x≤z.–The task is not started and not completed S∅:If granted(t,“execute”,x)/∈H A(a),then S(t)=∅.There is no session.In thiscase,we define that∀z∈LT and z/∈S(t).where“−”is null,N(t)=a,a∈A and x,y∈LT.Further,we define two functions Begin(S(t))and End(S(t))to assign the begin and end time for the session S(t).In case of S[](t),then Begin(S(t))∈LT and End(S(t))∈LT.In case of S[)(t), then Begin(S(t))∈LT and End(S(t))=“−”.In case of S∅(t),then there is no Begin(S(t))and End(S(t)).•H T(t)=the history of actual events(i.e.,a set of tuples)generated with the partial orders froma task t where t∈T.It stores the event tuple:generated(e,x)meaning that event e is generated at time x where e∈E and x∈S(t).A major objective of using histories H A and H T is to determine whether the workflow is secure or not, based on the state of the system.The state of the system at any one time is expressed as a set of values for all the state variables:{T,E,A,TAC,D,PR, I T,I E,I A,I T AC,I D,C,C−1,N,IE,OE,DT,P,F, G,H A,H T,S}.The definition of a secure state is a mathematical translation of the security requirements for a workflow into a set of invariants.An invariant is unchanged by specified mathematical operations or transformations.In a secure workflow model,there are three layers for a secure state:Workflow,Data and Control.Here we impose two security require-ments to ensure the security properties of integrity, authorization and availability in the workflow layer and we also impose one security requirement to en-sure the security properties of integrity and authoriza-tion in the data layer.The workflow modeler can im-pose other ad hoc security requirements in these three layers for different workflows.Here we only propose three fundamental security requirements for a generic workflow.3.1Workflow LayerA workflow consists of a set of tasks that is intercon-nected by events.These tasks are executed by a set of agents.In our model,a task is an atomic work-flow and each task is executed by exactly one agent N(t)=a where t∈T and a∈A.A secure workflow model needs to grant the agent the authorization(s) to execute a task(s)based on the occurrence of a cer-tain event(s).The workflow layer involves the security properties of tasks,events and agents.The security requirement to ensure the security property of availability in the workflow layer is:“For every task there must be at least one agent who is able to execute the task.”The definition of the secure state is a mathematical translation of the security require-ment into an invariant:Invariant1:The workflow can be executed if and only if,∀t∈T,•C−1(t)=∅.Proof:The proof consists of two parts,(i)showing Invariant1is necessary,and(ii)showing Invariant1 is sufficient.From the workflow definition,we know that every workflow is represented as a partially ordered set of tasks that is coordinated by a set of events.The or-der of task execution is orchestrated by matching the input and output event(s)of each task.Therefore,it is obvious that there may be many legitimate paths for a workflow.Let one of the legitimate paths of a workflow be[t1,t2,...t k].If there is a task t i where i =1...k that has no agent capable to execute it,i.e., C−1(t i)=∅,this means that the subsequent task(s) [t i+1,...,t k]cannot be executed because each one of them is relying on the events(s)generated from the prior tasks,i.e.,t i∈DT(t i+1)Thus,the workflow cannot be completed successfully.To show that Invariant1is sufficient we know that each task represents a piece of work that needs to be done by only one agent.Even though a task may have more than one agent capable to execute it,i.e., |C−1(t i)|≥1,only one of those agents will be assigned to execute the task,i.e.,N(t i)∈C−1(t i).Thus,every task of the workflow can be executed.A secure workflow model grants the privilege for an agent to execute the task if all its input events have been accessed and all its dependent tasks are completed.Further,it requires that all the autho-rizations for the agents that executed the dependent tasks must be revoked.The security requirement to ensure the security properties of integrity and authorization in the work-flow layer is:“An agent can only execute the assigned task if and only if the privilege“execute”is granted. The secure workflow has to revoke the privilege from an agent if the task has completed execution.”If the “execute”privilege is revoked for task t from agent a at time x,then it means that the set of output events have been generated during the execution of task t (i.e.,the events are generated before time x).If the “execute”privilege is granted for task t to agent a at time x,then it means that the set of dependent tasks have been revoked“execute”from the set of relevant agents(i.e.,who executed the dependent tasks)be-fore time x.The definition of the secure state is a mathematical translation of the security requirement into an invariant:。
多Agent战术意图识别的知识组织与问题求解_曾鹏
抽象类 T i , T j : o, Ti(o)∨ T j(o), i ≠j 或 o, T(o) T i(o)∨ T j(o), i≠j
定义 T ac 为战术原则描 述(Doctrine)集 , C 为 CO A 集 , B 为单 A gent 的行动事件集 , HSA 为单 Ag ent 计划假 设 , H MA 为 多 A gent 计划假设 , HTA 为战术计划假设 , 于是有 :
Definitio n2 :PL =T ac ∪ C ∪ B iff B ∪ HSA O B ∪ C ∪ H MA O B ∪ C ∪ T ac ∪ H TA O B ∪ C ∪ T ac ∪ H / False 下面分别从单 A g ent 、多 A ge nt 以 及战 术 A g ent 等 不同 层次对 P L 中计划元素的建模与 组织展开详细分析 。 4.1 单 Agent 行动事件体系 从任务分解的角度而 言 , 战 场分布 的每个 A gent 都 担负 着一定的任务 , 任务 决定了 A gent 的 行为 , 行 为则反 映了 Ag ent 的意图 。 要识别 Ag ent 的行为意图就必须要建立起关于 该 A gent 的计划库 , 才能有根据 地建立 起相应 计划假 设来解 释 A gent 的意图 。 对 于不同 的 Ag ent, 由 于遂 行任 务的 差别 以及作战的方法模式各不相同 , 必须要针对性 的建立相应 Ag ent 的计划库 。 而战场中 分布 A g ent 的规 模可能是 庞大 的 , 实现每个 Ag ent 计划库的穷尽组织与建设将变得困难而不可 行 , 因此需要对大量的 Ag ent 实施聚类和分类 。 设战场实体空间 由分 布的 A gent 实 体 o 组 成 :A ={o1 , o2 , o, … , ok , … , o1}, 0<k <l 。 对分布的 A gent 进行分类 , 得到实体类型 T i : Classi f ier(A)={T i 0<i<n}
A Comprehensive Survey of Multiagent Reinforcement Learning
IEEE TRANSACTIONS ON SYSTEMS, MAN, AND CYBERNETICS—PART C: APPLICATIONS AND REVIEWS, VOL. 38, NO. 2, MARCH 2008
A Comprehensive Survey of Multiagent ReinfoN
A
MULTIAGENT system [1] can be defined as a group of autonomous, interacting entities sharing a common environment, which they perceive with sensors and upon which they act with actuators [2]. Multiagent systems are finding applications in a wide variety of domains including robotic teams, distributed control, resource management, collaborative decision support systems, data mining, etc. [3], [4]. They may arise as the most natural way of looking at the system, or may provide an alternative perspective on systems that are originally regarded as centralized. For instance, in robotic teams, the control authority is naturally distributed among the robots [4]. In resource management, while resources can be managed by a central authority, identifying each resource with an agent may provide a helpful, distributed perspective on the system [5].
国际货运代理常用英语
国际货运代理相关英语表达(上)Unit 11. freight forwarder 货运代理人2. letter of credit 信用证3。
the mode of transport 运输模式4. freight cost 运费5。
the Forwarder’s Certificate of Receipt 货运代理人收货证明书6. the Forwarder’s Certificate of Transport 货运代理人运输证明书7。
container cargo 集装箱货物8。
foreign exchange trading 外汇交易9. exporting strategy 出口战略10。
cargo transportation 货物运输11。
customs clearance 清关12。
commission agent 委托代理人13. country of transshipment 转运国14。
movements of goods 货物运输15。
shipping space 舱位16。
a bill of lading 提单17. transit country 转口国18。
trade terms 贸易条款19. general cargo 杂货20. special cargoes 特殊货物21. a comprehensive package of service 全面的一揽子服务22. trade contract 贸易合同23。
relevant documents 相关单据24。
take delivery of the goods 提货Unit 2。
1。
FOB (FREE ON BOARD)船上交货2. CIP (COST INSURANCE AND FREIGHT) 运费,保费付至3. CFR (COST AND FREIGHT )成本加运费4. FCA (FREE CARRIER)货交承运人5. CPT (CARRIAGE PAID TO)运费付至6. CIF (COST INSURANCE AND FREIGHT) 成本,保费加运费7. insurance premium 保险费8. multi—modal transport 多式联运9. inland waterway transport 内河运输10. amendment 修改11. carrier 承运人12. ICC- International Chamber of Commerce 国际商会13。
JD Edwards EnterpriseOne 阿根廷地区本地化说明书
JD Edwards EnterpriseOneArgentina LocalizationsJD Edwards EnterpriseOne is an ERP solution composed of three software layers that together support companies' global business needs. The underlying tools layer provides a technical foundation to configure different global standards such as decimal and date formats, address formats, and language preference by user. The base application software enables users to configure global functionalities in areas such as payment and receipt processing, tax processing, depreciation methods, hyperinflationary accounting, fiscal reports, and statutory chart of accounts. The third layer of software, localizations, addresses country-specific statutory and common business practice requirements.K E Y F E A T U R E S•Fixed Assets Processing •Document Numbering•Financial Reporting•Invoice Processing•Credit Invoice Processing•Receipt Processing •Drafts—Receivables•Withholding Tax Processing •Payment Processing•Tax Processing and Reporting •Inventory Management•Sales Order ProcessingK E Y B E N E F I T S•Addresses mandatory country-specific legal and business requirements•Is included with the base software and fully supported by Oracle•Enables users to operate in their respective local languages •Supports global expansion without the need for additional software •Provides long-term value for a company's investment through frequent updates and migration path The Issue: Why Do Companies Care About Localizations?Many organizations are expanding operations outside their home country. They must incorporate country-specific business practices into their companies' daily business transactions and operations. It is mandatory to comply with country-specific legal requirements. Requirements can exist at the city, state, and federal level depending on the country. Nonadherence to these rules and regulations may lead to severe consequences for a company.The Solution: JD Edwards EnterpriseOne Supporting Current and Future Global Business NeedsThe JD Edwards EnterpriseOne localizations are part of the base software and fully supported by Oracle. The localizations adhere to the Oracle software standards and delivery methods and are covered by the Oracle support policies.Legislative updates for localizations are release-independent and delivered on the Oracle Update Center. These updates enable companies to comply with changing laws and meet the legal effective dates specified by governments.The JD Edwards EnterpriseOne localizations are fully integrated with the JD Edwards EnterpriseOne base software. Such integration ensures that that all Oracle-provided localizations coexist. Companies can operate in multiple countries in a single instance.The JD Edwards EnterpriseOne software is translated into 21 languages, so users can operate in their respective local languages. Oracle-provided localizations enable companies to use the JD Edwards EnterpriseOne software and comply with country-specific laws and common business practices.•Reduces end user training and total cost of ownership with the same standards, look and feel •Supports single instance of the JD Edwards EnterpriseOne solution, resulting in a more easily managed software environmen t JD Edwards EnterpriseOne is a long-term investment. For companies expanding their business operations around the globe, no additional software is required for operating in most countries. Timely legislative updates are continuously provided. When companies are ready to migrate to the most current release, upgrade paths are provided.Feature Highlights for ArgentinaThe JD Edwards EnterpriseOne localizations for Argentina are included with the software and supported for customers who have license version 9.0 or later.The following table provides a sample of the functionalities included with the JD Edwards EnterpriseOne localizations for Argentina.Feature Highlights FunctionalitiesFixed Assets Processing ∙Fixed Asset Reporting—Annex ADocument Numbering ∙Legal Document NumberingFinancial Reporting ∙General Ledger ReportsInvoice Processing ∙Invoice Print Format∙Legal Resolution 738—Perception Report∙Invoice Reprint∙Interest Invoices∙Legal Invoices∙RG1702 Barcode∙Invoice Numbering RG 4290∙SIRE VAT Perception RG4523Credit Invoice Processing ∙Credit Invoice Law—Payables, Receivables, SalesOrder∙Credit Notes Generation for DiscountsReceipt Processing ∙Receipt Entry∙Batch Receipt Entry∙Receipt PrinterDrafts—Receivables ∙Draft Register∙Collection Process∙Generation of Delinquency Fees∙Massive Draft Entry∙Draft Entry∙Payment in Kind∙Summarized Customer Ledger∙Draft Inquiry∙Generation of Credit or Debit NoteWithholding Tax Processing ∙Profit Withholding Integrity Report∙Withholding Tax Calculations for Automatic andManual Payment∙Legal Resolution 726—Update WithholdingPercentage∙Print and Reprint Withholding Tax Certificates∙Legal Resolution 738—Numbering WithholdingCertificates∙Perceptions Reporting RG 715∙VAT Withholding RG 3732∙Profit Withholding RG 4245∙SIRE VAT Withholding RG4523Payment Processing ∙Voucher Authorization∙Legal Number Validation∙Import Voucher Processing∙Postdated Checks∙Check Format∙Payment Order∙Payments in KindTax Processing ∙Additional Tax Information∙Additional Tax Information for EDI∙Calculate Country-Specific Taxes∙Tax Reclassification∙UTES Profit Management∙Tax Controls for RG100 (A/P, A/R, SOP)Tax Reporting ∙Country-Specific Tax ReportsInventory Management ∙Inflation Inventory Adjustment∙Inflation Adjustment∙Lot Processing for Imported ItemsSales Order Processing ∙Credit Order or Invoice Relationship∙ Legal Resolution 738—Perception Report∙ Print and Reprint Legal Shipment Notes or Invoices∙Invoice or Shipment Note—Provisional andPrenumbered∙Void Invoices or Shipment Notes∙RG1702 BarcodeTag File Maintenance ∙Purge Closed A/P, A/R, and SOP RecordsC O N T A C T U SFor more information about JD Edwards EnterpriseOne, visit or call +1.800.ORACLE1 tospeak to an Oracle representative.C O N N E C T W I T H U S/oracle/oracle/oracleCopyright © 2020, Oracle and/or its affiliates. All rights reserved. This document is provided for information purposes only, and thecontents hereof are subject to change without notice. This document is not warranted to be error-free, nor subject to any otherwarranties or conditions, whether expressed orally or implied in law, including implied warranties and conditions of merchantability orfitness for a particular purpose. We specifically disclaim any liability with respect to this document, and no contractual obligations areformed either directly or indirectly by this document. This document may not be reproduced or transmitted in any form or by any means,electronic or mechanical, for any purpose, without our prior written permission.Oracle and Java are registered trademarks of Oracle and/or its affiliates. Other names may be trademarks of their respective owners.Intel and Intel Xeon are trademarks or registered trademarks of Intel Corporation. All SPARC trademarks are used under license andare trademarks or registered trademarks of SPARC International, Inc. AMD, Opteron, the AMD logo, and the AMD Opteron logo aretrademarks or registered trademarks of Advanced Micro Devices. UNIX is a registered trademark of The Open Group. 0117。
Toothagent a Multi-Agent System for Virtual Communities Support. , Informatics. Telecomunic
ToothAgent:A Multi-Agent System for VirtualCommunities SupportVolha Bryl∗Department of Information and Communication TechnologyUniversity of Trento,Italyvolha.bryl@unitn.itPaolo GiorginiDepartment of Information andCommunication TechnologyUniversity of Trento,Italypaolo.giorgini@dit.unitn.itStefano FanteArsLogica LabMezzolombardo(TN),Italystefano.fante@arslogica.itABSTRACTPeople tend to form social networks within geographical ar-eas.This can be explained by the fact that generally ge-ographical localities correspond to common interests(e.g. students located in a university could be interested to buy or sell textbooks adopted for a specific course,to share notes, or just to meet together to play basketball).Cellular phones and more in general mobile devices are currently widely used and represent a big opportunity to support social commu-nities.In this paper,we present a general architecture for multi-agent systems accessible via mobile devices(cellular phones and PDAs),where Bluetooth technology has been adopted to reflect users locality.We illustrate ToothAgent, an implemented prototype of the proposed architecture,and discuss the opportunities offered by the system. Categories and Subject DescriptorsI.2.11[Artificial Intelligence]:Distributed Artificial In-telligence—multiagent systems;H.4[Information Systems Applications]:MiscellaneousKeywordsMulti-agent systems,mobile devices,virtual communities, Bluetooth1.INTRODUCTIONBeing widespread and ubiquitous,cellular phones are re-cently used not only as means of traditional communication. They are also supposed to satisfy the information needs of their users,e.g.to support information search andfiltering or electronic data exchange[13,1,15,10].Users equipped with mobile devices,such as cellular phones or PDAs,can form so called mobile virtual communities[14],which make possible the interaction and the information exchange be-tween their geographically distributed members.Such com-∗Ph.D.Student munities are inherently open,new users can join and existing ones can leave anytime.A number of multi-agent applications to mobile device en-vironments have been proposed in literature.[10]presents a multi-agent system named KORE where a personal elec-tronic museum guide provides to visitors(with Java-enabled mobile devices)information about artistic objects they are currently looking rmation isfiltered and adapted to the user profile.Bluetooth technology[2]is used to detect the user position.Bluetooth is a cheap and a widely used wireless communication technology able to connect Bluetooth-enabled devices located in a range of100meters.[15]pro-poses MobiAgent,an agent-based framework that allows users to access various types of services(from web search to remote applications control)directly from their cellular phones or PDAs.Once the user sends a request for a spe-cific service,an agent starts to work on her behalf on a centralized server.The user can disconnect from the net-work and the agent will continue to work for her.When the request has been processed,the user is informed via Short Message Service and she can decide to reconnect the net-work and download the results.MIA information system[1] is another example that provides personalized and localized information to users via mobile devices.What is still missing in these systems is the interaction be-tween the members of the virtual community.Just few pro-posals in literature introduce domain-specific environments where interacting agents act on the behalf of their users.For instance,[11]describes a context-aware multi-agent system for agenda management where scheduling agents can execute on PCs or PDAs and assist their users in building the meet-ing agenda by negotiating with the other agents.ADOMO [12]is an agent-based system where agents running on mo-bile devices sell the space on the device screen to commercial agents for their advertisements.Agents on behalf of their users negotiate and establish contracts with neighbors via Bluetooth.There exist a number of multi-agent platforms that can be used on mobile devices.Taking into account the limited computational and memory resources,it could be very prob-lematic to run a multi-agent platform on such mobile devices as cellular phones.A possible solution is either to avoid run-ning multi-agent platform on mobile devices,as for example in[12],or to use portal multi-agent platforms[13]whereagents are executed not on the device itself but on the ex-ternal host.In this paper we present a general architecture based on this last option.The architecture proposes independent servers where multi-agent platforms can be installed and where agents can act on behalf of their users.Each server proposes one or more specific services related to the geo-graphical area in which it is located (e.g.a server inside the university could offer the service of selling and buying textbooks,renting an apartment,etc.),and users can con-tact their personal agents using their Bluetooth-enabled mo-bile phones or PDAs.The main advantage of the proposed framework with respect to the above described architectures is that the system is domain independent (it does not depend on the specific services offered by the servers)and indepen-dent from the multi-agent technology adopted (we can use different technologies on each server).The paper is organized as follows.Section 2describes a mo-tivating example for our system.The general architecture of the system is introduced in Section 3,while Section 4pro-vides some architectural details and describes ToothAgent,the implemented prototype.Section 5concludes the paper and provides some future work directions.2.MOTIV ATING EXAMPLELet’s consider three places in a town:university,railway station and bar.People spending some time in one of these places may have some common interests and needs.For instance,students at the university might want to buy or to sell secondhand textbooks,find a roommate or form study groups.People at the bar could be interested in the latest sport news (especially in Italian bars),or they could just be looking for someone to chat with.Passengers waiting at the railway station may want to know some details about the trip they are going to have —what cities their train goes through,or what the weather is like at the destination point.They may want also to find someone with common interests to chat with during the trip.Let’s suppose also that people cannot or do not want to spend their time on examining announcements on the bul-letin boards,questioning people around them,or searching for the information office.They would prefer to ask their mobile phones and wait for the list of available proposals.To support interests and needs of such groups of co-localized users,a server is placed at each of the three meeting points.Servers can provide a certain number of services to people equipped with mobile phones or PDAs (hereinafter referred as users).A user can have access to the services when she is close enough (depending on her Bluetooth device)to one of the three servers —at the bar,in the waiting room of the station,or at the main hall of the university.Let’s suppose that among the available services we have the following ones.At the university users can buy/sell their secondhand books and search for roommates.At the bar,users can access a sport news service or search for ”inter-esting”people.Finally,at the railway station,users can receive information about their trips (including touristic in-formation).Figure 1:Users,servers,and virtual communities of personal agents.User interaction is often essential for the satisfaction of their needs.To sell a secondhand textbook,one should find a buyer and agree on the price.To find someone in the bar to chat with,one should look for the person with similar interests or preferences.Each server recreates the group of co-localized human users in a virtual community of personal agents (Figure 1)able to interact with one ers formulate their requests and forward them to their personal agents.Personal agents interact with the other available agents (the interaction might include negotiation as in the case of sell-ing or buying books),and produce results that will be sent back to the users.The main idea is to have a distributed system composed of a number of open virtual communities that evolve and act autonomously on the behalf of human communities.3.SYSTEM ARCHITECTUREIn this section we describe the general architecture of the system.We start from the requirements and then we illus-trate the various sub-components and their interaction.3.1System RequirementsWe can summarize the requirements of the whole system in the following objectives.•The system should allow the user to express her in-terests and choose the services she wants to access.It means that the user should be able to search for avail-able servers and services by location,category,key-words,etc.The user should be provided with an in-terface to select services she is interested in and to customize them,i.e.to specify parameters of the re-quests to these services (e.g.book title and price for ”buy/sell books”service).The system should allow to view and edit customized requests,and transfer the list of requests to a mobile device.•The system should provide access to the requested services when the mobile device and the appropriate server are co-localized (i.e.the Bluetooth connection is feasible).This means the system should be able to sup-port the search for servers (and corresponding services)in the neighborhood of the mobile device,and the veri-fication of the mobile device by the server.Then user’s requests should be transferred to the server,where it should be possible tofind correspondence between the user and her personal agent.The system should also support interaction among the personal agents,store the results and let users access these results from their mobile devices.•The system should allow the user to retrieve pending results.Results should be accessible both in case the user is still in the Bluetooth range of the server and when she is out of the range.In the second case the system should allow the user to access pending results from her mobile device by connecting to any server of the system,or from her PC via a dedicated interface.To do this,the system should support interaction be-tween different servers and between the server and the PC.The system should keep track of all servers visited by the mobile devices and transfer these information to the PC or to the connected server.3.2System ComponentsThe architecture of the system includes four main types of components:mobile device,PC,server and services data-base.The PC component provides an interface for the user reg-istration,to get and to choose available services,and to build requests for the chosen services.Also the pending re-sults can be retrieved via PC.The mobile device is used to send the user’s requests to the servers and to get back the results.Each server within the system provides a list of predefined services.The server runs a multi-agent platform with personal agents representing single users,a database where results are archived,and an interface responsible for establishing connections with mobile devices and PCs,and for redirecting the users’requests to the corresponding per-sonal agents.The central services database,accessible via web,contains information about all the servers and their properties,such as name,location,etc.The database also provides a description of available services on each server, and stores the information about users registered to the sys-tem.Figure2illustrates the general architecture of the system and the interaction among its components.Connection be-tween the mobile device and the PC,and between the mobile device and the server is established via Bluetooth wireless communication technology.3.3Getting Access to the ServicesIn the following we describe how the process of getting access to the services is organized(Figure3).The software running on the PC allows the user to search and discover the servers and the services registered to the services database(steps1–3).The user selects one or more services and provides information(i.e.requests)related to the use of such services(step4).For example,using the ser-vice”Buy/sell secondhand books”,the user could request to ”Sell the copy of Thinking in Java by Bruce Eckel,printed in1995,for the price not less than20euros”.All theuser’sFigure2:Interaction of systemcomponents.Figure3:Getting access to services. requests are stored in the configurationfile,which is down-loaded onto the mobile device via Bluetooth(step5). When the user with her mobile device approaches one of the servers,the software on the device establishes a connection with the server(step6)and sends requests related to the available services(step7).The requests are built on the base of the configurationfile of the mobile device.In other words,the mobile device checks in the configurationfile if the user is interested in the services provided by the server and then builds and sends the requests to the server.The requests are processed on the server,and the results are sent back to the user(steps8–12)The mobile device stores the server address to keep track of the contacted servers. It stores the address even if there are no relevant services on the server.This allows the user to check later the list of all visited servers and associated services,and decide to update her preferences by including new servers/services in the configurationfile.3.4Retrieving Pending ResultsWe describe now how the process of retrieving the pending results is organized(Figure4).The user has basically two options to get back the results of her requests.Thefirst one is to receive them directly on her mobile device.However,this is not always possible.The user could leave the Bluetooth area or the mobile deviceFigure4:Retrieving pending results from mobile device(A)and from PC(B).may not have enough memory or computational power to manage the answers(e.g.in the case the answers are a number of bigfiles).Thus the second option is to get back the results later when the connection with the server they were requested from is closed.Pending results can be retrieved both from the mobile device (steps A.x)and from the PC(steps B.x).In thefirst case the mobile device has to be configured to get the pending results and has to be in the Bluetooth range of some server. For example,if a student is going to spend a whole hour in the main hall of the university waiting for the next lecture, namely she will have enough time to download the results of her requests sent in the morning to the railway station server(where she bought her train ticket before going to the university).She switches on the option”get pending results”on her mobile phone(step A1),and waits for results. The mobile device sends to the university server the list of addresses of the servers the user has visited(step A2).The server establishes a connection with each server in the list, and sends the information that identifies the mobile device (e.g.its Bluetooth address)as a request for the pending results(step A3).The obtained information is sent back to the mobile device(steps A5–A6).In the second case the user receives pending results through the PC.The student goes back home and runs the PC soft-ware that collects all the pending results obtained from the visited servers(steps B3–B5),after the list of the visited servers and their addresses is transferred from the mobile device to the PC(step B1).3.5Agent PlatformEach server runs a multi-agent platform,where agents corre-spond to mobile devices and receive and process requests ob-tained from the users.There is a one-to-one correspondence between agents and mobile devices(users).An agent is iden-tified by a unique Bluetooth address of the corresponding mobile device.The same device can have many personal agents within different platforms on differentservers.Figure5:General architecture of SICS. When the server receives the request from the mobile device, it checks if the personal agent of this device exists within the platform.If not,a new personal agent is created.Each per-sonal agent communicates and interacts with other agents in order tofind”partners”which will satisfy its request. Interaction protocols mechanisms are domain(services)de-pendent.Multi-agent platforms on the server are based on the Implicit Culture[9]framework.In short,Implicit Culture allows new members of a community to behave in accordance with the culture of the community.For example,a new student may not know which textbooks can be helpful for the Program-ming Languages course and starts to search for Textbook on Programming Languages.The idea of the Implicit Culture framework is that the system suggests the student the items that are usually used by the other members of the commu-nity.So for example,the system could suggest the student to search for the book Thinking in Java.Multi-agent systems with the Implicit Culture support are used for example for searching the web.See[8]for the de-scription of Implicit,an agent-based recommendation sys-tem for the web search,which improves the search for in-formation for a community of users with similar interests. When a user submits a query,Implicit looks for the relevant information,exploiting observations of the behavior of other users when they have issued similar queries.To follow the Implicit Culture concept the agent on the plat-form should contain System for Implicit Culture Support (SICS)[9].SICS consists of three basic components(their interaction is illustrated in Figure5):•Observer,which stores in a database the information about user actions(observations).•Inductive module,which analyzes the obtained obser-vations and induces behavioral patterns of the com-munity using Data Mining techniques.•Composer,which produces suggestions on the base of the information from the Observer and Inductive mod-ule.More details about the Implicit Culture framework are avail-able at[3].Figure 6:Request input form.4.IMPLEMENTATION ISSUESIn this section we present the details of ToothAgent,the im-plemented prototype of the proposed architecture.Basically,the system is a first implementation of the architecture pre-sented in Section 3and focuses on a number of servers spread around the university campus (faculties,libraries,and de-partments).Each server offers only the service for selling and buying books.We are currently working on a number of other services including ones available on servers located outside the university campus (e.g.train station,museums and places close to touristic attractions).We tested the system using Nokia 6260cellular phones and PC/Server equipped with Tecom Bluetooth adapter.Blue-tooth communication has been implemented using Blue Cove [4]which is an open source implementation of the JSR-82Bluetooth API for Java.4.1Online Registration and Service SelectionTo start working with the system,the user has to register.To do this she should fill the online registration form where she needs to put her personal information such as name,birth date,e-mail,Bluetooth address and phone number of her mobile device,and password.The registration,basi-cally,allows the system to identify the user and the mobile device she is going to use.Password is used to access the information about servers and related services,and to up-load/update the user information (e.g.the user can decide to use different mobile device or just to change her data such as telephone number or e-mail address).Also the password is needed to access servers and their services via mobile de-vice (for this purpose user has to input the password while configuring the application on her mobile device).All the information about the user is stored in the services database.Registered users obtain the rights to download the software for PC and mobile device components (which are two jar files),and the XML file containing information about all available servers with corresponding services.After the registration (or login),the user can start select-ing services to ing the Java GUI interface shown in Figure 6,she can explore all the available services using filtering criteria such as server location (e.g.we canhaveFigure 7:Configurationfile.Figure 8:ToothAgent application running on the mobile phone.servers located in different cities or in different places in the same city),type or category of the service (e.g.buy/sell books,exchange course notes,or meet people),and key-words (e.g.books,course,etc.).The list of the selected services is managed by the PC component that allows the user to customize these services with the specific requests (e.g.title of the book to buy or to sell,the desired price,minimal or maximal price).The list of customized services (with related servers ad-dresses)is stored in an XML configuration file,which is up-loaded via Bluetooth in the mobile device.Figure 7shows an example for the ”sell/buy books”service.Note that the file format does not depend on what services it describes,i.e.it is domain independent.4.2Accessing the ServicesTo access the services,the user needs to run the Bluetooth application on her mobile device (Figure 8).The applica-tion is written in Java and uses JSR-82[5],which is Blue-tooth API for Java.The application starts a continuous search for Bluetooth-enabled devices in the neighborhood,and whenever it finds a server with the services specified in the configuration file,the mobile device sends the user re-quests to the server.Figure 9shows the protocol we use for the interaction among the different components.Figure 9:Getting access to services.A specific communication module on the server is responsi-ble for managing the interaction with the mobile device.It receives the Bluetooth address and the encrypted password from the mobile device (steps 1and 3)and checks whether in the platform running on the server a personal agent assigned to that mobile device already exists (step 4),the Bluetooth address is used to map the mobile device with the personal agent.If there is no personal agent for the user,the com-munication module connects to the central services database and verify whether the user is registered to the system (steps 5–6)by matching the Bluetooth address of the device and the password.Only in case of a positive answer,it creates a new agent and assigns it to the mobile device user (step 8).Then,the mobile device sends the configuration file to the communication module (step 9),which forwards all the user requests to the personal agent (step 10).Now,the personal agent starts interacting with other agents on the platform trying to satisfy all the user requests (step 12).In our example a personal agent receives one or more requests for buying and/or selling books (with specified ti-tle,desired price,maximum and minimum prices,etc.).If the agent reaches an agreement with another agent about their users requests it stores the results locally in the server database (step 13).Later the results could be sent back to the user (steps 14–18)or left on the server,depending on the retrieval modality that the user has defined in the configuration file.4.3Results RetrievalWhenever a new connection between a server and a mobile device is established,the communication module sends to the mobile device the IP-address of the server (step 2on Figure 9).The mobile device stores the IP addresses of all the visited servers in an XML list,that is used later to retrieve all pending results.The format of the results pro-duced by the personal agent is shown in Figure 10.It may contain the request identifier,contacts (e.g.phone number)of the user interested to buy or sell the book,the actual agreed price,etc.As discussed in Section 3,the user has three different modal-ities to retrieve results:get the results immediately,getFigure 10:List of responses.pending results using the mobile device,and get pending results using the PC.Each of these modalities has to be de-fined in advance by the user and can be changed at runtime by means of the mobile device application.Choosing the first option,the user can receive the results im-mediately in her mobile device.Of course,she can receive the results if and only if she is still at a Bluetooth distance from the server.The communication module checks the availability of the mobile device and sends to it the results stored in the internal server database by the corresponding personal agent (see Figure 9,steps 14–18).Figure 11shows the interaction protocol of retrieving pend-ing results via mobile device.Consider for example a sit-uation in which a user is near to the server of the central library.After the connection has been established,the mo-bile device sends the list of IP-addresses of all previously visited servers (e.g.faculty servers,departments servers,etc.)to the library server (step 2).The communication module of the server sends then the Bluetooth address of the mobile device to all listed servers (step 3).In turn,the communication module of each server extracts from the in-ternal database all the stored results related to that user and sends them back to the requester server (steps 4–7).All the results are collected by the communication module and finally sent to the mobile device (steps 8–10).If the mobile device is no longer connected to the server (e.g.the user has left the library),the retrieval process will fail and the results will be cancelled (they are still available on the original servers).Figure 12shows the interaction protocol of retrieving pend-ing results via PC.A user connects her mobile device to the PC via Bluetooth and sends the list of all visited servers to the PC component (step 2).Now,the user can decide either to retrieve the results from all the servers or just toFigure11:Pending results from the mobile device.Figure12:Pending results from PC.select some of them.An interface on the PC allows the user to connect to the servers and then to view or download the pending results(steps3–7).4.4Agents InteractionAs we said,in thisfirst prototype we implemented just one kind of service,namely the”buy/sell books”service. The multi-agent system has been implemented in JADE (Java Agent DEvelopment framework)[6],FIPA-compliant [7]framework for multi-agent systems development.The agent interaction includes two phases:elaboration of user request and agent negotiation.During thefirst phase the request of buying/selling a book is elaborated and detailed.For example,the request of”Buy a textbook on Java for the price from10to20euros”is incomplete as the exact title is not specified.The personal agent makes the request more clear exploiting the informa-tion about what textbooks on Java other users were recently interested in and what they havefinally bought,at what prices,etc.Another example of request that needs to be elaborated could be”Buy Thinking in Java for the price less than10euros”.It is unlikely that this request will be satisfied as all copies of Thinking in Java currently available, or sold so far,cost at least20euros.The user has clearly underestimated the price.In this case we want the personal agent to extend the price range when starting to search for a copy of the book.Figure13presents the interaction protocol used by agents during the request elaboration phase.On each platform there is a dedicated agent,called Expert Agent(EA),which contains the System for Implicit Culture Support(SICS). After a personal agent receives its user’s request(step1), it sends it to the Expert Agent(step2).On the EAsideFigure13:User request elaboration. Observer component of the SICS extracts data from the re-quest and stores it in the database of observed user behav-iors(step3).Composer component estimates the real price for the requested book and/or suggests the title of the book if the input was incomplete(step4).For the elaboration process Composer uses the information about the past user actions,obtained from Observer and analyzed by Inductive module.At the end the user’s personal agent gets back the elaborated request(step5),which it will process during the second phase.As it was explained in Section3.5,SICS needs to gather information about user behavior.In the described proto-type to observe the user behavior Expert Agent extracts data from the requests it gets from personal agents.Two other additional sources of observations could be added.The first one is the database where results of agent negotiations are stored.Each time two personal agents agree on buy-ing/selling a book and send their proposals to the database, Expert Agents extracts necessary information(e.g.book ti-tle and the price)from the proposals and stores it in its inter-nal database.The second source is the direct user feedback. When the user views the list of proposals on her mobile de-vice,she can choose to make a phone call or to send an SMS to the other user whose contacts are in the proposal.When the proposals are viewed on the PC,the user can choose to write an e-mail to her potential partner.For the purpose of feedback the system records the information about these phone calls/SMSs/e-mails assuming that if the other user of the proposal(the potential partner)was contacted then the feedback is positive,otherwise negative.The feedback information is sent to the Expert Agent as soon as the user establishes connection with the corresponding server via her mobile device or the PC.On the second phase—agent negotiation—the interaction mechanism is very simple.Figure14presents the imple-mented agent interaction”from the point of view”of the agent which is buying a book.First,the buyer’s personal agent broadcasts the request of looking for a specific book (step1),information about title,desired price,etc.is speci-fied in the message.If in the platform there is another agent that is selling the requested book,it responds to the buyer with the price it wants for the book(step2).If the price is greater than the maximum price specified by the buyer,the interaction continues with the request for discount from the buyer agent(step3).The seller responds either with the discounted price or with the initially proposed price(step4) in case it does not want to give the discount.If this price is。
A Proposed Architecture for Distributed Multi-Agent Intelligent System (DMAIS)
A Proposed Architecture for Distributed Multi-Agent Intelligent System (DMAIS)Ali I. El-Desouky Computers and Systems Department, Faculty of Engineering, Mansoura University, Egypt AbstractThis paper proposes Architecture (Reference model) for Distributed Multi-Agent Intelligent Systems (DMAIS) which provides a new methodology to improve the development of agent systems, considering three main mechanisms in dealing with agents: Negotiation, Cooperation and Decision Support. In order to perform an effective architecture we intend to develop in the ACL (Agent Communication Language)Hesham A. Ali Computers and Systems Department, Faculty of Engineering, Mansoura University, Egypt H_arafat_ali@.egSally M. El-Ghamrawy Computers and Systems Department, Faculty of Engineering, Mansoura University, Egypt Sally@.egother, was developed to serve as an abstraction for developing DPS systems. See below for further details. A Multi-Agent system (MAS) is a system composed of several agents, capable of mutual interaction. The agents are considered to be autonomous entities such as software programs or robots. Their interactions can be either cooperative or selfish. That is, the agents can share a common goal or they can pursue their own interests. The main objective of this paper is to propose a new architecture design for a Distributed Multi-Agent Intelligent Systems (DMAIS); it is a system in which several interacting, intelligent agents pursue some set of goals or tasks that are beyond their individual capabilities This paper is organized as follows: Section 2 reviews the major concepts of agents; Research areas in distributed intelligent systems are discussed in section 3; section 4 demonstrates the new architecture for the DMAIS showing the considered techniques in the architecture and the communication language for agents in the architecture; section 5 discusses the challenges in designing the new architecture; section 6 concludes the paper and proposes the topics for future research.Keywords: Multi-Agents, Intelligent Systems, Negotiation, Distributed systems, Decision support 1. IntroductionArtificial Intelligence (AI) and agent systems have been closely related over the last thirty years. Intelligent agents and multi-agent systems represent the next big step in the development of next generation software systems, especially when considering large scale distributed applications [1]. There is a common understanding of the term agent [1],[2]. From the point of view of behaviorist, intelligent systems are those systems that can simulate human beings’ work that requires intelligence including logic inferring, problem solving, deduction and induction. A distributed system is composed many computers interconnected with networks which cooperate and coordinate to accomplish one common task [3]. Distributed intelligent systems are intelligent systems built on a distributed computer system. They are based on the use of cooperative agents and organized in hardware or software components. In the system, each agent independently handles a small set of specialized tasks and cooperates to achieve the system-level goals and a high degree of flexibility [4]. There are three main areas for the Distributed intelligent systems: Parallel Problem Solving (PPS) which mainly deals with how classic AI concepts can be modified, so that multiprocessor systems and clusters of computers can be used to speed up calculation. Distributed problem solving (DPS): the concept of agent, autonomous entities that can communicate with each2. Agents and Distributed Intelligent SystemsMulti-agent systems are becoming more relevant to artificial intelligence [1]. Distributed intelligent systems are built with cooperative agents [4]. The agent concept evolves from objects. It is a combination of objectorientation and artificial intelligence (AI). Many researches tried to give a definition for the term agent: Maes [5] defines agents as computational systems that inhabit some complex dynamic environment, sense and act autonomously in this environment, and by doing so realize a set of goals or tasks for which they are designed. Wooldridge and Jennings [6] define agents as hardware based or (more usually) software-based computer systems that possess the following properties: • Autonomy: agents operate without the direct intervention of humans or others, and have some kind of control over their actions and internal state;• Social ability: agents interact with other agents (and possibly humans) via some kind of agent communication language; • Reactivity: agents perceive their environment, (which may be the physical world, a user via a graphical user interface, a collection of other agents, or perhaps all of these combined), and respond in a timely fashion to changes that occur in it; • Pro-activeness: agents do not simply act in response to their environment. They are able to exhibit goal directed behavior by taking the initiative. In our context, an agent is a software component running in distributed environments and capable of performing independent actions to process requests from other agents, or from external applications. The handling of these requests will often require making new requests of other agents in the system. An agent is anything that can be viewed as perceiving its environment through sensors and acting upon that environment through actuators to maximize progress towards its goals, as shown in figure 1; it depicts a highlevel view of an agent within its environment. An agent receives input from its environment and, through a repertoire of actions available to it, reacts to it in order to modify it.AgentPercepts ActionِAgents can be classified according to their functionality as following: Intelligent Agent: a program that performs a task or pursues goals with minimal specific direction, using intelligent or heuristic techniques to the effect that the user is very impressed that a computer could be so smart. An Intelligent Agent does not need to be mobile since the vast range of information can be accessed remotely. Mobile Agent: an autonomous program that migrates between host systems in the process of pursuing one or more goals. A Mobile Agent does not need to be truly intelligent, but have enough flexibility to deal with an environment in which things can change or be inaccessible at any time. A software agent may be "mobile" but may also be "static" and do all its work on one host computer on the network. Collaborative agent: that competes or cooperates. Interface agent: that act as personal assistant. Information agent: that manages, manipulate and collate information from many distributed sources. Reactive Agent: respond to stimulus & respond in an environment where they are embedded. A reactive agent is not much more than an automata that receives input, processes it and produces an output. Smart agent: learn from their actions. Hybrid agent: can combine any of the functionality of the above agents. Smart reactive agent: realize human behavior model. Rational Agent: For each possible percept sequence, a rational agent should select an action that is expected to maximize its performance measure, given the evidence provided by the percept sequence and whatever built-in knowledge the agent has. Fuzzy agent: An agent employing fuzzy logic, Fuzzy need to be considered.2.1 Multi- Agent SystemsEnvironmentFigure 1: Agent interacting with its environmentThe main point about agents is they are autonomous: capable of acting independently, exhibiting control over their internal state i.e., not controlled directly by people. Also, an agent should have the following characteristics: • Active, i.e., an agent might act by its internal states. • Collaborative, i.e., agents need to collaborate with others to accomplish a complex task. • Mobility, i.e., move around an electronic network • Agents must contain some level of intelligence, may also cooperate, and migrate. • Agents don't only act reactively, but sometimes also proactively. • Learning/adaptation: Agents improve performance over time.As the field of AI matured, it broadened its goals to the development and implementation of multi-agent systems (MAS) as it tried to attack more complex, realistic and large-scale problems which are beyond the capabilities of an individual agent [7]. To establish communities of agents, as shown in Figure 2, a solution based on a modular design can be implemented where each member of the agency specializes in solving a particular aspect of the problem. Thus, the agents must be able to interoperate and coordinate with each other in peer-to-peer interactions. The real world is a multi-agent environment: we cannot go around attempting to achieve goals without taking others into account. In Multi-Agents systems: agents have the ability to interact with other agents, via some kind of Agent-Communication Language, and perhaps cooperate with different types of agents. The characteristics of MAS are defined as follows [7]: Each agent has incomplete information or capabilities for solving the problem and, thus, has a limited viewpoint,there is no global control system, Data are decentralized, and the Computation is asynchronous. Information Agent External environment Information Agent InteractionInteractionsome benefits of using DIS: Task decomposition, Task allocation, Task accomplishment, Result synthesis, and Task sharing, if an agent cannot complete all tasks, so other agents assist him. DIS Solve long problems, provide solutions to distributed problems, and Enhance in modularity (which reduces complexity), speed (due to parallelism), Efficiency, Reliability (due to redundancy), flexibility, and reusability at the knowledge level.Local environment Interaction3. Related workThe notion of distributed intelligent systems has been a subject of interest for a number of years. A number of researchers have discussed these systems in different areas, as shown in figure 3, as follows:Mobile AgentFigure 2: Multi-Agent System2.2 Distributed Intelligent System (DIS)A single general agent would need an enormous amount of knowledge to deal effectively with user information requests that cover a variety of tasks. In addition, a centralized system constitutes processing bottleneck and Single point of failure. Finally, because of the complexity of the information finding and filtering task and the large amount of information, the required processing would overwhelm a single agent. As a result, there becomes a trend to the multi-agent system, one of the main areas for the distributed intelligent systems. Distributed intelligent systems (DIS) are intelligent systems built on a distributed computer system, where intelligent systems are those systems that can simulate human beings’ work that requires intelligence including logic inferring, problem solving, deduction and induction. A distributed system is composed many computers interconnected with networks which cooperate and coordinate to accomplish one common task [3]. DIS are based on the use of cooperative agents and organized in hardware or software components. In the system, each agent independently handles a small set of specialized tasks and cooperates to achieve the system-level goals and a high degree of flexibility. There are many advantages of using Distributed Intelligent System: it uses the benefits of the intelligent system that simulate human action in solving problems, allows interconnecting and interoperation of multiple existing legacy systems, provides solutions which draw from distributed information sources, provides solutions where the expertise is distributed, speed up the solution process. Expertise and problem solving abilities may be inherently distributed, and the knowledge to solve the problem may be distributed too. In addition, there areFigure 3: Research area in Distributed Intelligent systemsIn Databases:Architecture for an intelligent distributed database [8]: This research presented architecture for an intelligent distributed database. It integrates different kinds of database, such as relational, object-oriented, temporal, knowledge, deductive and multimedia databases, among others. In their approach, they used concepts from federate databases, fuzzy classified systems; and a database integration methodology. Checking Integrity Constraints Distributed and Parallel Databases [9]: This paper highlighted the differences between centralized, distributed and parallel databases with respect to constraint checking.In Networks:Implementation of a wireless distributed intelligent System [10]: This paper explored thehardware and software requirements for distributed intelligent system architecture. In such an environment, the system resources are inherently spread throughout the network, thereby removing bottlenecks that are present in centralized systems. By using wireless technology that allows the agents to be mobile with the ability to coordinate and cooperate with other agents in order to achieve local and global goals. They used implementation to achieve these features. Knowledge-based generic intelligent network model [11]: This paper proposed architecture based on the demand-driven information-processing model. The task allocation can be both static and dynamic over inhomogeneous or homogeneous resource types and network structures. The processing nodes may employ any mix of the four basic information-processing models (control-, data-, demand- and informationdriven models). The services of the intelligent network are provided by intelligent mobile agents. ATM Network management based on distributed AI architecture [12]: This paper described a multi-agent architecture for Virtual Path (VP) management (i.e. bandwidth and restoration) in Asynchronous Transfer Mode (ATM) networks. This research didn’t propose new strategies, but they improved the management integrating these different management mechanisms by using distributed artificial intelligence.In Control systems:A Distributed Architecture for Mobile Multirobot Remote Interaction [13]: This research presented a distributed architecture based on the usage of intelligent user interfaces and multi-agent systems to facilitate cooperative internet-based remote interaction with a multi-robot system. The proposed system relies on the agent paradigm for dealing with the size and complexity of cooperative remote interaction systems with multi-robots, while taking advantage of intelligent user intevaces for obtaining high degree of naturalness during the interaction sessions Multi-agent Based Distributed Control System for an Intelligent Robot [14]: This paper proposed a multi-agent based distributed control system for an intelligent robot that is an integration of many functional modules. According to the whole requirements of the system, many agents and a distributed blackboard system were designed so that the system realizes a very flexible robot control from the low level such as servo control to the high level control such as motion planning.based collaboration E-CARGO, and proposed that roles can be taken as an underlying mechanism to build intelligent agent systems by describing the process of developing agent systems and the agent dynamics in role-based agent systems, and it pointed out the research topics of role-based distributed intelligent systems. An artificial immune system for multi agents in distributed environments [16]: This paper discussed the behavioral management of artificial intelligence namely the intelligent multi agent systems, and the evolutionary computation called the artificial immune system that imitates the biological theory called the immune system. We present how two concepts from the talk are fused into an artificial intelligent agent system for detecting resources in distributed computing environments and examine how our model can be applied and show that the model can solve an intricate problem successfully through the simulation. Total performance local agent selection strategies in multi-agent systems [17]: This research discussed how total Multi-Agent System (MAS) performances are affected by local decisions when agents select partners to collaborate with by using a multi-agent simulation. It also investigated how MAS performances changed and how network structures between agents shift according to the progress of agents’ local learning and observations. In addition it discussed the relationship between task load and agent network structure. This relates to establishing the optimum time when agents should learn about appropriate partners in an actual environment. Distributed problem solving in multi-agent systems a spring net approach [18]: This article extended the specialized Distributed artificial intelligence (DPS), that consists of distributed problem solving and multi-agent systems which is concerned with how to increase a system’s global outcome through cooperation among individual agents, regardless of their personal payoff, to a general Multi – Agent System (MAS), in which an agent may make a trade-off between selfishness and unselfishness, thus adjusting its own personality and autonomy, instead of each autonomous rational individual tries to increase its utility via social interactions, with no common goal and no global control strategy, and without using any overall consistent information.In Web:Intelligent Retrieval Agent based on Distributed Environment [19]: This paper solved the problem, that the intelligent agents used for searching relative information in the Internet are independent to each other and there is insufficient cooperation to make an efficient search of information, in the distributed environment and can contain irrelevant information forIn Agent systems:A role-based architecture for intelligent agent systems [15]: This research explored the properties of intelligent agent systems, introduces the model of role-the users in a distributed environment by using the CORBA architecture to create an agency by the broker agent and provide more reliable information to the users. Also, the authors proposed intelligent information search system used the NFC and filtering technique by the multi-agents for a rapid and reliable searching of information. A Method of Distributed Problem Solving on the Web [20]: This paper proposed a new method for solving problems in a large-scale distributed Web environment, the key research challenges that they faced in developing the Wisdom Web is to make it capable of seamlessly offering solutions to users in dealing with their real world problems. In order to make this possible, individual contents or services should be developed and written following the syntax and semantics of a pre-defined method for distributed problem solving on the Web. Also, the paper gave an illustrative example to show the service process of the new method.4.1 Architecture DesignOur main goal is to create an agent, nested into a multi-agent system, which would handle negotiation and support decision making of an agent domain. In this paper, architecture (Reference model) for Distributed Multi-Agent Intelligent Systems (DMAIS) is proposed, as shown in figure 5, this model provides a new methodology to improve the development of agent systems, considering three main mechanisms in dealing with agents: Negotiation, Cooperation and Decision Support. There are two main modules in our architecture: negotiation center and Decision support module, as shown in Figure 5. Every member in this reference model can add new features and abilities to the negotiation center. Detailed description of each module of our architecture is given in Table 1.Table 1: Description of the modules used in the DMAIS architectureIn E-learning:Mobile Distributed e-Learning Center [21]: This paper described the development of a mobile Distributed e-Learning Center (DeLC) with enhanced functionality, including two pilot mobile services. In addition, the paper considered also some DeLC reengineering approaches to enhance the m- Learning/mTeaching facilities available in a University campus.ModuleDescription It's responsible for collecting all the information needed to give a decision, and then passes this information to the Decision support module. The decision support module takes the information from negotiation center and process it for effective decision making. For negotiating strategies noncondition decision making is required. We could use neural networks or some genetic based algorithms. It is a subclass of the agent management module. It's responsible for the communication of agents by using some interaction protocols and it develop in the content language between the agents (ACL, KQML). It's responsible for transporting the messages between the agents in the system by using some transport protocols. It's responsible for managing the transfer of ACL messages between the agents in the system.The Negotiation center4. Distributed Multi-Agent Intelligent System (DMAIS)In our context, DMAIS is a system in which several interacting, intelligent agents pursue some set of goals or tasks that are beyond their individual capabilities, as shown in figure 4.Decision Support ModuleCoordination Module Agent Communication ModuleIntelligent AgentIntelligent AgentIntelligent AgentIntelligent AgentAgent Message Transport Module Agent Management ModuleFigure 4: Distributed Multi-Agent Intelligent SystemAgent Communication ModuleAgent Message Transport ModuleAgent Management ModuleInteraction protocolsContent LanguageACL KQMLACL Representation Transport ProtocolsCoordination ModuleDecision Support ModuleNegotiation Center (Algorithms)Figure 5: The Architecture (Reference model) for Distributed Multi-Agent Intelligent Systems (DMAIS)4.2 Considered Techniques in DMAISIn DMAIS, each autonomous agent must be able to decide how to behave in various situations. Coordination, negotiation, decision-making, and learning, like other agent‘s activities. So there are some techniques must be considered in designing the Distributed Multi-Agent Intelligent System (DMAIS). There are many researches considered these techniques when designing multi-agent systems (MAS) in different ways. Table 2 summarizes recent researches and the techniques they considered. A definition for each technique we must considered in designing DMAIS are discussed as following: Coordination: It is the process of management of agents' activities so that they coordinate their deeds with each other in order to share resources, meets their own interests. In [23], the authors focused on a setting where multiple agents with complementary capabilities cooperate in order to generate non-conflicting plans that achieve their respective goals. Cooperation: It is the process of sharing responsibilities in satisfying shared goal and generating mutually dependent roles in joint activities. In [22], a multi agent platform targeted toward the area of computational intelligence modeling is presented. The authors showed the design of various computational agents creating multi agent systems, as well as the infrastructure capabilities. In thesystem, they focused on the cooperation of agents, their interchangeability autonomous behavior, and emergence of new models. Two main areas of cooperation are presented: automated creation of a multi-agent system satisfying given constraints, and decision support for agent partner selection. It is demonstrated that such a system is able to assist in building hybrid artificial intelligence models based on data in a distributed environment. Negotiation: It is the process of identifying interactions based on communication and reasoning regarding the state and intentions of other agents. Information exchange aimed at re-solving conflict of access to resources, different solutions to the same problem or goal conflicts. In [25], the authors illustrated an agent-based distributive negotiation mechanism where each agent’s decision making model is independent to each other and is underpinned by an effective evolutionary learning algorithm to deal with complex and dynamic negotiation environments. Planning: This process considered the actions of other agents in the system when planning and executing one agent’s actions. In [24], they defined the planning problem as the problem of how one should get from the current state of the world through a sequence of actions to the desired goal state. They gave an overview of planning techniques for this classical planning problem and techniques for extensions of this problem.Table 2: Summarizes recent work in designing MASTechniquesCoordination Cooperation Negotiation Coherence Planningcoordination portions of the Independent LifeStyle Assistant agent system being developed at Honeywell.4.3 Agent Communication Language (ACL)Agent Communication Language (ACL) is a proposed standard language for agent communications, as shown in figure 6. The most popular ACL's are: FIPAACL (by the Foundation for Intelligent Physical Agents, a standardization consortium) and the KQML (Knowledge Query and Manipulation Language). AgentReferences Cooperation of Computational Intelligence Agents [22] Multi-Agent Coordination & Cooperation through Classical Planning [23] Multi-agent Planning[24] Towards Genetically Optimized MultiAgent Multi-Issue Negotiations[25] Achieving Global Coherence in Multi-Agent Caregiver Systems[26] Negotiation & Cooperation in Multi-agent Environments[27] Multi-agent Coordination & Cooperation in a Distributed Dynamic Environment[28]Y----Y-Y----YY-Standard language for agentsAgentFigure 6: Agent Communication Language (ACL)-Y-------YYY---Y-Y--We intend design and implement agents that, upon encountering other agents with which they do not share an ACL, are able to create a mutually understandable communication language. We want to give the agents themselves the ability to enrich & evolve a language that best suits their needs. For example, if two interacting agents do not share a common agent communication language, it may be in their interest to initiate creation and enrichment of a common ACL to allow mutually beneficial communication. To make agents understand each other they have to not only speak the same language, but also have a common ontology. Ontology is a part of the agent's knowledge base that describes what kind of things an agent can deal with and how they are related to each other.5. Challenges in DesignSome challenges might be faced in designing the new Distributed Multi-Agent System (DMAIS) architecture. In our architecture design, we will consider four of the most common challenges in designing Multi-Agent Systems MASs. Figure 7 shows the recent work's challenges in designing MAS; each challenge is discussed briefly, as follows:Coherent behavior: It is a process in which the agents behaving as a unit. In [26], they stated that in order for multi-agent systems to exhibit global coherence the agents must coordinate their activities or be limited to a problem space in which activities are highly independent. The authors explored the general coordination issue in the elder care problem space and discussed the response planning andInformation IntegrationA Multi-Agent Architecture for Distributed Domain-Specific Information Integration [29] A Multi-Agent Infrastructure for Information Systems Integration [30] InfoSleuth: AgentBased System for Data Integration and Analysis [31]Distributed Resource AllocationAgent-Based Distributed Resource Allocation in Technical Dynamic Systems [32] A distributed resource allocation mechanism for self-interested agents [33] A multi-agent system for distributed resource allocation [34]solution. If a description of the resource allocation problem is possible, the formal description of the agents’ behavior based upon mathematics is the main advantage of this approach. • Fault tolerance Fault tolerance is the property that enables a system to continue operating properly in the event of the failure of some of its components. If its operating quality decreases at all, the decrease is proportional to the severity of the failure, as compared to a naively-designed system in which even a small failure can cause total breakdown. Fault-tolerance is particularly sought-after in high-availability or life-critical systems. • Exception handling Mechanism designed to handle the occurrence of some condition that changes the normal flow of execution. The condition is called an exception. Alternative concepts are signal and event handler.Exception HandlingChallenges in Exception Handling in Multi Agent Systems [35]6. Conclusion and future workIn this paper, we proposed a reference model of a Distributed Multi-Agent Intelligent System (DMAIS). The main entity in our model is represented by a negotiation center, which assists other agents with negotiation and decision making inside an agent domain. We also provide formal description for techniques that must be considered in designing the DMAIS like Cooperation, negotiation, Coordination, Planning, Coherence and decision support. Also the major concepts of agents are reviewed. And the Research areas in distributed intelligent systems are discussed. In addition, the challenges in designing the new architecture DMAIS are briefly discussed As future work, we plan to implement the architecture by adapting in the Agent Communication Module with intention to propose new interaction protocols. In addition, we intend to develop in the Agent Message Transport Module by proposing new algorithms capable of dealing with the ACL's (Agent Communication Language) messages transportation. Also, we plan to extend the Agent Management Module features by developing new techniques in the coordination module.Fault toleranceOn Fault Tolerance in LawGoverned MultiAgent Systems [36] Applying Feedback Control in Adaptive Replication Mechanisms in Fault Tolerant Multi-Agent Organization [37] DimaX: A FaultTolerant Multi-Agent Platform [38]Figure7: The challenges considered by recent workInformation integration It refers to the field of study of techniques attempting to merge information from disparate sources despite differing conceptual, contextual and typographical representations. This is used in Data Mining and consolidation of data from semi- or unstructured resources. • Resource allocation A resource-allocation decision is a plan for using available resources, for example human resources, to achieve goals for the future. It is the process of allocating resources among the various projects or business units. One possible approach is the formulation as an optimization problem under certain constraints where the mathematical solution algorithms can be realized in a distributed form using multiple agents. The agents play the role of local optimizers that then have to coordinate their local solutions to an overall consistent•7. References[1] [2] R. Unland, M. klusch, M. Calisti, (Ed.) Software Agent-Based Applications, platforms and Development Kits, Basel 2005. N.R. Jennings, K. Sycara, M. Wooldridge, “A Roadmap of Agent Research and Development”, Autonomous agents and Multi-agent systems, vol. 1 ,pp 7-38, 1998。
基于Multi-Agent的技术性贸易壁垒预警预测系统研究与开发
制定 某些特殊的技术条件 , 为其 他国家商品 自由进入本国市场
设置 障碍。随着 我国加入 WT O进 程的加快 , B T T已成 为 阻碍 我 国出口的主要 因素 , 而且还 在逐年加 重。20 0 2年 , 国企业 我 受 限比例 高达 7 % , 口产 品 受 限 比例为 3 % , 失金 额 为 1 出 9 损 10亿美元 。 7 在 国外 T T的影响 下 , 国产 品受 阻 、 B 我 企业 受限 、 济受 经 损的主要原因之 一是 我 国的信 息不 灵通 , 对进 口国家将 要制 定、 正在拟订 和已经实施 的技术 标准 、 法规 与合格 评定 程序情 况及其细节了解不多 , 没能及时地掌握进 口国对我 国产品形成 壁 垒的准确 信息。从 而导致 在跨 越 、 对 、 应 突破或规 避方 面反 应迟钝 , 甚至错过时机 。因此建立 国外 T T的预警机 制 , 时 B 及 收集 、 跟踪国外的技术性壁 垒和绿 色壁 垒措施 的有关信 息 , 对
维普资讯
・
26・ 0
计 算 机应用 研究
20 06年
基 于 Mu i g n 的 技 术 性 贸 易 壁 垒 tA e t l— 预 警预 测 系统研 究 与 开发 水
蒋 国瑞 ,任荣平
( 京工业 大 学 经济与 管理 学院 ,北 京 10 2 ) 北 002 摘 要 :技 术性 贸 易壁 垒成 为 阻碍 我 国 出 口的主要 因素 , 立 高效的预 警 预 测 系统 已经 势在 必行 。结合 Mut 建 l. i A et O t oy 术 , J E开发 平 台的基础 上 , 出了 系统的详 细设计 方案 和 实现的 关键技 术 。 g n 和 no g 技 l 在 AD 给
机械英语专业名词
机械专业英语词汇(很全)金属切削m etal c utting机床 machi ne too l 金属工艺学t echnol ogy of metal s 刀具 cut ter 摩擦 fr iction联结 link传动 driv e/tran smissi on 轴 shaf t 弹性 elas ticity频率特性f requen cy cha racter istic误差error响应 resp onse 定位a llocat ion 机床夹具jig动力学 dynam ic 运动学 ki nemati c 静力学 sta tic分析力学 anal yse me chanic s 拉伸 pull ing压缩hittin g 剪切 shea r 扭转 twis t 弯曲应力 be ndingstress强度 int ensity三相交流电 th ree-ph ase AC磁路 mag neticcircle s 变压器 tra nsform er异步电动机 asyn chrono us mot or 几何形状g eometr ical精度 preci sion 正弦形的 sinus oid 交流电路 AC ci rcuit机械加工余量machin ing al lowanc e 变形力 def orming force变形 def ormati on 应力 str ess 硬度 ri gidity热处理 he at tre atment退火 annea l 正火 norm alizin g脱碳 de carbur izatio n 渗碳 carb urizat ion电路circui t 半导体元件s emicon ductor eleme nt反馈f eedbac k 发生器 gen erator直流电源 DC el ectric al sou rce门电路 gatecircui t 逻辑代数 lo gic al gebra外圆磨削e xterna l grin ding内圆磨削 int ernalgrindi ng 平面磨削planegrindi ng变速箱gearbo x 离合器 clu tch 绞孔 fr aising绞刀 rea mer 螺纹加工thread proce ssing螺钉 scre w 铣削 mill铣刀 milli ng cut ter功率 power工件 workp iece 齿轮加工 gearmechin ing齿轮gear 主运动main m ovemen t主运动方向direct ion of mainmoveme nt进给方向 dire ctionof fee d 进给运动 fe ed mov ement合成进给运动result ant mo vement of fe ed合成切削运动 res ultant movem ent of cutti ng合成切削运动方向d irecti on ofresult ant mo vement of cu tting切削深度 cu ttingdepth前刀面 rakeface刀尖 noseof too l 前角 rake angle后角cle arance angle龙门刨削pla ning 主轴s pindle主轴箱head stock卡盘chuc k 加工中心ma chinin g cent er 车刀lat he too l车床l athe 钻削镗削bore车削turni ng 磨床gri nder 基准b enchma rk钳工l ocksmi th 锻forg e 压模stam ping 焊we ld 拉床bro aching machi ne拉孔b roachi ng 装配ass emblin g 铸造foun d 流体动力学f luid d ynamic s流体力学fluidmechan ics 加工ma chinin g 液压hydr aulicpressu re切线t angent机电一体化m echano tronic s mech anical-elect ricalintegr ation气压airpressu re pne umatic press ure 稳定性stabil ity介质medium液压驱动泵fl uid cl utch液压泵hydr aulicpump 阀门v alve 失效i nvalid ation强度intens ity载荷load 应力s tress安全系数saft y fact or 可靠性re liabil ity螺纹thread螺旋helix键spline销pin 滚动轴承rollin g bear ing滑动轴承slid ing be aring弹簧spring制动器arre ster b rake十字结联轴节c rosshe ad 联轴器co upling链chain皮带strap精加工fin ish ma chinin g 粗加工rou gh mac hining变速箱体g earbox casin g 腐蚀rust氧化oxida tion磨损wear耐用度durab ility随机信号rand om sig nal离散信号disc rete s ignal超声传感器ult rasoni c sens or集成电路integ rate c ircuit挡板orifi ce pla te残余应力resi dual s tress套筒sleev e 扭力tor sion 冷加工cold m achini ng 电动机elect romoto r 汽缸cyl inder过盈配合int erfere nce fi t热加工h otwork摄像头CCDcamera倒角round ing ch amfer优化设计op timaldesign工业造型设计i ndustr ial mo ulding desig n有限元f initeelemen t 滚齿hobb ing 插齿ge ar sha ping伺服电机act uating motor铣床milli ng mac hine钻床drill machi ne 镗床bor ing ma chine步进电机step per mo tor丝杠screwrod 导轨le ad rai l 组件suba ssembl y可编程序逻辑控制器P rogram mableLogicContro ller P LC电火花加工elec tric s park m achini ng电火花线切割加工e lectri cal di scharg e wire - cut ting相图phase diagr am 热处理he at tre atment固态相变s olid s tate p hase c hanges有色金属n onferr ous me tal 陶瓷cer amics合成纤维synt heticfibre电化学腐蚀e lectro chemic al cor rosion车架autom otivechassi s悬架su spensi on 转向器re direct or 变速器sp eed ch anger板料冲压sh eet me tal pa rts 孔加工s pot fa cing m achini ng车间w orksho p 工程技术人员engine er 气动夹紧p neumalock数学模型mat hemati cal mo del 画法几何descri ptivegeomet ry机械制图Mecha nicaldrawin g 投影proj ection视图vie w 剖视图pro file c hart 标准件stand ard co mponen t零件图p art dr awing装配图assem bly dr awing尺寸标注si ze mar king 技术要求techn ical r equire ments刚度rigi dity 内力i nterna l forc e 位移disp laceme nt截面sectio n 疲劳极限f atigue limit断裂frac ture塑性变形pla stic d istort ion 脆性材料brittl enessmateri al刚度准则rigid ity cr iterio n 垫圈was her 垫片sp acer直齿圆柱齿轮s traigh t toot hed sp ur gea r 斜齿圆柱齿轮helica l-spur gear直齿锥齿轮s traigh t beve l gear运动简图ki nemati c sket ch齿轮齿条pinio n andrack 蜗杆蜗轮worm and w orm ge ar虚约束passiv e cons traint曲柄crank摇杆racke r凸轮ca ms 共轭曲线c onjuga te cur ve 范成法ge nerati on met hod定义域defi nition al dom ain值域range导数\微分dif ferent ial co effici ent求导deriva tion 定积分defin ite in tegral不定积分i ndefin ite in tegral曲率curva ture 偏微分partia l diff erenti al毛坯r ough 游标卡尺slide calip er 千分尺mi cromet er cal ipers攻丝tap二阶行列式se cond o rder d etermi nant逆矩阵inve rse ma trix 线性方程组line ar equ ations概率pro babili ty 随机变量r andomvariab le排列组合permu tation and c ombina tion 气体状态方程equ ationof sta te ofgas 动能kineti c ener gy 势能pot ential energ y机械能守恒conse rvatio n of m echani cal en ergy动量momen tum 桁架tr uss 轴线ax es 余子式co factor逻辑电路l ogic c ircuit触发器flip-flop脉冲波形puls e shap e数模di gitalanalog y 液压传动机构fluid drive mecha nism机械零件mec hanica l part s 淬火冷却qu ench 淬火h ardeni ng回火t emperi ng 调质har dening and t emperi ng 磨粒ab rasive grain结合剂bo ndingagent砂轮grindi ng whe el(be)qualfi ed, up to gr ade 合格abnor mal en gine n oise d iagnos is equ ipment异响诊断仪abnor mal ha ndling异常处理a bnorma l knoc king 异响abra sion w ear; s cratch ing 磨损abr asivebelt g rindin g mach ine 砂带磨床abr asivebelt g ringdi ng 砂带磨削abs cissa横坐标AC arc w elding machi ne 交流弧焊机acc elerat ed run赶点acc elerat ion 加速度accel eratio n anal ysis 加速度分析a cceler ationdiagra m 加速度曲线accid entaldefect事故性缺陷acety lene 乙炔acety lene c ylinde r 乙炔罐a cetyle ne gen erator乙炔发生器acety lene-w elding insta llatio n 乙炔氧焊装置add lubri cating oil 加润滑油add endum齿顶高add endumcircle齿顶圆a dditio n to s tandar d 标准补充件addit ionalelemen t 附加要素addit on age nt 添加剂adhesi on 粘附a djusta ble sp eed mo tors 调速电动机a djusti ng 调整a dminis tratio n/gene ral af fairsdept 总务部adm inistr ation/genera l affa irs de pt 总务部admis istrat ion of vehic le ami ntenan ce 汽车维修管理ad misist rative stand ard 管理标准adop ting b y equa tion 等同采用ad opting by eq uivale nt 等效采用adopt ing by refer ence 参照采用ad option of in ternat ionalstanda rd and advan ced ov erseastanda rd 采用国际标准和国外先进标准a fter d rippin g (柴油喷射系)渗漏滴油agei ng 老化a geing时效aims of st andard izatio n 标准化的目的air circu it bre aker 空气断路器ai r dry自然干燥a ir jar ring m ouldin g mach ine 气动震实造型机air pi pe 气管a ir sea l 气幕ai r spra y gun空气喷枪a ir spr ing 空气弹簧airtermin al 航空集散站air tool风动工具ai r-cond itioni ng equ ipment车厢空调设备air-cushio n ejec t-rod气垫顶杆ai rlesssprayequipm ent 无空气喷涂设备alcoho l 乙醇al coholcontai ner 沾湿台alcoh ols so lvent醇类溶剂a lignin g 校正al kalidi pping脱脂alka li-ear th bab bitt 碱土巴氏合金alkali ne deg reasin g 碱法脱脂alkali ne etc h 龄咬a llowab le amo unt of unbal ance 许用不平衡量a llowab le pre ssureangle许用压力角allowa ble st ress;permis siblestress许用应力a lloy c ast ir on 合金铸铁allo y stru cturea l stee l 合金结构钢alloy toolsteel合金工具钢altern ationswitch转换开关a lumel铝镍合金a lumini ed ste el she et 渗铝钢板alumi nium b ronze铝青铜al uminiu m cast ing al loy 铸造铝合金alu minizi ng 渗铝alumin um pow der pa int 铝粉漆(银色漆)amend ed dra ft 修正草案amend ment t o stan dard 标准修改件a mino p lastic s 氨基塑料amino-filler氨基腻子a mountof unb alance不平衡量a mplitu de ofvibrat ion 振幅analog-modedevice类模器an alysis of me chanis m 机构分析analy ticaldesign解析设计a nalyti cal me thod 分析法ang le ofcontac t 包角an gularaccele ration角加速度a ngular conta ct bal l bear ing 角接触球轴承a ngular conta ct bea ring 角接触轴承an gularcontac t radi al bea ring 角接触向心轴承angul ar con tact t hrustbearin g 角接触推力轴承an gularveloci ty 角速度angula r velo city r atio 角速比ani on ele ctroph oretic coati ng 阴离子型电泳涂料a nneal退火anne aling退火anne alingbox 退火箱annea ling f urnace退火炉an nealin g oven退火炉an nex 附录annula r ball barin g 径向球轴承annul ar spr ing 环形弹簧anod e mech anical worki ng 阳极机械加工An odize阳性处理an olyte阳极电解液a nticor rosive bimet al 耐蚀双金属anti corros ive pa int 防蚀漆anti-foamin g addi tive 防泡沫添加剂a ntifoa ming a gent 消泡剂ant ifouli ng pai nt(cop per pa int) 防污漆anti-freez e addi tive 防冻添加剂a ntifri ctionalloy减摩合金an tifric tion a lloy 减摩合金ant ifrict ion be arng 减摩轴承an ti-fri ctionqualit y 减摩性a nti-kn ock co mpound抗爆剂an tirust paint防锈漆a nti-ta rnishtreatm ent 抗暗处理aper iodicspeedfluctu ation非周期性速度波动app endeddescri ptionof sta ndard标准附加说明applic ationfactor工况系数applie d forc e 作用力a pprove d by 核准appr oved b y / ch eckedby / p repare d by 核准/审核/承办aqua regia王水arc weldi ng mac hine 电弧焊机Arc himede s worm阿基米德蜗杆arch ives o f stan dardiz ation标准化档案A rctan反正切arg on arc weldi ng 氩弧焊argon weldi ng 氩焊a rm 臂部a rmatur e test er 电枢试验器art ery 干线articu latedbus 通道式公共汽车a rticul ated e quipme nt 铰接装置arti culate d trol ly bus通道式无轨电车arti ficial dryin g 人工干燥artif icialgasoli ne 人造汽油artif icialleathe r 人造胶革artifi cial r esin 人造树胶ar tifici al woo l 人造羊毛asbest os 石棉a sbesto s band石棉带as bestos board石棉板a sbesto s fibe r 石棉纤维asbest os lin en 石棉布asbest os pap er 石棉纸asbes tos st eel le af 石棉钢片asbes tos we b 石棉织物as-dep osited stren gth 焊后强度ase ptic 防腐剂asse mbling clear ance 装配间隙ass embly组装ass emblycondit ion 装配条件Asse mbly l ine 组装线Assem bly li ne 组装线assis tant m anager助理ass istant manag er 助理A ssur g roup 杆组as-w elded焊态atla s 图册、图谱atomo sphere quali ty sta ndard大气质量标准atten dant s eat 乘务员座椅aug ular o ffset角度偏差au sformi ng 形变热处理aus tenite奥氏体au thorit y 权力机构autocl ino 自动壳型机au tomati c boxsplitt er 自动分箱机auto maticcloser自动合箱机autom atic c ompens atingdevice for b oringcutter wear镗刀磨损自动补偿装置a utomat ic gas cutti ng 自动气割auto maticheadst ock ch anging N/C m achine自动更换主轴箱数控机床autom atic i nspect ion ma chinefor pi ston r ing te nsion活塞环弹性自动检验机a utomat ic ins tructi on cal ling d evice自动指令呼叫装置aut omatic linefor we ightin g conn ecting rod 连杆称重去重自动线aut omatic mould ing pr oducti o line ofr c ylinde r bloc k 缸体自动造型生产线automa tic mu lti-st age co ld fro mer 多工位自动冷镦机autom atic p lating machi ne 自动电镀装置au tomati c prod uction linefor au tomobi le fin al dri ve hou sing 汽车主减速器壳加工自动线automa tic pr oducti on lin e forconnec ting r od 连杆加工自动线a utomat ic pro ductio n line for c ransha ft dyn amic b alance曲轴动平衡自动线au tomati c prod uction linefor cy linder block气缸体加工自动线au tomati c prod uction linefor cy linder head气缸盖加工自动线aut omatic produ ctionline f or gas carbu rizati on 气体渗碳自动线a utomat ic scr ewdriv er 电动启子auto maticspraye r 自动喷漆机auto maticticket check er 自动检票机aut omatic toolchangi ng N/C machi ne 自动换刀数控机床automa tic we lding自动焊接a utomat ion 自动化auto mobile trans portat ion en terpri se 汽车运输企业au tomoti ve alc quer 汽车用喷漆a utomot ive en amel 汽车漆aut omotiv e topc oat 汽车面漆aux iliary fucti on 辅助功能avai lablemateri al 良品可使用ave rage d ays du ring m ajor r epairof veh icles汽车大修平均在修车日a verage daysin pla nt dur ing ma jor of vehic les 汽车大修平均在厂车日ave rage i nterva l mile age of major repai r of v ehicle s 汽车大修间隔里程a verage main-hoursof veh icle m ainten ance a nd rep air 汽车维修平均工时avera ge str ess 平均应力ave rage t onnage (pass engerseat)平均吨(客)位aver age ve locity平均速度aviona l 铝合金a xial c ontact beari ng 轴向接触轴承ax ial di rectio n 轴向ax ial in ternal clear ance 轴向游隙ax ial lo ad 轴向载荷axial loadfactor轴向载荷系数axia l plan e 轴向平面axialthrust load轴向分力a xial t ooth p rofile轴向齿廓a xle st and 轮轴架babb it met al 巴氏合金backcone 背锥back coneangle背锥角bac k cone dista nce 背锥距back fire回火back flow回流back lash 侧隙backl ash 齿侧间隙bac klash间隙back-to-ba ck arr angeme nt 背对背安装bad condi tion o f vehi cle 汽车不良状况b affleplate挡块bain ite 贝氏体bakel ite 胶木(电木)ba king p aint 烘漆balan ce 平衡balanc e of m echani sm 机构平衡balan ce ofrotor转子平衡b alance of ro tors 回转体平衡ba lanceof sha king f orce 惯性力平衡b alanci ng cen tering machi ne 平衡-钻中心孔机床balan cing m achine平衡机ba lancin g mass平衡质量b alanci ng qua lity 平衡品质ba lancin g spee d 平衡转速balata巴拉塔树胶balata sprin g 橡胶弹簧ball球ballbearin g 球轴承b all be aring球轴承bal l scre w 滚珠丝杆bandbrake带式制动器b and-ai d 创可贴b ar sto ck cut ting b y punc hing 冲压下料ba rcode条码barc ode 条码barcod e 条码ba rcodescanne r 条码扫描器barc ode sc anner条码扫描器b arrel(cylin dric)cam 圆柱式凸轮步进运动机构ba rrel p lating滚镀bar-typecylind er gau ge 杆式气缸量规ba se cir cle 基圆base c one 基圆锥basecylind er 基圆柱basepitch基圆齿距ba sic dy namicaxialload r ating轴向基本额定动载荷ba sic dy namicradial loadrating径向基本额定动载荷b asic i nterna tional stand ard 基础国际标准b asic r atinglife 基本额定寿命b asic s tandar d 基础标准basic stati c axia l load ratin g 轴向基本额定静载荷basicstatic radia l load tatin g 径向基本额定静载荷basicterms基本术语ba sket 蝴蝶竺batc h furn ace 分批炉batt ery hy dromet er 蓄电池液体比累计b attery welde r 蓄电池式焊机beput in stora ge 入库b eacon警示灯bea d 焊道be ad cra cking焊道裂纹b ead we lding堆焊bead ing st ress 弯曲应力bea ring 轴承bear ing al loy 轴承合金bear ing bl ock 轴承座beari ng bor e diam eter 轴承内径be aringbush 轴瓦、轴承衬b earing cap 轴承盖bear ing ca pacity承载能力bearin g capa city f actor承载量系数b earing clear ance 轴承间隙be aringcone 轴承内圈bea ring c up 轴承盖bearin g cup轴承外圈b earing heigh t 轴承高度bearin g life轴承寿命b earing metal轴承合金bearin g outs ide di ameter轴承外径b earing race轴承座圈b earing saddl e 轴承座b earing score拉瓦bea ring s hell 轴瓦bear ing sh im 轴承垫片beari ng ste el 轴承钢bearin g widt h 轴承宽度beesw ax 蜂蜡b ehindschedu le 晚点b ellevi lle sp ring 碟形弹簧be lt dri ving 带传动belt pulle y 带轮be nder 弯曲机bend ing di e 压弯模bendin g mome nt 弯矩b ending press压弯机be nding-beadin g die压弯压筋模bendin g-curl ing di e 压弯卷圆模bendi ng-fla ngingdie 压弯翻边模be rylliu m bron ze 铍青铜bevelgear 锥齿轮beve l gear s 圆锥齿轮机构bev el pul ley; b evel w heel 锥轮bezel斜视规be zel pa nel 面板bezel panel面板bib liogra phy 文献书目bila terall y harm onized stand ard 双边协调标准b iliogr aphica l refe rence书目参考目录bimeta l stri p from tin-a lumini um all oy 高锡铝合金双金属带binder粘合剂bi sector平分线bi tumino us pai nt 沥青漆black box 黑箱black washe r 黑皮垫圈blacks mith w elding锻焊bl ank 齿轮轮坯blan k 轮坯bl ank 制坯blanke r 落料机b lankin g 穿落模blanki ng die落料模bl anking-coini ng die落料压印模blank ing-sl otting die 落料切槽模bl end so lvent溶合溶剂b linste r 气泡bl ock di agram框图bloc k hamm er 落锤blow-b y 串气bl ow-bymeter曲轴箱窜气量测定仪bl ower 鼓风机blue ing 发蓝处理blus h 导色b oard 看板bodybumpin g tool车身修整工具body guida nce me chanis m 刚体导引机构bod y of a norma tive d ocumen t 一个标准文件的主体bold l ine 粗线bolt 螺栓bonegum 骨胶booth喷漆室bor ing 镗boring镗削bor ing ho le 镗孔b oron s teel 硼钢boron izing渗硼bot tom cl earanc e 顶隙bo ttom d ie(cou nter d ie) 下模bound ary di mensio n 外形尺寸box fu rnace(muffle furna ce) 马弗炉boxmoldin g mach ine 有箱造型机box ing 环焊bracke t 小磁导brake制动器bra ke ble eder 制动系空气排除器brak e depr esor 制动踏板压下器brakedrum l athe 制动鼓车床b rake f ade 制动失效brak e flus her 制动液自动更换装置brak e shoe grind er 制动蹄片磨削装置b ranch支线bra nch li ne 岔线b rass 黄铜brazi ng byflame火焰钎焊b reakdo wn 断裂b ridgetype b akingoven 桥式烘干室b rightcoatin g 光亮镀层bright washe r 光垫圈b righte ner 光亮剂brit tlenes s 脆性br oachin g 拉削br oachin g gear拉齿bro nze 青铜bulkgoods散装货物bu rn rub ber 轮胎烧耗burn ing 烧伤burnis hing 磨光(抛光0burnis hing 抛光burr(金属)毛边flash(塑件)毛边b us bay港湾式车站bus pr iority sytem公共汽车b us pri oritysytem公共汽车优先通行系统b us she lter 候车亭bush ing bl ock 衬套busine ss law and r egulat ion 企业法规but t resi stance weldi ng 电阻对焊buttseam w elding滚对焊b utt we lding对接焊but tressthread form锯齿形螺纹buzzle蜂鸣器ca bin 客舱cablebracke t 电缆托架cadmiu m bron ze 镉青铜cage保持架cal cium c arbide电石cal culate d bend ing mo ment 计算弯矩ca m 凸轮ca m , ca m mech anism凸轮机构ca m bloc k 滑块c am dri ver 铡楔cam pr ofile实际廓线ca m prof ile 凸轮廓线cam withoscill atingfollow er 摆动从动件凸轮机构camber gauge外倾测量器camph or 樟脑c amsahf t copi ng lat he 凸轮轴仿形车床c amshaf t grin ding m achine凸轮轴磨床camsha ft pol ishing machi ne 凸轮轴超精磨机床camsha ft pol ishing machi ne 凸轮轴抛光机床ca mshaft(journ al )tu rninglathe凸轮轴(轴颈)车床can tileve r beam悬臂梁ca ntilev er str ucture悬臂结构c apabil ity 能力car r ow 车列c ar sta nd (ja ck sta nd) 汽车架carbi de towatergenera tor 投入式乙发生器carbon arc w elding碳弧焊ca rbon e lectro de 碳极carbon fouli ng (火花塞)积碳ca rbon s tructu real s teel 普通碳素结构钢carbo n tool steel碳素工具钢carbon-fiber reinf orcedplasti cs 碳纤维增强塑料c arboni tridin g (cya niding) 碳氮共渗(氰化)ca rboniz ation碳化car bureto r icin g 化油器结冰carbu rizing渗碳car burizi ng all oy ste el 渗碳合金钢car burizi ng car bon st eel 渗碳碳素钢car burizi ng fur nace 渗碳炉car d of g oods 货卡carri age 车厢Cartes ian co ordina te man ipulat or 直角坐标操作器c arton纸箱cart on box纸箱cas cade s peed c ontrol串级调速case-b ased d esign,CBD 基于实例设计ca sh far e 普通票casing headgasoli ne 气体汽油castbronze锻造青铜cast i ron 铸铁cast s teel 铸钢catal og 目录cathod e shie dl 阴极罩cathol yte 阴极电解液ca ting m achine浇注机ca tion e lectro phoret ic coa ting 阳离子型电泳涂料caus e anal ysis 原因分析cau se des cripti on 原因说明cavi tation穴蚀cel lophan e 赛璐酚c ellulo id 赛璐珞cellul ose ac etate醋酸纤维(脂)cemen t gum胶泥ceme ntite渗碳体cen ter di stance中心距ce nter d istanc e chan ge 中心距变动cen ter of mass质心cent er ofpressu re 压力中心cente rlessgrindi ng 无心磨削cent ral ge ar 中心轮centra lizedtransp ortati on 集中运输centr ifugal force离心力c entrif ugal f orce 向心力cent rifuga l seal离心密封c entrif ugal s tress离心应力c etanenumber十六烷值c hain 链chain链条chai n 链条槽c hain d ottedline 点划线cha in gea ring 链传动装置ch amfer倒角cham ois 麂皮change gearchange wheel变速齿轮charac ter di e 字模ch aracte ristic s 特性ch artere d vehi cle 包车chass is 底座c hassis基座cha ssis 基座chass is dyn amomet er 底盘测功机cha ssis l ubrica tor 底盘润滑机che ck nut锁紧螺母c hecked by 初审check-up 技术检查chem ical -heat t reatme nt 化学热处理che micalmechan ical w orking化学机械加工chem ical v aporou s depo siton化学气相沉积法chem ical w ear 化学磨损chil led ca st rio n 冷激铸铁chloro prenerubber氯丁橡胶Chroma te 铬酸处理chrom e bron ze 铬青铜chrome l 铬镍合金chuck for g rindin g hole and e nd fac e of b evel g ear 磨圆锥齿轮孔和端面用的卡盘circui t brea ker ca binet断路器柜ci rcular bendi ng die压圆模c ircula r gear圆形齿轮c ircula r pitc h 齿距ci rcular pitch; pitc h of t eeth 节距circ ular t hickne ss 圆弧齿厚circu lating power load循环功率流circul ation周转city month ly tic ket 市区月票city passe nger f low 市区客流cit y tran sposrt ation市区运输cl ass of vehic le mai ntenan ce 汽车维护类别cl ass of vehic le rep air 汽车修理类别cl assifi cation整理cl assifi cation of st andard s docu ment.标准文献分类clean er 清洗剂cleani ng clo th 抹布c leanne ss 清扫c learan ce 径向间隙cloc kwise顺时针clo gged f ilter滤清器阻塞c lose t ype so cket j oint 封闭式插接c losedchainmechan ism 闭链机构clos ed kin ematic chain闭式链c loud p oint 浊点clubcar 高尔夫球车clu tch 离合器clut ch exp losion离合器炸裂coarse threa d 粗牙螺纹coati ng for prote ctionagains t corr osion防腐镀层c ode fo pract ice 实施规则coef ficien t of a vailab ilityof veh icle 车辆完好率c oeffic ient o f fric tion 摩擦系数coe fficie nt ofspeedfluctu ation机械运转不均匀系数co effici ent of speed fluct uation速度不均匀( 波动) 系数c oeffic ient o f trav el spe ed var iation行程速度变化系数co effici ent of utili zation of au tomobi le 出车率coeff icient of ut ilizat ion of ton-k ilomet ers 吨公里利用系数coeffi cientof vel ocityfluctu ation运转不均匀系数coil stock卷料coi nciden t poin ts 重合点coinin g pres s 精压机coinin g pres s 精压机c oke-fi red fu rnace焦碳炉co ld bri ttlene ss 冷脆性cold d raw 冷拉colddrawin g lowcarbon seaml ess st eel tu be 冷拔低碳无缝钢管cold d rawing sprin g stee l 冷拉弹簧钢coldextrud ing 冷挤压cold forgi ng 冷锻c old fo rgingdie 冷锻模coldpressu re wel ding 冷压焊col d rins e bank冷水槽co ld rol led th in ste el she et 冷轧薄钢板col d roll ing ki lled s teel s heet 镇静钢冷轧钢板coldrollin g rimm ed ste el she et 沸腾钢冷钆钢板c old ru nning-in 冷磨合cold s lug 冷块cold t reatme nt 冷处理coldtrim 冷切边coll apse o f pist on ski rt 活塞裙部挤扁co llecti on ofstanda rd dec umnets标准文献收集comb inatio n in p aralle l 并联式组合combi nation in se ries 串联式组合c ombina ton pl iers 鲤鱼钳comb ined e fficie ncy; o verall effic iency总效率co mbined mecha nism 组合机构com binedstress复合应力combus ion te ste 燃烧分析仪com bustio n test e 燃烧(废气)分析仪commer cial b ronze工业用铜co mmon a pex of cone锥顶com mon eq uipmen t 常用设备common equip ment 常用设备co mmon g oods 普通货物com mon no rmal l ine 公法线comm uter 月票乘客com pany s tandar d(ente rprise stand ard) 企业标准co mparab le sta ndard可比标准co mpensa tion 补偿comp ensati on far e 补票co mpleme ntarystanda rd 补充性标准com pleteanneal ing 完全退火comp lete f ailure完全故障comple te pen etrati on 焊透c omplex mecha nism 复杂机构co mplexsteelsheetwith c hromat e zinc铬酸锌复合钢板com posite tooth form组合齿形co mpound (or c ombine d) gea r trai n 复合轮系compo und co mbinin g 复合式组合compo und di e 合模c ompoun d flat belt复合平带co mpound geartrain混合轮系c ompoun d hing e 复合铰链Compou nd scr ew mec hanism复式螺旋机构comp ressed gas 压缩煤气com pressi on str ength抗压强度c ompres sive s tress压应力com presso n coil sprin g 压缩螺旋弹簧com presso r 压缩机c ompres sor oi l 压缩机机油compu ter ai ded de sign,CAD 计算机辅助设计comput er aid ed man ufactu ring,CAM 计算机辅助制造comput er int egrate d manu factur ing sy stem,CIMS 计算机集成制造系统con cave 凸concav ity 凹面、凹度Con ceal I nstall暗装co nceptdesign, CD 方案设计、概念设计con clusio n 结论co ncurre d desi gn, CD并行设计concur rent e nginee ring 并行工程con denser teste r 电容器试验器con dition of se lf-loc king 自锁条件con ductio n of h eat 导热性cone angle圆锥角co ne dis tance锥距cone-wormmillin g mach ine 球面蜗杆铣床c onical rolle r bear ing 圆锥形滚子轴承c onical sprin g 锥形弹簧conju gate c am 共轭凸轮conju gate p rofile s 共轭齿廓conju gate y oke ra dial c am 等径凸轮conne ctingrod al ignmen t fixt ure 连杆矫正器co nnecti ng rod, coup ler 连杆connec tion b ox 接线盒connec tion t est 检查接线con oid he lical-coil c ompres sion s pring圆锥螺旋扭转弹簧con servat ion 清洁consta ntan 康铜const ant-br eadthcam 等宽凸轮con stant-veloci ty (or doubl e) uni versal joint双万向联轴节cons tituti on ofmechan ism 机构组成cons tituti on ofstanda rd 标准的构成con strain ing fo rce 约束反力cons traint约束con strain t cond ition约束条件c onsump tion 消耗conta ct poi nts 啮合点conta ct rat io 重合度contac t seal接触式密封conta ct str ess 接触应力cont ainertransp ort 集装箱运输co ntent目次cont ent of norma tive d ocumen t 标准文件的内容co ntinou s furn ace 连续炉conti nuousbroach ing 连续拉削con trol c enter调度中心co ntrolpanel控制屏con trol s tation调度站C ontrol switc hes 控制开关conv ention al mec hanism; mech anismin com mon us e 常用机构conve x 凹con vex 凸的,凸面体co nvex r oller球面滚子Co nveyer流水线物料板Conv eyer 流水线物料板c oolant冷却液co ordina te 座标c oordin ate fr ame 坐标系copp er 紫铜C oppercore p ower c able 铜芯电力电缆c opy gr inding mahci ne 靠模磨床copy lathe仿形车床c ork 软木correc ting p lane 平衡平面cor rectin g plan e 校正平面corri genda勘误表cor rosion inhib itor 搞腐蚀剂cor rosion resis tance耐腐蚀性c orrosi on res isting castiron 耐蚀铸铁cor rosion wear腐蚀性磨损cosine accel eratio n (orsimple harmo nic) m otion余弦加速度运动cosm etic d efect外观不良co smetic inspe ct 外观检查cosme tic in spect外观检查c ost 成本cost o f labo r 人工费c oulome ter 库仑计count er sin king 锪孔coun terclo ckwise (or a nticlo ckwise) 逆时针c ounter weight平衡重c ouple力偶coup ler-cu rve 连杆曲线coup ling s haft c ouplin g 联轴器coverplate盖板cove red ar c weld ing 手工电弧焊co vering power深镀能力c rank 曲柄crank angle betwe en ext reme (or lim iting) posit ions 极位夹角cra nk arm, plan et car rier 系杆crank press曲轴压力机crank shaft曲柄轴cr ank sh aft 曲轴crankshaper (guid e-bar) mecha nism 曲柄导杆机构crank-rocker mecha nism 曲柄摇杆机构c ranksa hft jo urnalgrindi ng mac hine 曲轴主轴颈磨床crank shaft(mainjourna l turn ing la the) 曲轴(主轴颈)车床cra nkshaf t dyna mic ba lancin g mach ine 曲轴动平衡机c ranksh aft gr inding machi ne 曲轴磨床cran kshaft journ al fac e hard eningmachin e 曲轴轴颈表面淬火机床crank shaftjourna l mill ing ma chine曲轴轴颈铣削专用机床c ranksh aft po lishin g mach ine 曲轴轴颈抛光机床crank shaftsuperf inishi ng mac hine 曲轴超精磨机床crank shaftturnin g lath e 曲轴车床creati on des ign 创新设计cre pon fi nish 皱纹漆crim p pape r 瓦楞纸c ritica l defe ct 极严重缺陷cri ticalfailur e 致命故障critic al poi nt 临界点critic al spe ed 临界转速cros s grin ding 端面磨削cro ss wel d 横向焊缝cross-belt d rive 交叉带传动c rossed helic al gea rs 交错轴斜齿轮cro ssover交叉器cr oss-sh aped j oint 十字接头cr own ge ar 冠轮c rown s having剃鼓形齿c rusher破碎机c ryptom eter 遮盖力测定仪c rystal lizati on poi nt 结晶温度CSBS yearb ook 中国标准化年鉴c st bim etal 铸造双金属c ulture教养cup ola (c upolafurnac e) 冲天炉curb w indow安全监视窗curlin g 卷边Cu rrentby Pha se 每相电流curre nt rep air of vehic le 汽车小修curv ature曲率curv e matc hing 曲线拼接cur ved-sh oe fol lower曲面从动件curve-toothbevelgear m illing弧齿锥齿轮铣刀盘刃c urve-t ooth b evel g ear mi llingmachin e 弧齿锥齿轮铣齿机c urvili near m otion曲线运动c ushion缓冲cut-off (shear-out) 切口cutte r 刀具cu tter g rindin g mach ine 工具磨床cut ting m achine切割机cu tting-out pr ess 切断压力机cya niding氰化cy cle 周波cycleof mot ion 运动周期cycl oidalgear 摆线齿轮cy cloida l moti on 摆线运动规律cyc loidal tooth profi le 摆线齿形cycl oidal-pin wh eel 摆线针轮cyli nder b lock b roachi ng mac hine 气缸体专用拉床cylin der bl ock si de bro aching machi ne 气缸体侧拉床cy linder borin g mach ine 镗缸机cyli nder c ompres sion g auge 气缸压力表c ylinde r honi ng mac hine 气缸珩磨机c ylinde r leak teste r 气缸漏气率检验仪c ylinde r perp endicu larity gauge气缸孔垂直检验仪cy linder press ure ga uge 气缸压力表cy linder score拉缸cyl indersticki ng 咬缸cylind ric pa ir 圆柱副cylind ricalcam 圆柱凸轮cyl indric al coo rdinat e mani pulato r 圆柱坐标操作器cy lindri cal gr inding外圆磨削c ylindr ical r oller圆柱滚子c ylindr ical r ollerbearin g 圆柱滚子轴承cyli ndrica l worm圆柱蜗杆cylind roid h elical-coilcompre ssionspring圆柱螺旋压缩弹簧cy lindro id hel ical-c oil ex tensio n spri ng 圆柱螺旋拉伸弹簧cylind roid h elical-coiltorsio n spri ng 圆柱螺旋扭转弹簧D.C tr action subst ation直流牵引变电站D.I. rinse纯水次da ily se vice 每日保养da mage 损坏dateof sta ndardimplem entati on 标准实施日期da ted re ferenc e (tostanda rds) 注明日期的引用(标准)d ay and night line昼夜线路da y andnightvehicl e 昼夜车dead p oint 死点deade ner 防声胶decan tation沉淀法d eceler ated r un 压点d ecentr alized trans portat ion 分散运输dec isionitems决议事项de coilin g unit开卷机de dendum齿根高。
A Multi-Agent System for Knowledge Delivery in a Software Engineering Environment
A Multi-Agent System for Knowledge Delivery in a Software EngineeringEnvironmentRicardo de Almeida Falbo, Juliana Pezzin, Mellyssa De Martins Schwambach Computer Science Department, Federal University of Espírito SantoFernando Ferrari Avenue, CEP 29060-900, Vitória - ES – Brazil falbo@inf.ufes.br, juliana_pezzin@, mellyssa_s@Abstract. Knowledge Management (KM) main goals are to promote growth, communication, preservation and sharing of knowledge. In KM, software agents can be used to connect organizations’ members to the knowledge available. Agents can help especially on knowledge filtering and proactive dissemination (knowledge delivery). When KM services are integrated into a Process centered Software Engineering Environment (PSEE), agents can act based on the defined process. They can search and proactively present knowledge items that might be relevant for the developer’s current task. This paper presents a multi-agent system developed for supporting knowledge delivery in ODE, a PSEE.1. IntroductionSoftware development is a knowledge intensive effort. In order to produce quality software, software organizations have recognized that it is essential to better use their organizational software engineering knowledge. In this context, knowledge has to be systematically collected, stored in a corporate memory, and shared across the organization. Knowledge Management (KM) systems facilitate creation, access and reuse of knowledge, and one of their main goals is to provide relevant knowledge to assist users in executing knowledge intensive tasks.In KM, software agents can be used to connect organizations’ members to the knowledge available [1]. Among other, agents can help on knowledge filtering and dissemination in a proactive manner.In the context of software development, KM can be used to manage the knowledge and experience generated during software processes. Although every software project is unique in some sense, similar experiences can help developers perform their activities. Reusing knowledge can prevent the repetition of past failures and guide the solution of recurrent problems [2].But, KM must be embedded in processes. Thus, in the case of software development, KM activities should be integrated into the software process [3]. Since Process-centered Software Engineering Environments (PSEEs) integrate tool support for software development with support for software process modeling and enactment, it is natural to integrate KM facilities into a PSEE [2, 4]. If a software process is defined, it is easier to implement proactive dissemination (knowledge delivery). In this case, based on the process, agents can act in a proactive manner, searching and offering relevant knowledge items for the developer’s current task.In this paper we present a multi-agent system (MAS) developed for delivering knowledge in a PSEE called ODE [5]. ODE has a KM infrastructure that offers services for knowledge creation, capture, retrieval, access, delivery, use, and preservation. The MAS aims to monitor developer’s (users of a PSEE) actions, and based on the software process activity being performed, it proactively presents potential relevant knowledge items.In section 2, we discuss briefly the synergy between KM, PSEEs and agents. Section 3 presents ODE and its KM infrastructure. This section also discusses some problems detected in the first initiatives of using agents to implement knowledge delivery in ODE. To deal with some of those problems, an infrastructure for agent development in ODE, called AgeODE, was built. This infrastructure is presented in section 4. Section 5 presents the MAS developed for proactively disseminating knowledge in ODE. Finally, in section 6 we discuss related works, and in section 7, we report our conclusions.2. KM, SEEs and Agents: A Synergy Nowadays, many software organizations have recognized that their main assets are their intellectual capital. In those organizations, staff turnover rates are high, and they face the challenge of sustaining the level of competence needed to compete in the software development market. Knowledge in software engineering is diverse and it grows rapidly. It involves knowledge about technologies, application domains, local policies and practices, among others. In this context, organizations are faced with the problem of providing employees quickly and efficiently with the knowledge required to successfully perform theirtasks. Also, we have to consider that most of the time, team members are making decisions based on their personal knowledge and experience, or knowledge gained using informal contacts. This process is inefficient for large organizations. In fact, software organizations have problems in identifying the content and location of the knowledge, and using it. Thus, an improved use of this knowledge is the main motivation for using Knowledge Management (KM) in software engineering [6, 4].Although KM has being applied in software engineering for more than ten years, only few implementations are found in current software organizations, due mainly to the lack of a systematic integration into the every-day developer’s activities [4]. In fact, to be effective, KM should be integrated into the software process [3]. Since Process-centered Software Engineering Environments (PSEEs) are software systems that assist in the modeling and automation through enactment of software processes [7], they seem to be the most promising platform for integrating KM into the software process. On the other hand, as the complexity of software processes increases, the use of knowledge during software development becomes essential to support software development activities. This claim represents the basis for integrating KM into PSEEs. This way, PSEEs and KM complement each other in order to assist software developers during the software process.Even when KM is integrated into a PSEE, we have to consider that we still have a problem: knowledge dissemination, especially as the volume of knowledge items grows. In general, we can distinguish between two approaches: knowledge access (passive KM systems) and knowledge delivery (active KM systems) [4, 8]. In a passive KM system, users have to explicitly query it for relevant knowledge items, whenever they have a need. This approach seems to be insufficient for software organizations, because users might be unaware that a relevant knowledge item exists, or they are often too busy to look for it, or they might be unable to query an information system appropriately, among others [4, 9]. In contrast, an active KM system distributes knowledge items to users whenever it is necessary for their work [4]. In fact, knowledge delivery complements the knowledge access approach. While knowledge access is a user-initiated search, knowledge delivery is a system-initiated presentation of knowledge items intended to be relevant to the user’s task [8].In the context of knowledge delivery, agents play an important role. As long as knowledge delivery concerns proactively presenting relevant knowledge that helps workers do their jobs [9], autonomous agents seem to be a very useful approach to deal with this problem. But, to do that, the KM system must be aware about the enactment of the software process. Then, the agents of the KM system should be immersed in a PSEE.In the next three sections, we discuss how we explore the synergy between PSEE, KM and agents in ODE, a PSEE.3. ODE: An Ontology-based SEEODE (O ntology-based software D evelopment E nvironment) [10] is a PSEE, which is being developed at the Software Engineering Laboratory of the Federal University of Espírito Santo (LabES). It is implemented using only free software, including Java, PostgreSQL and Linux.As its name indicates, ODE is developed based on some software engineering ontologies, and has several tools, such as tools supporting software process definition, resource allocation, estimation, risk analysis and object modeling, among others.To support KM in ODE, a KM infrastructure [5] was developed. As shown in Figure 1, the organizational memory (OM) is at the core of this infrastructure. Arranged around it, KM services are provided to support the main activities of a general KM process: creation and capture, retrieval and access, delivery, use, and maintenance of organizational knowledge.Figure 1 - ODE’s KM Infrastructure.ODE’s OM is composed of several knowledge repositories, which store different types of knowledge items that are relevant to software development, including artifacts, lessons learned, and message packages [5].The KM services are grouped in two categories: general services, which are actually incorporated to ODE as a whole, and tool specific services, which cannot be made available to the environment, because they need to be customized to a specific tool [10]. General services include [10]: (i) knowledge creation and capture - offers facilities to capture knowledge items (artifacts, discussion packages and lessons learned); (ii) knowledge retrievaland access - supports access to knowledge items through searching; (iii) knowledge use - deals with the feedback about knowledge items’ utility; and (iv) knowledge maintenance - concerns managing the knowledge repositories based on users’ feedback.Knowledge delivery is the tool specific service, because it is not possible to provide proactive knowledge dissemination without knowing details about the task being done. Thus, it is a service that must be implemented in each tool with KM support [10]. In ODE, agents are being used to implement this service.The initial proposal was to have agents monitoring the users’ actions when they were using specific tools. In this case, agents see what users are doing, and inform them about potential relevant knowledge items. In each tool with KM support, there might be an agent [10] responsible for knowledge delivery. This approach was implemented in some of ODE’s tools, namely: quality control [10], resource allocation, and risk management [11]. But, when developing those agents, some problems were detected, such as:P1.Each agent was built in a different way by each one of the developers. There was neither standardization nor uniformity in agent building, causing integration problems;P2.Each developer starts from the scratch in the arduous task of building agents. Therefore, there wasn’t any form of reuse;P3.Since the KM system has to track the software process activities, there is also the need for a generalagent monitoring the user. This agent should interactwith the other agents that act in the specific tools;P4.Some tools cover complex tasks, and we need a multi-agent system (MAS) acting in this tool, insteadof a single agent.Those problems can be summarized in one: agent integration. Agent integration has to take care about uniform ways of agents communicating, presenting and acting. To deal with agent integration, we built AgeODE, an infrastructure to support the development of agents embedded in ODE.4. AgeODE: ODE’s Infrastructure for Building AgentsAlthough there are several infrastructures supporting agent building, none of them is bound for building agents embedded in a SEE. Thus, to fulfill this gap in ODE, we developed AgeODE.AgeODE was defined as a layer over JAT Lite [12], using some of its classes, mainly to treat agent communication. Moreover, AgeODE: (i) defines some classes of agents that are potentially useful in the context of SEEs, (ii) defines how communication between agents occurs, and how agents access the objects in the SEE’s repository (that is, the objects that are part of their knowledge bases), and (iii) establishes how the agents’ internal architecture is.Agent communication in ODE follows the same client-server model defined in JAT Lite: client agents use the routing service offered by a server agent, called router. Thus, specializing the main agent classes of JAT Lite (RouterClientAction and RouterAction), there are two classes of AgeODE: ClientAg (Client Agent) and RouterAg (Router Agent), as shown in Figure 2.ClientAg gives to AgeODE’s client agents the same features of JAT Lite’s client agents, offering services to send and receive other agents’ messages. RouterAg works as a message router. This type of agent supplies services to name, address and locate agents in a multi-agent system. With a router, agents do not have to know other agents’ addresses nor how to communicate with them. These tasks are under the responsibility of the router that works as a communication bridge among the agents linked to it.The communication protocol used for agent communication in AgeODE is KQML (Knowledge Query and Manipulation Language) [13], since JAT Lite already adopts this language. KQML messages in AgeODE, as in JAT Lite, are implemented in the following way: each message is a structure that has several fields of the string type, one for each parameter of the message. To compose a KQML message, an agent should fill out the corresponding fields and send it. When receiving a message from another agent, the receiver agent interprets it according to the guidelines of KQML.Being a generic infrastructure for agent development, JAT Lite does not define other classes of agents; it only separates them into clients and server. However, in the context of SEEs, it is interesting to provide a basic set of agent classes including features that are useful in several situations in a SEE. Thus, four classes of client agents were proposed for AgeODE, as shown in Figure 2.Interface Agents (InterfaceAg) aim to offer to SEE’s users a friendlier interface, with proactive characteristics. An Interface Agent detects the users’ actions when using an interface of the environment (or of one of its tools), and based on that, they act.An User Agent (UserAg) uses the knowledge that it has about a certain user to support him on performing his tasks. It should be able to establish the user’s profile, looking for relevant features of the user. An user agent typically interacts with the user that it represents, and aids him to do tasks and to make decisions.Information Agents (InformationAg) are responsible for performing some system functionality. Its main task is to look for information and to accomplish tasks inside the SEE.Finally, the Coordinator Agent (CoordinatorAg) aims to coordinate the tasks being executed at a given moment by a set of agents in the SEE. For such, it should be able to distribute tasks to agents, to consolidate results of tasks, to retrieve information from one or more dispersed agents in the society, and to know the agents (and their specific capabilities/abilities) that are under its coordination domain.Figure 2 - Agent Classes in AgeODE.Since a concrete client agent for an ODE’s application can be of several types, there are also interfaces associated to the client agent types of AgeODE. This way, if an agent has features of both an Interface Agent and an User Agent, then it can be implemented, for example, inheriting from the InterfaceAg class and realizing the UserAgInterface interface.Finally, it is worthwhile to point out that, because an Interface Agent has to capture events from the SEE’s user interfaces (UI), we need to establish a way to agents monitor these UIs. In AgeODE, it is done by observer objects that are associated to interface agents. Since agents and the SEE are isolated computational processes, we decided to designate to observer objects the responsibility for monitoring UI events. Observers run in the SEE and intercept UI events, sending via sockets, messages to its corresponding Interface Agent that becomes aware about the user’s actions and acts properly. This way, observers act as the Interface Agent’s perception mechanism in the environment, capturing UI events in a way that the agents and the SEE are actually implemented as separated computational processes.Using AgeODE, two aspects of the agent integration problem (P1 and P2) listed in section 3 were treated. But, we also need to deal with the other two aspects (P3 and P4). To do that, we established a multi-agent system (MAS) basic architecture for knowledge delivery in ODE, which is discussed next.5. A MAS for Knowledge Delivery in ODEAs previously mentioned, in ODE, knowledge delivery is implemented using agents. Each tool with knowledge delivery facilities must have an agent or a MAS acting in it (P4). Also, there must be some general agents that are useful for all the tools (P3). To deal with these requirements, we proposed a MAS general architecture for knowledge delivery that consists of three general agents, besides the tool specific agents: the Personal Assistant Agent, the ODE’s Router Agent, and the Similar Project Identifier Agent.The Personal Assistant Agent (PersonalAssistantAg) accompanies an ODE’s user since the moment he accesses the environment until the moment he leaves it. This agent knows the software process, and the tools that can be used in each one of its activities. Moreover, it knows the user, and establishes his profile in the environment, allowing the user to access the tools that he was using the last time he used ODE. This agent also knows the specific agents of each tool, if they exist, and it is responsible for starting these agents when a tool is initiated. PersonalAssistantAg is implemented inheriting from AgeODE’s InterfaceAg class and realizing UserAgInterface and CoordinatorAgInterface.The ODE’s Router Agent (ODERouterAg) is responsible for agent communication in ODE. As discussed before, communication between agents in AgeODE requires a Router Agent. This is the role of ODERouterAg, which inherits from RouterAg.Finally, since in KM, in general, it is very important to identify similar past projects to present relevant knowledge items, there is an agent, called Similar Project Identifier Agent (SimilarProjectIdAg), which is responsible for identifying similar projects to a given one. It is a subtype of AgeODE’s InformationAg, and all agents that need to know about similar projects must interact with it.Beyond these three agents, each tool with knowledge delivery services has to have its own agent or MAS, according to the complexity of the task being supported. When a MAS is necessary, one of its agents must be a Coordinator Agent. This coordinator is responsible for coordinating the tool’s internal agents, and also for interacting with the PersonalAssistantAg and with the SimilarProjectIdAg.observerThis approach was followed to reengineer the knowledge delivery services of two ODE’s tools: human resource allocation and risk management, as shown in Figure 3. The first one has only one agent acting in it, since the task is relatively simple. The second has a MAS embedded in it, because it supports a more complex activity that, in fact, is decomposed into sub-activities with some complexity.Dissemination.In the Human Resource Allocation Tool, the Human Resource Allocation Agent (HRAllocationAg) supports the task of allocating human resource to project activities. This agent suggests the resources to be allocated for a specific activity, based on the project team, the competencies of each member and past allocations already done in similar past projects. Because it is responsible for aiding to perform a task, it is an InformationAg. But it has also to monitor the tool’s interface. Then, it realizes the UserAgInterface. The complexity involved in this task is not so high and, then, only an agent acts in this tool. This agent interacts with the PersonalAssistantAg, and since it uses similar past projects to give its suggestions, it also interacts with the SimilarProjectIdAg.To support knowledge delivery in risk management, there is a MAS composed of four agents, as shown in Figure 3. This MAS is embedded in GeRis, the ODE’s risk management tool [11]. GeRis supports a risk management process composed of the following activities [11]: (i) risk identification - attempts to establish risks to the project; (ii) risk analysis - concerns analyzing the identified risks, estimating probability of occurrence and impact; (iii) risk assessment - aims to rank the identified risks and to establish priorities; (iv) action planning - concerns planning mitigation and contingency actions for the managed risks; and (v) risk monitoring - consists of redoing the activities above as the project proceeds.In GeRis’ MAS, agents were designed to support specific activities of the risk management process. The Risk Identifier Agent (RiskIdAg) acts during risk identification. It suggests which risks should be identified for the project, based on similar past projects. The Risk Assessor Agent (RiskAssessorAg) acts during risk analysis and evaluation. It supports the assessment of risks impact and probability, and also supports the definition of which risks should be managed in the project. In both cases, this agent uses information of similar past projects. At last, the Action Adviser Agent (ActionAdviserAg) acts in action planning. It suggests contingency and mitigation actions to be taken to treat risks, also based on similar past projects. All these agents (RiskIdAg, RiskAssessorAg and ActionAdviserAg) are Information Agents.Since we have a MAS acting in risk management, we need a coordinator agent to coordinate their actions. This is the role of the Risk Manager Agent (RiskManagerAg), which is a CoordinatorAg. It is considered the main agent of the risk management tool and the only one in this tool that is known by the PersonalAssistantAg. When GeRis is initiated, the PersonalAssistantAg starts this agent. It is, in turn, responsible for starting the other risk management agents based on the activity of the risk management process that the user is performing. To do that, it has to monitor GeRis’ UI, and then, it also realizes the UserAgInterface. Moreover, since all the other agents need information about similar past project, the RiskManagerAg interacts with the SimilarProjectIdAg, capturing the past projects that are similar to the current being performed.The agent-based knowledge delivery approach applied in these two tools reflects the general approach defined to implement knowledge delivery in ODE. Every tool in which we want to implement knowledge delivery facilities needs to have an agent or a MAS associated to it. If the activity being supported by the tool is complex, a MAS is preferred. In this case, we always need to have a coordinator agent as the tool’s main agent, and the Personal Assistant Agent has only to know it.Finally, we should highlight that this approach is strongly supported by AgeODE. Each agent class is implemented as one of the agent types defined in it, and sometimes realizes another agent type interface.6. Related WorkThere are several works in the literature describing the use of agents for knowledge management (KM) (see [14]), and some approaches for integrating KM and PSEE, some of them exploring knowledge delivery. However, we did not find an approach exploring thesynergy between agents, KM and PSEE. Let’s examine some work done in integrating KM and PSEE.Santos et al. [15] explores the concept of Enterprise-Oriented SEE (EOSEE), matching KM with PSEE. As ODE, EOSEEs are based on ontologies. But Santos et al. say nothing about knowledge delivery.Holz [4] attacks the problem of delivering knowledge in software organizations by means of an approach that represents recurrent information needs associated with appropriate software process assets, and retrieves the information in a two-phase, interactive retrieval model. This approach was implemented in a system called PRIME, which was coupled with the MILOS PSEE. As in ODE, PRIME provides developers with relevant information. The main difference is that in PRIME, a list of pre-defined information needs is presented, and, from this list, developers can choose one, and trigger an automatic retrieval of information. In ODE, agents try to capture this information needs and notify the user that they have some useful knowledge items or suggestions. As in PRIME, ODE’s users are free to inspect or not the items suggested.7. ConclusionsFor the successful enactment of software processes, it is essential that developers are provided just-in-time with knowledge items that are relevant and useful for their current tasks [4]. Thus, knowledge delivery is becoming more and more important. In this paper, we presented an agent-based approach used to integrate knowledge delivery facilities into ODE, a Process-centered SEE. This approach consists of developing specific agents to deal with the information needs of activities of the software process. Also an infrastructure for building agents embedded in the environment, called AgeODE, was developed in order to deal with agent integration in ODE.Although ODE is being used in a software house, we do not perform a deep evaluation of the appropriateness of the support being provided by the agents yet. The initial results regarding the use of the tools with knowledge delivery support are promising. But we expect that, based on the users’ feedback, we can refine the agents’ behavior in order to better support those activities. AcknowledgmentsThis work was accomplished with the support of CNPq, an entity of the Brazilian Government reverted to scientific and technological development. References[1] O’Leary, D.E., “Enterprise Knowledge Management”, IEEEComputer, 54-61, March 1998.[2] A.C.C. Natali, R.A. Falbo, “Knowledge Management inSoftware Engineering Environments”, In: Proceedings ofthe XVI Brazilian Symposium on Software Engineering -SBES'2002, 238-253, Gramado, Brazil, October 2002.[3] S. Henninger, “Using Software Process to Support LearningSoftware Organizations”, in Proceedings of the Workshopon Learning Software Organizations – LSO’1999, 99-114,Kaiserslautern, Germany, June 1999.[4] H. Holz, Process-Based Knowledge Management Supportfor Software Engineering, Doctoral Dissertation, Universityof Kaiserslautern, dissertation.de Online-Press, 2003.[5] R.A. Falbo, D.O. Arantes, A.C.C. Natali, “IntegratingKnowledge Management and Groupware in a SoftwareDevelopment Environment”, in Proc. of the 5thInternational Conference on Practical Aspects of Knowledge Management, 94-105, Vienna, Austria, 2004. [6] I. Rus, M. Lindvall, “Knowledge Management in SoftwareEngineering”, IEEE Software, 26-38, May/June 2002.[7] S. Arbaoui, J.C. Derniame, F. Oquendo, H. Verjus, “AComparative Review of Process-Centered Software Engineering Environments”, Annals of Software Engineering 14, 311-340, 2002.[8] G. Fischer, J Ostwald, “Knowledge Management: Problems,Promises, Realities, and Challenges”, IEEE Intelligent Systems, 60-72, January/February 2001.[9] A. Abecker, et alli, “Towards a Technology forOrganizational Memories”, IEEE Intelligent Systems, 40-48, May/June 1998.[10] R.A. Falbo, A.C.C. Natali, P.G. Mian, G. Bertollo, F.B.Ruy, “ODE: Ontology-based software Development Environment”, in Proc. IX Argentine Congress on Computer Science, 1124-1135, La Plata, Argentina, 2003. [11] R.A. Falbo, F.B. Ruy, G. Bertollo, D.F. Togneri, “LearningHow to Manage Risks Using Organizational Knowledge”,Advances in Learning Software Organizations, Melnik G.and Holz, H. (Eds.): LNCS 3096, 7-18, 2004.[12] H. Jeon, C. Petrie, M.R. Cutkosky, “JATLite: A Java AgentInfrastructure with Message Routing”. IEEE Internet Computing, March /April 2000.[13] T. Finin, Y. Labrou, J. Mayfield, “KQML as an agentcommunication language”, Proceedings of the 3rdInternational Conference on Information and KnowledgeManagement (CIKM94), ACM Press, December 1994. [14] V. Dignum, “An Overview of Agents in KnowledgeManagement”, Institute of Information and Computing Sciences, Utrecht University, technical report UU-CS-2004-017, 2004.[15] G. Santos, K. Villela, L. Schnaider, A.R. Rocha, G.H.Travassos, “Building Ontology-based Tools for a SoftwareDevelopment Environment”, Advances in Learning Software Organizations, Melnik G. and Holz, H. (Eds.):LNCS 3096, 19-30, 2004.。
基于Multi—Agent的总承包工程项目供应链信息协同机制研究
关 键 词 :总承 包 工程 ;Mu i aet系统 ; 黑板 模 型 ;协 同机 制 l — gn t 中图分类号 :T 33 :F4 P9 72 文献标 识码 :A 文章编号 :10 00—79 (0 2 7— 16— 3 6 5 2 1 )1 0 4 0
I or a i n Sy r e i e ha s fGe r lCo r ci n tuc i n nf m to ne g tc M c nim o ne a nt a tng Co s r to
图 1 黑 板 模 型 示 意 图
“ 板模 型 ” 是 一 种典 型而 流 行 的专 家 系 统 结 黑 构 模 式 ,最 早 由美 国 C rei an g e—Me o l n大 学 开 发 的 l HE R A A S Y—U系统 中创立 ,后 来 被 许 多 系 统 所 效仿 和采 用 。黑板 模 型 由知 识 源 、黑 板 和 监 控 机 制 三个 基 本 部分 构 成 ,如 图 1所 示 _ 。黑 板 是 共 享 的 问题 9 求 解 工作 空 间 ,包 含存 储 数 据 、传 递 信 息 与处 理 方 法 的动 态 数 据 库 。一 般 按 照 层 次 结 构 的 方 式 组 织 , 在 问题 求 解 过 程 中 ,知 识 源 之 间 的交 互 与 通 讯 通 过 黑 板 进行 。所 谓 知识 源是 指 一 个 知 识 模 块 。 黑 板 结 构 中具 有 多 个 知 识 源 ,每 一 知 识 源 由条 件 部 分 和 动 作 部分 组 成 ,可 以完 成 某 些 特定 的解 题 功 能 。条 件 旦满 足 ,知 识 源 就 会 触 发 ,其 动 作 部 分 增 加 或 修 改 黑板 的记 录 。 由监 督 程 序 和 调 度 程 序 组 成 的监 控 机 制是 黑板 模 型求 解 问题 的 推理 机 构 。监 督 程 序 时 刻 注视着 黑 板 状 态 ,根 据 黑 板 信 息 的状 态 变 化 ,监 督程 序采 用 某 种 策 略选 择 合 适 的知 识 源 ,将 其 条 件 部分 放人 调 度 队列 ,随 后 ,若 条 件 部 分 与 黑 板 状 态 匹 配成 功 ,则 将 其 动 作 部 分 放 人 调 度 队列 。而 动 作
Experience paper Implementing a Multi-Agent Architecture for Cooperative Software Engineeri
Experience paper:Implementing a Multi-Agent Architecturefor Cooperative Software EngineeringAlf Inge WangJanuary17,2000AbstractThe paper describes experiences we have earned from implementing a multi-agent architecture used to support cooperative software engineering.Before start-ing to implement a multi-agent architecture,important decisions and considerationsmust be taken into account.You have to decide how to provide efficient inter-agentcommunication support,what language should the agents talk,should the agents bestationary or mobile,and what technology should be used to build the architecture.This paper describes how we implemented our multi-agent system,and the experi-ences we gained from building it.Keywords:Cooperative Software Engineering,Agents,Multi-agent system,KQML, XML,Aglets,JATLite,CORBA.1IntroductionThe last couple of years,distributed computing and agent technology have become more and more popular.When researchers are developing prototypes,the choice of tech-nologies and how to use different technologies is getting more and more complicated. This paper describes experiences from designing and implementing a Multi-Agent Sys-tem(MAS)that provides support for Cooperative Software Engineering(CSE).CSE is a research area where focus is on how to support participants in cooperative processes working in distributed organisations.In our MAS,agents are used to provide support for cooperative processes as coordination and negotiation.The agents communicate through a defined language,and the MAS offers the infrastructure for the agents to talk to each other as well as to users.Before we started to implement a multi-agent system,a theoretical study on distributed architectures and agent technologies was conducted by JoarØyen,a diploma student at the Department of Computer Science at the Norwegian University of Science and Tech-nology.The outcome of this study was a report[18]that gave us guidelines for building a multi-agent architecture.We have used these guidelines as a starting point for our imple-mentation.We have been searching for related work that focuses on experiences from implementing multi-agent system using different types of technology.It seams like there is nothing or at least very little published covering these issues.There are a lot of publications on high-level descriptions of multi-agent architectures,such as[3,9,2],but details about technology used or experiences from implementing these systems are left out.We have used the multi-agent paradigm to implement our system,but there are alter-native approaches.JavaSpaces[12]based on Java RMI and JINI,recently introduced by SUN,provide an alternative approach for exchanging distributed objects.JavaSpaces technology is a unified mechanism for dynamic communication,coordination,and shar-ing of objects between Java technology-based network resources like clients and servers.A JavaSpace is a virtual space between providers and requesters of network resources or objects.This allows participants in a distributed solution to exchange tasks,requests, and information in the form of Java technology-based objects.There are four primary operations you can invoke on a JavaSpace:1.write Write an entry into a JavaSpace2.read Read an entry from a JavaSpace that matches some specified parameters3.take Read an entry from a JavaSpace that matches some specified parameters,andremove it from this space4.notify Notify a specified object when entries that match some specified parametersare written into this JavaSpaceAn entry is in JavaSpace terminology a typed group of objects,expressed in a class for the Java platform.JavaSpace technology offers much of the same functionality as multi-agent systems as movement of objects,message handling,sharing of objects,etc.Maybe the most useful functionality in this respect,is the support for searching for objects with certain properties.The rest of the paper is organised as following.Section2briefly describes the architecture we wanted to build and what components the architecture consists of.A scenario is also presented to show how the prototype can be used.Section3outlines the requirements to the technology to be used to implement our architecture.Section4describes technolog-ical guidelines to be followed when implementing a multi-agent architecture.Section5, describes experiences we have achieved from implementing a multi-agent architecture in two versions DIAS I and DIAS II.Section6concludes the paper.2CAGIS Multi-Agent Architecture for Cooperative Soft-ware EngineeringThis section is a short introduction to the CAGIS1Multi-Agent Architecture for Coop-erative Software Engineering.This is an architecture that uses agents to represent co-operative participants in a cooperative effort and supports coordination,negotiation and communication of agents.A more detailed description of this architecture can be found in[16].2.1CAGIS Multi-Agent Architecture componentsSoftware agents are useful for supporting cooperative activities,since software agents can act as human agents on behalf of humans.Our architecture uses this property of software agents to model data-and controlflow,which can be used to implement a self-optimising or self-improving process.The main components in this architecture are agents,workspaces,Agent Meeting Place(AMP)and repositories:Agent A piece of autonomous software created by and acting on behalf of a user.The agent is set up to achieve a modest goal,with the characteristics of autonomy, interaction,reactivity to the environment,as well as pro-activeness.Agents are grouped into three main groups.Thefirst group,System agents,are used to execute administrative tasks of the multi-agent architecture.This can be to monitor human and software agent activity,deal with repositories and managing AMPs(see the third point).The second group,Local agents,assist users in work within local workspaces.The last and most important agent group,Interaction agents,help users in their cooperative work(coordination,negotiation,communication).Note that mediation agents are also provided to suggest solutions for locked negotiation processes based on prior experiences.Workspace(WS)A temporary container for relevant data in a suitable format, together with the processing tools.Workspaces can be private as well as shared.Agent Meeting Place(AMP)AMPs are where software agents meet and interact.AMPs are built on underlying communication mechanisms,but provide agents with more intelligent means to facilitate their interaction.An AMP can also work as a market place where agents can“trade”information and services.The main purpose of the AMP is to facilitate cooperative support for software agents.Repository A persistent storage of data that can be local,global or distributed.Repositories can be accessed either by tools or by agents.One specific repository is very important in the CAGIS multi-agent architecture;the experience base.An experience base can be used as the community memory,and a mediator agent can utilise prior stored experiences to solve negotiation conflicts.Next subsection will give an example of how the CAGIS multi-agent architecture can be used.2.2Example of a multi-agent architectureFigure1shows how the CAGIS multi-agent architecture can be used in a simplified soft-ware development scenario.This example describes a coordinated software development process involving multiple departments of an organisation.Each department is repre-sented by a workspace2,and an AMP is used as a place where the departments can coop-erate through software agents.Figure1:An example of an agent architecture applicationThis scenario demonstrates how it is possible to support a situation where limited human resources in the development department cause trouble for a Maintenance planning de-partment and an Update/release planning department.Both departments are competing for human resources in the Development department,because the two departments want to serve request and complaints from customers,and to improve the software product respectively.If a negotiation process between for instance Maintenance planning and Update/release planning takes to much time,the mediator agent(shown infigure1)will break into the negotiation process to make an agreement.The mediator agent can base its judgement on experiences from prior projects(e.g.,we lost a lost the biggest customer because of too many bugs in the product last year),on company guidelines or through interaction with the company’s management.In the suggested solution,workspaces are places where humans and agents communicate and share information and tools.AMPs are also places,but they are indented to be virtual markets where agents meet and interact to facilitate cooperative support for applications and users.In addition,repositories are special places where information and knowledge can be permanently stored and later retrieved.3Requirements to the technology to be usedThis section will outline the implementation requirements for the multi-agent architecture described in section2.These are the requirements for a prototype of the system and not requirements for a full-fledged system.The requirements given in this section should be quite general,and should also be applicable to most multi-agent systems supporting mobile agents.3.1General requirementsThe overall goal of the proposed CAGIS multi-agent architecture was to beflexible and tailorable to many different needs.The main requirement is therefore an open architecture that can evolve together with the real world it is supposed to support.Since a prototype of the architecture will be built in a short period of time,it is important that the cost of the implementation is kept at a minimum,that is free and proven technolo-gies should be used whenever appropriate.This means that the solution must be feasible today.Performance is not important for this prototype architecture.3.2System infrastructureThe organisations that the CAGIS multi-agent systems are intended to support,are in-herently distributed,a heterogeneous environment,and are continually changing.The infrastructure that is going to be the foundation of the system must thus define an open,flexible,and malleable environment,which encompasses hardware platforms,operating systems and networks.A run-time environment to implement workspaces and AMPs must be provided by the infrastructure.Such an environment must provide a number of services to its inhabitants. Name registration and service advertising allows agents to be aware about each other’s properties.In addition,event mechanisms will allow monitoring agents to register their interest in specific events.3.3Agent implementation and configurationAgain,an open multi-platform solution is required.This includes the ability to ship binary executables between different platforms,so that the agents can be mobile.Agents are going to be built by experts,but it must be possible to tailor agents to the specific needs of the different users.Some sort of agent scripting or agent configuration is therefore required to let usersfine-tune their system.3.4Agent communicationTo be able for agents to communicate,we need a format to represent information,as well as some conversation policies on how agents communicate.The architecture also requires facilities for users to communicate with agents,and agents access to external entities like repositories,workspaces,tools,AMPs etc..The basic communication mechanisms(streams,messages,events,etc.)are provided by the underlying system infrastructure,and the communication mechanisms uses these ser-vices to provide more high-level facilities for inter-agent communication.First,agents must be able to communicate with each other in a language that all involved parties un-derstand(not only syntax of the language,but also semantics and pragmatics of the con-versation).Second,agents must collaborate with each other to reach common goals.This collaboration is controlled by process models that agents must interpret.Third,agents also need mechanisms for coordination and negotiation to handle many common situa-tions.Coordination mechanisms can be used to control the concurrency between multiple agents and to exchange instructions that tell agents what to do.The system should provide a negotiation model with a defined context and multiple negotiation strategies.Agents are thus given the possibility tofind out what is negotiated for and to select an appropriate strategy to use.3.5Knowledge sharingCommunication mechanisms like coordination and negotiation operate in a cooperative context and do therefore need to share common goals.The common goals represent some form of group awareness or community memory,and are contained in a work context that consists of information resources and control structures.Common information can be stored in three different places in the architecture:1.In repositories The main part of knowledge is contained in repositories.2.In AMPs Meta-information about agents are contained in the AMPs,but the actualinformation is contained inside the agents themselves.3.In agents Agents may be used as information carriers of process information andresults.The most important common requirement is however that information is stored in a for-mally defined format that makes it accessible by agents.3.6Design proposal for the prototypeFigure 2shows an overall design proposal for how the prototype should be structured.We have used a multi-tier architecture based on the agent,places,and things paradigm.The lower part of the figure (component infrastructure and agent infrastructure)will define a foundation,based on available standard implementations,which will provide function-ality and services to the prototype of the multi-agent architecture.In the shown archi-tecture,the facilitators are central components both in workspace and AMP.Facilitators simplify the implementation of agent communication and the coordinator,moderator,and monitor-components.The reason for this is that the interaction between various entities can be controlled from one central point.The drawback with this solution is of course that the facilitators might become bottlenecks of the system.M u l t i −a g e n t a r c h i t e c t u r e A g e n t i n f r a s t r u c t u r ee Java and Java IDL[13]as the component infrastructure because(1)Javaprovides code portability,garbage collection,object-orientation,(2)Java is a broadly accepted standard,(3)Free implementation is available now,(4)Many agent-related technologies are closely associated to Java.e the facilitators in the design architecture to implement the trader,event,lifecycle,and relationship services as needed.By choosing Java IDL for the component infrastructure,we have to use this CORBA implementation for the rest of the system as well.This gives us a major drawback,because Java IDL only provides the naming service of the CORBA services shown infigure2.Since the design shown infigure2has several services that are not supported in Java IDL, these services must be developed in Java if required.These services can be replaces, if Java IDL will offer them in the future.e Aglets to implement the mobility support for the agents.Mobility supportshould ideally be implemented by OMG’s Mobile Agent Facility,but due to the fact that this standard is under construction,Aglets will be recommended instead3.Aglets[10,14,11]are Java objects,developed at IBM’s Research Laboratory that can move from one host on a computer network to another.Aglets servers provide distribution of aglets to aglets viewers.The viewers are the users graphical interface to the aglets.From this interface the users can create,activate,dispatch,and retract agents.Using Aglets should provide an easy transition to the Mobile Agent Facility later, because Aglets are one technology that is used as a basis for the Mobile Agent Facility.Another advantage with the Aglets-technology is that user-interfaces for controlling the operation of the agents are provided as a part of the technology.e KQML and JATLite for agent communication and as a foundation for im-plementing workspaces and AMP.The Java Agent Template Lite(JATLite)[8] is a technology that provides a Java implementation that lets agents communicate with each other,possibly by using Knowledge Query and Manipulation Language (KQML).We recommend using KQML[4]as the agent communication language, because it is an extensible standard that has many of the advantageous features that an agent communication language should have.JATLite is also a technology that can be used to implement workspaces and AMPs,because each JATLite-router defines an environment that facilitate the administration of and communication be-tween a group of related agents.e XML to represent information and work-products in the architecture.eX-tensible Markup Language(XML)[7]does not put any restrictions on the format of the information is shall represent.Also tools to support XML are available in Java. How the recommended technologies are used to implement the various parts of the design architecture is illustrated in3.Figure3:Implementation of the design architectureIt must be noted thatfigure3only loosely denoted where the various technologies should be used,and more experience is needed to decide exactly which of the technologies that are best in the specific situations.5Experiences from implementing a MAS based on the guidelinesThe implementation of our multi-agent architecture is named Distributed Intelligent Agent System(DIAS).We have implemented two versions DIAS namely DIAS I and DIAS II. Both implementations were developed by last year students at the Dept.of Computer and Information Science at the Norwegian University of Science and Technology.This section describes the work they have done and experiences from this work.5.1DIAS ISpring1999,four students used about1000hours to make thefirst version of the im-plementation of our multi-agent architecture[15].These students were skilled in Java-programming and XML.However,the area of programming agents and implementing a multi-agent system was totally new to them.DIAS I used the requirements to technol-ogy(described in section3)and technological guidelines(described in section4)as a starting-point for the prototype.5.1.1Choice of technologyWe discovered that not everything from section3and4could be used directly when implementing the system.Thefirst problem we encountered was how to combine JATLite and Aglets into one implementation.JATLite was well suited to implement facilitators for workspaces,AMPs and generally for agent communication.Unfortunately,JATLite does not support mobile agents.Since we wanted to have support for mobile agents,we needed tofind a way of making JATLite mobile.The Aglets framework was suggested to be used to support mobility,but then we had to integrate JATLite with Aglets.We found that this was not an easy task.We chose to use Aglets as the main implementing standard for agents and agent communication,and just to use parts of the KQML layer in JATLite. This solution makes it possible to use mobile agents in all parts of the architecture.It was possible to use parts of JATLite because JATLite is open-source.The parts missing in Aglets compared to JATLite was quite easy to implement using the functionality found in Aglets.Another reason for using Aglets was that the documentation was better than JATLite.The requirements to technology and technology guidelines suggested that we should use CORBA(Java IDL)as the communication bus in our architecture.When we worked with thefirst DIAS-project,the mobility support over the ORB was not possible because the standardisation Mobile Agent System Interoperability Facility(MASIF)was not approved yet by the OMG.Since we wanted to keep the mobility support for agents,Aglets was chosen for communication over TCP/IP.Aglets was chosen because Aglets was one of the agent languages that MASIF is based on.This should make the transition to MASIF easier on a later stage.KQML was recommended as communication language for our architecture.Since KQML is the most used standard for agent communication,we chose to use KQML for our imple-mentation.Parts of the KQML layer in JATLite were used to give the architecture KQML support.Since the content in a KQML message can be whatever wanted,the designer is free to choose the representation format of the content of a KQML message.XML is a good choice when the knowledge is going to be stored in a web-server or in afile-system.It is also possible to use another format for knowledge representation,but for our prototype we chose XML.XML has also become a well know standard for information representation.5.1.2Experiences of useAlthough thefirst version of DIAS was not very advanced,the architecture was sufficient to demonstrate parts of the scenario described in section2.2.Negotiation agents for the groups Maintenance planning and Update/release planning used to negotiate about lim-ited human resources were implemented.The experiment showed that such negotiation processes were supported in our architecture through negotiation agents and an Agent Meeting Place.The agents were able to move between workspaces and the AMP,and they were able to communicate using KQML as a communication language.The follow-ing KQML performatives were using in our agent-language(these performatives were sufficient at least to demonstrate our scenario):ask-if Sender wants to know if the sentence is in the Virtual Knowledge Base (VKB)of the receiver.insert The sender asks the receiver to add content to its VKB.register The sender can deliver performatives to some named agents.tell The sentence is in the VKG of the sender.unregister A deny of a register performative.untell The sentence is not in the VKG of the sender.XML was used to represent the contents of KQML-message.We found some shortcomings with the DIAS I implementation.First,it was rather hard to implement new agents.The reason for this was that in order to implement your own agent,you had to know how the Aglets framework works.The DIAS I implementation did not manage to provide a high-level agent-API,so the agent-programmer did not need not be concerned about the low-level technological issues in Aglets.Because of this,it was very hard to use the architecture to create support for various scenarios.Second, the implementation was lacking of high-level support for inter-agent communication and inter-AMP communication.The latter meant that to support several AMPs,the program-mer of the agents had to hard-code how to deal with the different AMPs and agents.This was not desirable.Third,the DIAS I implementation did not provide support for inte-grating the multi-agent system with other systems.Because of the shortcomings described above,we decided to continue with a DIAS II project(see next section)5.2DIAS IIAfterfinishing implementing DIAS I,two students continued the DIAS project as diploma thesis’s,and spent about1000hours to extend the original implementation to DIAS II[6]. The DIAS II project focused on making the original DIAS implementation better.The fol-lowing problems were addressed:agent security,integration with other systems through CORBA,and making a higher-level agent API.5.2.1Choice of technologyIn thefirst version of the DIAS implementation(developed in Java JDK1.1),agent secu-rity was not addressed at all.In JDK1.2,the enhanced security model forfine-grained resource access has been added.Because of this,JDK1.2would be a natural choice for DIAS II.Unfortunately,the Aglet Software Development Kit,ASDK1.1does not sup-port JDK1.2.This meant that we had to abandon the new security features in JDK1.2if we would like to keep Aglets to support mobility.By comparison,we found that ASDK actually had almost the same security features as in JDK1.2included,so we chose to use JDK1.1.Since we wanted to add possibility to integrate our multi-agent system with other systems, CORBA support was needed for our architecture.One way of giving our architecture CORBA support was to change Aglets with other mobile agent implementations support-ing CORBA.Both Odyssey[17]and V oyager[5]supports CORBA had provide interest-ing functionality for distributed systems and interoperability between different commu-nication facilities.Another alternative was to continue using Aglets and to implement CORBA support into it.We chose to do this,because it required less work and the Aglets implementation have better support for security.OrbixWeb[1]was used as a CORBA implementation,because of its functionality and availability at the University.External systems can now communicate with our multi-agent systems in the Agent Meeting Places with CORBA support.The CORBA support is implemented according to OMG’s Mobile Agent System Interoperability Facility(MASIF).MASIF is a standard to make it possi-ble for interoperability between various multi agent systems,and have four areas that are standardised:Agent management,Agent transfer,Agent and agent system names,and Agent system type and location syntax.The rest of the implementation of DIAS II uses the same technology as in DIAS I.5.2.2Experiences of useThe agent-API for DIAS II is totally different compared to thefirst version of DIAS.For thefirst version,you had to write low-level Aglets-code to make an agent.In DIAS II, you don’t have to know that the architectures use Aglets technology at all.No knowledge of Aglets is needed,and the following areas are covered with high-level methods in the agent API:Create/kill agent These methods are called when creating new agents or when you want to kill an agent.Agents will be moved back to where they were created before it will be killed.Note that agents can also be cloned.Message handling Methods for sending/receiving KQML messages to/from other agents.The architecture will take care of sending messages to the correct receiver.The sender will always receive a acknowledgement when the receiver has received the message.Register/unregister agents These methods are used to register/unregister agents in AMPs.Move agents Methods for moving an agent to another AMP.If an agent cannot find what he is looking for in an AMP,the AMP can suggest the agent to move to another AMP.Information queries Various methods offer the agents the possibility to ask AMPs for information about what agents are connected,what type of ontology is used, what properties have other agents etc.Another major change of the architecture is how agents communicate,and how AMPs can communicate.In DIAS I you had to explicitly state how the communication betweenagents should be performed.In DIAS II,the system takes care of looking for agents, using advanced communication agents.Agents are located according to agent ID number, AMPs ID number or/and ontology of AMPs.If for instance neither the agent ID number or AMPs ID number is know,the ontology is used tofind a matching agent.6ConclusionImplementing a multi-agent system is not an easy task.The technologies available,makes it easier to build robust systems in rather short time.It is however important to know what technologies are available and what to choose before starting building a multi-agent system.It is also important to know what technologies are possible to combine,before starting on the work.Our experience with building a multi-agent system is that you should use the standards available when ing OMG’s MASIF standard will make it possible for a system to communicate with other multi-agent systems as well to other applications through CORBA.KQML is the most widely used agent communication lan-guage used,and makes it possible for agents on different systems to communicate.XML offers a convenient information wrapping that is useful for different purposes in an multi-agent system,as information/knowledge representation,small repositories ing Java as the programming language,makes it possible for the system to run in an heterogeneous environment,and most agent standard implementations as well as XML tools are imple-mented in Java as well.We are now using our CAGIS multi-agent architecture for cooperative software engineer-ing to make support for various scenarios.In doing this,we want to see how general our architecture is and recognise the shortcomings of our architecture.We are also consider-ing technology as for instance JavaSpaces to implement DIAS III.7AcknowledgementWe will give a big thank to JoarØyen who has provided us with in-depth information about distributed technology in theory and in practise.We would also like to thank Geir Presteg˚a rd,Snorre Brandstadmoen,Anders Aas Hanssen,and B˚a rd Smidsrød Nymoen for implementing DIAS I.Anders Aas Hanssen and B˚a rd Smidsrød Nymoen were also responsible for the DIAS II implementation.References[1]Sean Baker.CORBA Distributed Objects-Using Orbix.ACM press and Addision-Wesley,1997.ISBN0-201-92475-7.[2]Frances Brazier,Pascal van Eck,and Jan Treur.Modelling Competitive Co-operation of Agents in a Compositional Multi-Agent Framework.International。
multi-agent consensus理解
multi-agent consensus理解Multi-agent consensus refers to the process of a group of autonomous agents working together to reach an agreement or a common decision. It involves the exchange of information, coordination, and cooperation among agents to achieve a desired outcome.In multi-agent consensus, each agent has its own objective and knowledge about the environment. They make decisions based on their local information and interact with other agents to achieve a consensus. The goal is to reach an agreement that is acceptable to all agents, even if their individual preferences may differ.There are various algorithms and protocols that can be used for multi-agent consensus. One commonly used algorithm is the consensus algorithm, which aims to minimize the difference between the agents' states or decisions. This means that the agents adjust their states or decisions based on the information received from other agents until a consensus is reached.The process of multi-agent consensus can be challenging due to the complex nature of interactions and the potential for conflicting objectives. Agents may have different priorities, constraints, or preferences, which can lead to disagreements. In such cases, negotiation and bargaining techniques can be employed to find a compromise or a middle ground.Multi-agent consensus has applications in various domains, including robotics, distributed control systems, and social networks. In robotics, for example, multiple robots may need to cooperate to perform tasks like exploration or mapping. Consensus algorithms help the robots to coordinate their actions and make collective decisions.In distributed control systems, multi-agent consensus enables efficient and reliable operation of large-scale systems with multiple interconnected components. It ensures that all components are synchronized and working towards a common goal. This is particularly important in critical infrastructures like smart grids or transportation networks.In social networks, multi-agent consensus can facilitate decision-making processes among a group of individuals with different preferences or opinions. By reaching a consensus, a group can make a collective decision that reflects the majority opinion or the best outcome for everyone involved.In conclusion, multi-agent consensus is a process where autonomous agents work together to reach an agreement or a common decision. It involves exchanging information, coordinating actions, and finding compromises to achieve a consensus. This concept has applications in various domains and can help in solving complex problems that require the cooperation of multiple agents.。
An Architecture for Multi-Agent COTS Software Integration Systems
An Architecture for Multi-Agent COTS Software Integration SystemsGuo-Ming Fang, Jim-Min Lin*, Zeng-Wei Hong, and Kai-Yi ChinDepartment of Information Engineering and Computer Science, Feng Chia UniversityTaichung City 40724, Taiwan*jimmy@.twReceived 3January 2007; Revised 25 March 2007; Accepted 31March 2007 mercial Off-The-Shelf (COTS) software products are increasingly used as softwarecomponents in large-scale systems. We had proposed an approach for distributed COTS software integrationby using the concepts of multi-agent system and distributed scripting mechanism. To describe the experiencein the COTS software integration and facilitate the reuse of the software integration procedure, this paperpresents a multi-agent architecture for the COTS software integration systems. This architecture is of a three-layered structure and is described with the Agent UML (AUML). Since the interaction and internalprocessing of agents is clearly described in the proposed architecture, programmers may have a guide to builda software system and implement the protocols and behaviors of agents according to the three-layereddescription. To illustrate the use of the proposed architecture, an example system is also experimented in ourstudy.Keywords:COTS Software Reuse/Integration, Agent UML (AUML), Multi-Agent Distributed ScriptingSystem (MADSS), Software Architecture1 IntroductionSoftware applications are increasingly built with distributed object-oriented technique, such as OMG CORBA [1], Microsoft DCOM [2], and J2EE [3]. These middleware systems [4] provide well-designed component/object models, and well integration mechanisms supporting interfaces to link components/objects together. In addition to the features of an object-oriented system, a multi-agent system could have several advantages, like:1.A software agent has well social ability [5]. An agent could communicate with human users and accept thedelegated tasks. Furthermore, it is also a communicative program that interacts with other programs/agents in speech-acts [6], which means the communication likes human’s talk. A complex task could be completed through the cooperation of software agents.2.A software agent could have mobility. This feature enables a task to be completed remotely. Moreover,some studies [7] have shown that mobile agents could reduce the network traffic in some applications.3.A software agent with intelligent abilities is potentially suitable for handling sophisticated distributedcomputations. Some studies [8] indicated that large-scale systems are becoming more and more complex.The systems might consist of lots of software components that interact with others. Object-oriented software development is not the only efficient paradigm for constructing a large-scale software system.Software agents are actually software objects having autonomy and intelligence. Software agents could have better interaction ability than traditional objects and thus suit for building distributed software systems. Our previous study proposed a multi-agent system, named as Multi-Agent Distributed Scripting System (MADSS) [9], to integrating software applications into a distributed software system. MADSS is aimed to achieve the goal of integrating COTS [10-13] software products or legacy software systems under the distributed heterogeneous environment through the cooperation and interaction of multiple agents. The social ability of agents provides the communication among agents. The mobile agent technology is used to support the remote access. A scripting language was also proposed to help the users to control the behaviors of agents.This paper is a continued work of MADSS project. MADSS did achieve the goal of COTS software integration with multi-agent paradigm, but have only less discussion on how software integration could be achieved by agents’ cooperation. Therefore, the purpose of this paper is to further identify and describe the multi-agent architecture of MADSS. This multi-agent architecture is in a form of 3-layers approach and is represented using AUML (Agent Unified Modeling Language) [14].* Correspondence authorJournal of Computers Vol.18, No.1, April 2007The rest of this paper is organized as follows. We will briefly describe MADSS project in Section 2. Section 3 will describe the multi-agent architecture of MADSS, which is based on design considerations from the responsibilities of agents and the interactions between agents. Section 4 gives a case study as our demonstration and a guide of using the architecture. Finally, we conclude this research and describe our future works in Section 5.2 MADSS projectMADSS is basically a distributed software integration system in which software were integrated through agents’ cooperation. An MADSS script language was developed as an interface through which a software engineer could drive an agent’s behavior. By using this scripting language, a software integrator could perform an application project rapidly through the typeless and command-level attributes [15, 16].Client Side Server Side Multi-agentUser interface...Fig. 1. Conceptual Model of MADSSMADSS is a typical 3-tier distributed system (see Fig. 1). At the server-side, there exists several distributed wrapped COTS software applications. Through the software wrapper, each COTS software application could expose its services for agent’s call. A service agent is designated to maintain the interfaces of the wrapped COTS software applications, which reside on the same host. Whenever a new wrapped software application is integrated into the host, the service agent will be responsible for advertising the new services on the facilitator. A facilitator is actually a software agent responsible for interoperating MADSS agents.At the client side, MADSS uses a client software agent to support a user interface to interact with the user and to receive jobs written in MADSS scripting language. The client agent generates one or more mobile slave agents to perform the integration job. During the execution phase, a slave agent will communicate with a service agent via KQML (Knowledge Query and Manipulation Language) [17] messages. A KQML message encapsulates input parameters to a service agent and then translates them into proper data types of the service agent. Finally, service agent requests the corresponding software applications to execute thisjob. If a host is overloaded,the service agent would be responsible for suggesting the slave agent to move to other route. MADSS project overcame two critical issues in agent-based COTS software integration: 1. The black-box-like COTS software applications under MS-Windows and UNIX-like systems were successfully wrapped as programmable and reusable software components [18-20].2. MADSS successfully demonstrates the feasibility of integrating software by mobile agents.Fig. 2. Wrapper for Reengineering COTS Software ApplicationsFang et al: An Architecture for Multi-Agent COTS Software Integration Systems Reengineering COTS software such as MS-Windows applications may suffer from the seldom-available source code. Software wrapper (in Fig. 2) in MADSS uses I/O interception and redirection to simulate a COTS application’s a sequence of operations, such as command or key events. Therefore, software wrapper could operate a MS-Windows application by sending keyboard events to it or passing input data to the Windows clipboard space. The result could also be captured by clipboard space or other output channels. In Fig. 3, the example program code (a), (b) and (c) represents respectively Win APIs for simulating key events, getting and setting the data in clipboard space. To input key events, the wrapper program must let MS-Windows application get the focus first by using FindWindow() and SetFocus(). After setting the focus to the application, Wrapper program adapted keybd_event() to send keyboard events by assigning the virtual code and scan code of keys. Besides, Wrapper program uses OpenClipboard() and CloseClipboard() to handle the clipboard space in MS-Windows. With the use of GetClipboardData() and SetClipboardData(), Wrapper program can read and write the clipboard space. Moreover, to migrate a MS-Windows application to an agent framework, this MS-Windows application was encapsulated a specific interface the agent could access.Fig. 3. Example Code in Wrapper of MS-Windows ApplicationsMADSS has been successfully implemented by referring to the concept of software integration through mobile agents. However, more detail description to this experimental multi-agent system is needed to formally represent the design experience. This study will describe the interaction between agents and each agent’s internal state uses AUML in next section.3 Multi-Agent Architecture for MADSSIn order to define the agents and interactions between agents in detail, a three-layer approach of AUML proposed by Odell is adopted as the description language in the proposed multi-agent architecture. At the first layer, the overall interaction protocols of the multi-agent architecture in MADSS are defined as reusable packages. The interactions among agents in protocols are described at the second layer. Finally, the internal agent processing are represented at the third layer.According to the conceptual model of MADSS, three interaction protocols between agents could be defined. These interaction protocols are also indicated in the first layer description (see Fig. 4).1.Delegating package. The Delegating package expresses a protocol between a client agent, Facilitator andslave agent. This protocol describes how a client agent delegates tasks to a slave agent and handle the results from the slave agent.Journal of Computers Vol.18, No.1, April 20072.Publishing package. The Publishing package expresses a protocol between a service agent and theFacilitator. This protocol describes how a service agent publishes the information of services supported bya wrapped COTS software to Facilitator.3.Binding package. The Binding package expresses a protocol between a slave agent and service agents. Thisprotocol describes how a slave agent requests for service to a service agent.The detail interactions among agents in the first layer description will be represented in the second layer description. Here, the Delegating, Publishing and Binding interaction protocols are expressed with extended sequence diagram and depicted correspondingly in Fig. 5, Fig. 6, and Fig. 7 respectively.In the delegating protocol, a client agent may query a Facilitator about a service. If the query is available, service results will be replied. On retrieving the location information of the service, the client agent will initialize a slave agent and delegate tasks to it for execution. The client agent will not only delegate tasks to the slave agent but also combine these results from the slave agent. If an error happened, the slave agent will response them to the client agent.Fig. 4. First Layer Description of the Multi-Agent Architecture in MADSSFig. 5. Delegating Interaction ProtocolFang et al: An Architecture for Multi-Agent COTS Software Integration SystemsFig. 6. Binding Interaction ProtocolFig. 7. Publishing Interaction ProtocolIn the Binding protocol, a slave agent sends a service request to a service agent. If the service agent accepts the request, the slave agent will send some data to the service agent as the input of the service. After the service is finished, the result will then be replied to the slave agent by the service agent.In the Publishing protocol, a service agent sends the register request of a service to a Facilitator. If the Facilitator accepts the request, the service agent will send the registration information to the Facilitator. After the processing of registration is finished, a confirmation from the Facilitator will be replied to the service agent.In the third layer description, activity diagram is adopted to express the internal processing of agents according to related interactions. Hence, the internal processing of the client agent, slave agent, Facilitator, and service agent are depicted correspondingly in Fig. 8, Fig. 9, Fig. 10, and Fig. 11 respectively.The client agent, which is a stationary agent, serves users at client side. In the internal processing of a client agent, the client agent deals with the content of tasks after a user input the tasks through the user interface. However, some of these tasks may not be handled by the ability of the client agent. Thus, the client agent may make a query to a Facilitator about a service that could serve these tasks. If the service result is replied to the client agent, the client will analyze the result to get the location information of the service agent that provides the service. The location information of the service and the content of these tasks would be delegated to a slave agent. Finally, the client agent may process the resulting message or error message from the slave agent.Journal of Computers Vol.18, No.1, April 2007taskFig. 8. Internal Processing of Client AgentFig. 9. Internal Processing of Slave AgentThe slave agent, which is a mobile agent, processes the tasks from the client agent. In the internal processing of a slave agent, the slave agent may analyze the delegation from a client agent to get the information of a service, such as service name, service agent name, and server location. After the slave agent migrates to the server side, the slave agent will send a service request to the service agent. If the service agent accepts the request, the slave agent will send input data to the service agent, else an error message will be sent back to the client agent. After getting the result form the service agent, the slave agent migrates back and sends the result to the client agent. The Facilitator, which is a public stationary agent, provides the directory service. It may handle the service register from a service agent (see Fig. 10 (a)) or query from a client agent (see Fig. 10 (b)). On receiving a request of service registration from a service agent, the Facilitator will analyze the message. If the registration service is available, the Facilitator will send the acceptation of registration to the service agent and receive the service information from the service agent. After the information of the service is stored in the registry, the Facilitator will send a registration confirmation to the service agent. Additionally, on receiving a request of service query from a client agent, the Facilitator will analyze the message also. If the service information is stored in the registry of the Facilitator, the Facilitator will then send the service information back to the client agent.Fang et al: An Architecture for Multi-Agent COTS Software Integration Systems(a) Handle Register of Service from Service Agent(b) Handle Query from Client AgentFig. 10. Internal Processing of Facilitator(a) Publish the Information of Service(b) Handle the Request from Slave AgentFig. 11. Internal Processing of Service AgentJournal of Computers Vol.18, No.1, April 2007The service agent, which is a stationary agent at the remote side, manages the COTS software. The internal processing of a service agent could be addressed as follows. The service agent may either publish the service information of a wrapped COTS software as this agent startups (see Fig. 11 (a)) or handle the request from a slave agent (see Fig. 11 (b)). To publish a service, a service agent will send a request of service registration to a Facilitator and waits for the reply from the Facilitator. If the Facilitator accepts the request, the service agent will send the service information supported by a wrapped COTS software back to the Facilitator. In addition, the service agent also handles the service requests from a slave agent. If the request is available and acceptable, the service agent will receive the input data from the slave agent. The input data are the parameters for accessing the programmable interface of the wrapped COTS software by using procedure call or message passing.4 An Example System: A Graphical Mechanical Part Management SystemTo demonstrate the feasibility of our proposed architecture, we report on implementing an experimental integrated software system—Graphical Mechanical Part Management System (GMPMS) in this section. There are numerous mechanical parts in various categories and types but they might be alike in name, shape, model, size, and so on. Many non-expert buyers might thus make incorrect orders without assistance from a dealer for more mechanical part information, like precise specification, picture, and layout. Therefore, the purpose of GMPMS is to assist dealers in efficiently managing and querying the mechanical part database with graphical displays of the part layout.To carry out a GMPMS, two major subsystems are necessary: a database subsystem for storing the mechanical parts data and a graphical display subsystem for displaying the part drawing. To develop these two subsystems from scratch would be a time consuming and costly endeavor. An economic and rapid way is through the software reuse approach. Therefore, AutoCAD 2000 and dBase III Plus are selected to be integrated in the GMPMS. AutoCAD 2000 is a drawing software tool and commonly used to design a mechanical part. The dBase III Plus is a simple database tool for providing the management of mechanical parts and store the command stream of mechanical parts. According to the agents defined in our multi-agent architecture, the GMPMS consists of following five agents.1.Mechanical part management agent. The mechanical part management agent is a stationary agent at theuser side and plays the role of the client agent. It provides a user interface to manage mechanical parts and shows the 2D/3D shape of mechanical parts.2.Slave agent. Slave agent is a mobile agent and responsible for getting the query conditions of mechanicalparts from the mechanical part management agent. It could migrate to the location of the mechanical part information agent to get the information of mechanical parts. It could also be migrated to the location of the shape generation agent to generate the 2D/3D shape of mechanical parts.3.Mechanical part information agent. The mechanical part information agent is a kind of service agent. Itmaintains the queryPart service to query the information of mechanical parts. In order to provide the service, it handles the operations of dBase III Plus through the simulation of keying a sequence of dBase III commands.4.Shape generation agent. The shape generation agent is a kind of service agent. It maintains thegenerate2dShape and generate3dShape services to generate the 2D/3D shape of mechanical parts. In order to provide these services, it handles the operations of AutoCAD 2000 by inputting the AutoCAD command stream of mechanical parts.5.Facilitator. The Facilitator provides directory service and maintains the information about the queryPart,generate2dShape and generate3dShape services.To show the application of our architecture on the system, we give some interaction and internal processing diagrams about the use of queryPart service. For invoking queryPart service, the interactions among agents in GMPMS are based on the protocols of Delegating, Publishing, and Binding. However, to apply these protocols to our application, some modifications are necessary. Fig. 12, Fig. 13, and Fig. 14 represent the Delegating, Publishing and Binding protocols about queryPart service in the GMPMS respectively. In the second layer descriptions about queryPart service, some messages in the aforementioned protocols should be modified to fit our application requirements. For example, the message register-info in Fig. 7 is replaced with queryPart-info in Fig. 13. The message input-data in Fig. 6 is replaced with input-query conditions in Fig. 14.Fang et al: An Architecture for Multi-Agent COTS Software Integration SystemsFig. 12. Delegating Interaction Protocol about queryPart ServiceFig. 13. Publishing Interaction Protocol about queryPart ServiceJournal of Computers Vol.18, No.1, April 2007Fig. 14. Binding Interaction Protocol about queryPart ServiceFig. 15. Example of KQML message for binding queryPart serviceEach message in these protocols may be equal to a KQML messages. For example, when the slave agent arrives the remote side, it communicates with the service agent to get the queryPart service through some KQML messages. The Fig. 15 shows the content of the messages input-query conditions between the slave agent and the mechanical part information agent through the binding interaction protocol.The internal processing of these agents about queryPart service is based on the third layer description in our multi-agent architecture. The behaviors of mechanical part management agent, slave agent, Facilitator, and mechanical part information agent are illustrated in Fig. 16, Fig. 17, Fig. 18 and Fig. 19 respectively. Some processing blocks in the agent state diagrams should be modified to fit the functions of queryPart service also. For instance, the invoke interface in Fig. 11 is replaced with invoke dBase III Plus Wrapper (see Fig. 19).taskFig. 16. Internal Processing of Mechanical Part Management Agent about queryPart ServiceFig. 17. Internal Processing of Slave Agent about queryPart ServiceManagement)(a) Handle Query from Mechanical Part Management AgentInformation)(b) Handle Register of queryPart from Mechanical Part Information AgentFig. 18. Internal Processing of Facilitator about queryPart Service(a) Publish the Information of queryPart Service(b) Handle the Request from Slave AgentFig. 19. Internal Processing of Mechanical Part Information Agent about queryPart Service Each blocks in these internal processing may be implemented to some program codes. For instance, the mechanical part information agent at the remote side may involve some implementation to operate the dBase III. Fig. 20 shows the example codes of controlling dBase III Plus to handle queryPart service. It simulates the key events to input data to dBase III by using the functions of inputString(), hotkey() and key() provided by dBaseWrapper.Fig. 20. Example of queryPart in Mechanical Part Information AgentServerServerFig. 21. Overall structure of GMPMSFig. 21 illustrates the overall structure of GMPMS. In GMPMS, the mechanical part management agent provides a user interface to interact with the user and queries the Facilitator about the information of related services. By delegating the slave agent to interact with the mechanical part information agent and shape generation agent, the mechanical part management agent could get the information and shape of mechanical parts. Here, the slave agent retracts the AutoCAD command stream in the information of mechanical parts gotten from the mechanical part information agent and uses it as the input of the shape generation agent to generate the shape of mechanical parts.In the implementation of the GMPMS, all the agents are written in Java language. In order to provide the communication mechanism and the mobility of agents, the IBM Aglet [21] is adopted as the execution environment.In Fig. 22, the information of mechanical parts in dBase III Plus can be queried by inputting some query string. In Fig. 23, the user interface of querying mechanical parts in GMPMS is shown. By inputting some mechanical part attributes, dealers could get needed mechanical part information in the dBase III Plus. The 2D shape of the indicated mechanical part is shown at the view of top. By using the AutoCAD command stream stored in dBase III Plus as the input, the AutoCAD 2000 would be able to generate the shape of mechanical part. Therefore, dealers would find and show the mechanical parts for customers.Fig. 22. Wrapped dBase III Plus in GMPMSFig. 23. Screenshot of GMPMS5 ConclusionsA multi-agent architecture of MADSS is proposed in this paper to incorporate several COTS software by using software agent technology within an integrated software system. To describe the architecture in detail, the three-layer approach of Odell’s AUML is adopted as the description language. Therefore, the specification of implementation, including protocol and internal processing, are described. A Graphical Mechanical Part Management System (GMPMS) is also experimented in our study to illustrate the use of the proposed architecture. It integrates the services provided by wrapping dBase III Plus and AutoCAD 2000. The proposed architecture would be helpful to programmers with the knowledge of UML or AUML in having a guide to construct distributed COTS software integration systems with the multi-agent paradigm.Finally, we conclude several future works to improve the architecture:1.To define the description of exported COTS service.2.To enhance a mechanism for discovering the suitable and desired services advertised in the community.3.To handle the problem of agent’s ontology.References[1]P. Felber, P. Narasimhan, "Experiences, strategies, and challenges in building fault-tolerant CORBAsystems," IEEE Transactions on Computers, Vol.53, No.5, pp.497-511, May 2004.[2] A. Davis, D. Zhang, "A comparative study of DCOM and SOAP," Proceedings of 4th InternationalSymposium on Multimedia Software Engineering, pp.48-55, Dec. 2002.[3] E. Altendorf, M. Hohman, R. Zabicki, "Using J2EE on a large, Web-based project," IEEE Software,Vol.19, No.2, pp.81-89, March-April 2002.[4]S. Vinoski, "Where is middleware," IEEE Internet Computing, Vol.6, No.2, pp.83-85, March-April 2002.[5]Y. B. Peng, J. Gao, J. Hu, B. S. Liao, "Policy-Driven Agent Social," Proceedings of InternationalConference on Machine Learning and Cybernetics, Vol.1, pp.345-350, Aug 2005.[6]J. R. Koo, "Social commitments in MAS," Proceedings of the 8th Russian-Korean InternationalSymposium on Science and Technology (KORUS-2004), Vol.1, pp.72-74, July 2004.[7] D. X. Xu, J. W. Yin, Y. Deng, J. H. Ding, “A Formal Architecture Model for Logical Agent Mobility,”IEEE Transactions on Software Engineering, pp.31-45, 2003.[8]R. Nicholas. M. W. Jennigns, “Agent-Oriented Software Engineering,” Proceeding of 9th EuropeanWorkshop on Modeling Autonomous Agents in a Multi-Agent World, 2000.[9]J. M. Lin, Z. W. Hong, and G. M. Fang, ”MADSS: a Multi-Agent Based Distributed Scripting System,“ Proceedings of 26th Annual International Computer Software and Application Conference (COMPSAC-2002), Oxford, UK, pp.581-586, Aug 2002.[10]T. G. Baker, “Lessons Learned Integrating COTS into Systems,” Proceedings of 1st InternationalConference on COTS-Based Software System (ICCBSS 2002), Orlando, FL, USA, pp.21-30, Feb. 2002. [11]L. Davis and R. Gamble, “Identifying Evolvability for Integration,” Proceedings of 1st InternationalConference on COTS-Based Software System (ICCBSS 2002), Orlando, FL, USA, pp.65-75, Feb. 2002. [12]T. Pfarr and J. E. Reis, “The Integration of COTS/GOTS within NASA’s HST Command and ControlSystem,” Proceedings of 1st International Conference on COTS-Based Software System (ICCBSS 2002), Orlando, FL, USA, pp.209-221, Feb. 2002.[13] A. Egyed and R. Balzer, “Unfriendly COTS integration – instrumentation and interfaces for improvedplugability,” Proceedings of 16th International Conference on Automated Software Engineering (ASE 2001), pp.223-231, Nov. 2001.[14]J. Odell, H. V. Dyke Parunak, Bernhard Bauer, “Extending UML for Agents,” Proc. of the Agent-OrientedInformation Systems Workshop at the 17th National conference on Artificial Intelligence, pp.3-17, 2000.[15]J. Ousterhout, “Scripting: higher lever programming for the 21st Century,“ IEEE Computer, Volume 31,pp.23-30, March 1998.[16]J. Ousterhout, “Additional Information for Scripting White Papter,” in URL:/people/john.ousterhout/scriptextra.html.[17]Y. Liu, C. Xu, W. D. Chen, Y. Pan, "KQML Realization Algorithms for Agent Communication," FifthWorld Congress on Intelligent Control and Automation (WCICA-2004), Vol.3, pp.2376-2379, June 2004.[18]J. M. Lin, Z. W. Hong, G. M. Fang, H. C. Jiau, and W. C. Chu, “Reengineering Windows softwareapplications into reusable CORBA objects,” Journal of Information and Software Technology, Vol. 46, No.6, pp.403-413, May 2004.[19]Z. W. Hong, J. M. Lin, H. C. Jiau, G. M. Fang, and C. W. Chiou, “Reengineering Windows-BasedSoftware Applications into Reusable Components using Pattern Language,” Journal of Information and Software Technology, Vol.48, No.7, pp.619-629, July 2006.[20]J. M. Lin, Z. W. Hong, G. M. Fang, and C. T. Lee, "A Style for Migrating MS-Windows SoftwareApplications to Client-Server Systems Using Java Technology," SOFTWARE - Practice & Experience, Vol.37, No.4, pp.417-440, April 2007.[21]IBM Aglet, in URL: /aglets/index_e.htm.。
福特网络FortiGate虚拟应用和迁移自动化说明书
1“We needed a solution that would allow us to extend our existing security framework into the cloud, while maintaining full control and visibility across the entire infrastructure. Using the Fortinet Fabric Connector for Azure Cloud Services, together with virtual instances of the FortiGate NGFW, gave us single-pane-of-glass control and visibility over everything.”–Marc Verstraaten, Cloud Architect, Wageningen University & Research CASE STUDYLeading Dutch University for Environmental Research Harnesses the Cloud With FortiGate Virtual Appliances and Migration AutomationWageningen University & Research, located in the town of Wageningen in theNetherlands, is one of the world’s highest-ranking universities in disciplinesspanning environmental science, agriculture, forestry, and ecology.In addition to its renown in education and fundamental research, theestablishment has a strong global position as a supplier of application-orientedand field-based research, collaborating with other educational and researchinstitutes, as well as governments, non-governmental organizations, andbusinesses from around the world.Wageningen University & Research employs over 6,500 staff and currently servesaround 12,500 students from over 100 countries.Securely Harnessing the Potential of Dynamic Cloud ServicesA Fortinet customer since 2014, the university had long leveraged FortiGatenext-generation firewalls (NGFWs) to protect applications and data within theperimeters of its two centrally located data centers.FortiGate NGFWs combine dedicated, purpose-built security processors withthreat-intelligence services from FortiGuard Labs to deliver top-rated security andhigh-performance threat protection.With the addition of FortiManager centralized network management andFortiAnalyzer analytics and automation (collectively known as the FabricManagement Center), network administrators gain powerful network management,automation, and response, with broad visibility and granular device and role-basedadministration across the entire infrastructure.In early 2020, with increasing research collaboration on projects requiring a moreflexible and dynamic infrastructure, the university’s IT team realized that it wouldneed to start moving some of these workloads to the cloud.The team chose Azure Cloud Services from Microsoft as its cloud provider. TheAzure Infrastucture -as-a-Service (I aaS) environment provided the agility, scalability,and control the team needed, but the move to the cloud complicated the process ofmaintaining security. Having witnessed a recent high-profile breach at anotheruniversity in the Netherlands, Wageningen University & Research was takingno chances.“We needed a solution that would allow us to extend our existing securityframework into the cloud, while maintaining full control and visibility across theentire infrastructure,” explains Marc Verstraaten, cloud architect at WageningenUniversity & Research. “Using the Fortinet Fabric Connector for Azure CloudServices, together with virtual instances of the FortiGate NGFW, gave us single-pane-of-glass control and visibility over everything.”Details Customer: Wageningen University & Research Industry: Education Location: The Netherlands Business Impact n n Improved flexibility, scalability, and management of IT resources n n Enhanced security n n Greater control and visibility of global research applications and dataCASE STUDY | Leading Dutch University for Environmental Research Harnesses the Cloud With FortiGate Virtual Appliances and Migration Automation Copyright © 2021 Fortinet, Inc. All rights reserved. Fortinet ®, FortiGate ®, FortiCare ® and FortiGuard ®, and certain other marks are registered trademarks of Fortinet, Inc., and other Fortinet names herein may also be registered and/or common law trademarks of Fortinet. All other product or company names may be trademarks of their respective owners. Performance and other metrics contained herein were attained in internal lab tests under ideal conditions, and actual performance and other results may vary. Network variables, different network environments and other conditions may affect performance results. Nothing herein represents any binding commitment by Fortinet, and Fortinet disclaims all warranties, whether express or implied, except to the extent Fortinet enters a binding written contract, signed by Fortinet’s General Counsel, with a purchaser that expressly warrants that the identified product will perform according to certain expressly-identified performance metrics and, in such event, only the specific performance metrics expressly identified in such binding written contract shall be binding on Fortinet. For absolute clarity, any such warranty will be limited to performance in the same ideal conditions as in Fortinet’s internal lab tests. Fortinet disclaims in full any covenants, representations, and guarantees pursuant hereto, whether express or implied. Fortinet reserves the right to change, modify, transfer, or otherwise revise this publication without notice, and the most current version of the publication shall be applicable.May 5, 2021 3:46 AMD:\Fortinet\2021 Rebranded templates\Case Studies\May\WUR\cs-leading-dutch-university-V1-552021\cs-leading-dutch-university-V1-5520211007903-0-0-EN Solutions n n FortiGate VM n n FortiGate n n FortiManager n n FortiAnalyzer The Fortinet Security Fabric is an architectural approach that enables themultiple security elements of a network to act together as a single, intelligent,responsive entity.Since FortiGate virtual appliances are built on the same FortiOS operatingsystem as their physical counterparts, they enable customers to create theoptimal architecture for their specific environment, balancing the unparalleledperformance of the physical form factor with the flexibility and scalability of thevirtual, to provide seamless visibility and control from the network core right out tothe edge.Through FortiManager and the Fortinet Security Fabric, configuration andpolicy management can then be consolidated across both physical and virtualenvironments through a single pane of glass, simplifying management andreducing the potential for service degradation or bottlenecks.Non-Fortinet components, such as those within the Azure Cloud Servicesenvironment, can then be brought under the protective umbrella of the FortinetSecurity Fabric through prebuilt application programming interfaces (APIs) knownas Fabric Connectors.For complex application development operations such as those of WageningenUniversity & Research, one of the key risks associated with moving workloadsinto the cloud is the potential introduction of vulnerabilities resulting fromconfiguration errors and manual data compilation.“The ability to integrate automated cloud deployment scripts into the already-familiar management interface of FortiManager and FortiAnalyzer was anotherkey advantage for us,” adds Verstraaten. “Our team was well-versed in theimplementation of on-premises security policies but lacked experience with thecloud environment.”Ready for the Future“The ability to integrate automated cloud deployment scripts into the already-familiar management interface of FortiManager and FortiAnalyzer was another key advantage for us. Our team was well-versed in the implementation of on-premises security policies but lacked experience with the cloud environment.”– Marc Verstraaten, Cloud Architect, Wageningen University & ResearchHaving completed the first phase of their new cloud migration, the university is now looking to optimize service delivery through the built-in load-balancing capabilities of the FortiGate virtual appliances.“One of the things we particularly like about the Fortinet solution is the range of functionality you get right out of the box,” comments Verstraaten. “It means we can move at a pace that suits us, deploying additional capabilities as and when we need them.”The university’s stated mission, “To explore the potential of nature to improve the quality of life” is undoubtedly one ofincreasing significance in the face of globally accelerating technological and environmental change. Through the FortinetSecurity Fabric and the continued efforts of Marc Verstraaten and his team, Wageningen University & Research is now able to pursue that mission with a greatly reduced risk of disruption from the ever-evolving specter of cyberattack.。
Agent architectures for electronic assistance and commerce
Agent architectures for electronic assistance and commerceMihhail Matskin1and Enn Tyugu21 Department of Computer and Information Sciences,Norwegian University of Science and Technology (NTNU), Trondheim, Norway2 Department of Teleinformatics,Royal Institute of Technology (KTH), Stockholm, SwedenAbstractThis work proposes a generic architecture for agent shells and Agoras [10]. First, wegive a survey of existent agent architectures and try to circumscribe the invariant part ofagents. The main part of the work presents an agent reflection mechanism and aspecification language for describing models of environments and agents. We use twoworking examples: facilitator agents for exhibitions (or virtual shopping centres ) andmodelling of work of a program committee for illustration of the architecture. Co-operation between the agents is an important requirement in both examples, and this isorganised on the basis of the Agoras.1. IntroductionDevelopment of computer networks dramatically changes a way of representation and usage of information. Instead of centralised archives and databases more and more decentralised information sources are available. A complete modelling of such distributed information sources is quite problematic.The main problem is as follows. Most of former modelling approaches were designed for analysis of information in completely specified environments. These environments contain all sufficient information for operation at the environment. It does not mean that a completely specified environment should be only static. However changes in these environments are presented explicitly as well as actions which are also described explicitly. In the other words our world is closed in this case.In the case of decentralised information sources in the network an environment in many cases cannot be specified completely. It is problematic (if possible) to describe completely all available information sources in the network as well as to specify precisely and completely all possible actions and changes. The distributed environment is not closed any more and, generally, there can be no restrictions for affecting the world and being affected by it.A constructive approach for work in an open environment could be similar to human’s way of behaviour in a real world which is also open. This approach is based on perceiving the world, having a rational model of behaviour and having intentions/motivations to be fulfilled by implementing corresponding goals. Of course, it is a schematic view to “human’s way of behaviour”, however, it emphasises autonomous, pro-active and distributed nature of exploring information sources and it can be constructive in the case of open world. This becomes widely acceptable as an agent-based approach where agents are software entities/systems to whom users delegate some activity to be performed. For definition of agents we refer to [22], where agent is defined as an autonomous, pro-active, social and reactive system. We emphasis these features as essential ones for exploring information sources in a distributed environment.However, not only information sources become distributed - control also becomes distributed and decentralised. In order to support decentralised control the role of co-operative mechanisms, such as co-ordination, negotiation and communication, increases very much.2Exploring information in the network and perception of an open environment often requires co-operative efforts and global/local co-ordination, negotiation and communication activities of agents.Having closely followed the developments in the field of software agents for some time, we have come to the conclusion that up-to-date tools for agent programming can be developed in the way similar to the technology of knowledge-based systems/expert systems where expert system shells were introduced for facilitating the expert system implementations. A generic shell of agents can be developed as an ”empty agent” which could be filled in with functionalities required by any particular application. This should considerably facilitate the development of agent-based software. However, when an expert system shell had a well-defined invariant part in the form of an inference engine and knowledge management tools, and included only an empty knowledge-base, an invariant component of agents must be more complicated.In the first part of this work, we give a survey of well-known agent architectures and try to circumscribe the invariant part of agents. Thereafter we propose an agent architecture which shoud cover the requirements of most of the multiagent systems under consideration. We shall use two working examples: facilitator agents for exhibitions (shopping centres) and program committees. Cooperation between the agents will be an important requirement in both examples, and this will be organized on the basis of Agoras, introduced in [10]. We start immediately with describing the working examples.2. Working examplesIn order to illustrate our approach we consider two working examples: a simplified version of a Program Committee (PC) work modelling from the paper [11] and agent-supported guidance at a large computer exhibition and virtual shopping centres. We are going to use these two examples of co-operative work throughout the whole paper.2.1 Program Committee agentsIn general we refer to intuition and experience of most of readers who participate in the work of a PC and we assume that PC includes a chairman (may be a co-chairman) and PC members. A PC is formed by the chairman by personal invitation of members after their agreement. Papers are submitted to PC chair(s) and then allocated to PC members for reviewing. Generally, the PC members review themselves but they also can ask other experts to review a paper on their behalf. Critical points in the work of a PC are 1)allocation of papers for reviewing, 2)making agreement about paper evaluations between several reviewers and 3)satisfaction of deadlines for reviewing and notifications of the acceptance or rejection of papers.2.2 Guidance agentsAs the working example we consider usage of agents as guides at a large exhibition, let it be a computer fair. We expect to have visitor agents and exhibitor agents. The visitor agents are implemented as small portable gadgets which guide the exhibition visitors and help them to communicate with exhibitors. They have a goal to provide a visitor with the information on a level appropriate for the particular person, and to represent him in communication with exhibitors. The exhibitor agents are located at the booths. Each of them provides information about a particular company, trying to present the company as attractively as possible. This includes prioritizing of visitors, helping them to get access to the information sources, arranging collective activities at the booth.3 Visitor agents operate as mobile agents, switching the environment every time the visitor moves to another booth. Besides the communication with exhibitors, the visitor agents provide general support at the exhibition, locating the places of interest and advising in general matters like time schedule, food and rest-rooms. A visitor agent should be able to adjust to the level of the visitor served. In no case should a visitor feel being patronized by the agent. From the other side, laymen will need quite different support than experts need, although they would like to have a sufficient freedom of choice. The categories of visitors can be defined in advance and their models specified in a knowledge representation language. We intend to develop agents with sufficient intelligence for understanding high-level specifications of environments at booths and tasks. In other words – programming of agents should be done in a declarative way, leaving composition of detailed action plans to agents themselves.As a modification of this example we also consider assistance at a virtual shopping center with different shops, agencies, banks etc. Guidance agents at the virtual shopping center may differ with agents at exhibitions in details, however, we believe that on architectural and co-operative levels they can be supported by the same basic tools. In this paper we do not make difference between the examples and everywhere we refer to one of them we also assume possible application of another.3. Analysis of existing agent architectures (related works)Here we briefly overview the most typical approaches to agent architectures.An agent in the Self subsystem [8] has an ability to plan agent’s actions and an ability to make own decisions which may be unpredictable for an external observer. Also reflection is attributed to the Self. The Self is internally divided into deterministic and non-deterministic part. The first can be implemented as a state transition machine. A way of realization of the second part is not clear.The paper [6] presents a number of BDI architectures, beginning from the early ones, some of whose may still be of interest. The IRMA – intelligent resource-bounded machine architecture from [2] includes separate representation of beliefs, desires and intentions, and gives an interesting picture of relations between these knowledge items. It uses a plan library and intention structured into plans. The operation of an agent is based on the following processes: means-end reasoner, opportunity analyzer, filtering mechanism, and deliberation. The IRMA architecture has been tested on a simple simulated robot example.The paper [5] gives an abstract BDI architecture with a simple interpreter loop. Also this work uses explicit representation of beliefs, desires and intentions as separate data structures. The loop presented in the paper reminds a breadth-first search loop, probably, extended with some control by beliefs, although this control is not explicitly visible.The work presented in [18] is a description of a five years long experimental development of a system called CooperaA and intended for supporting of chemical emergencies management. The paper describes rather detailed mechanism of communication between two agents. The communication scheme between agents presented in this work includes more details than any other scheme of communication in the accessible publications. The communication is based on an agent-agent communication protocol developed for this particular project. In the same paper we can find also a scheme of data structures of an agent. These data structures support4the integration of distributed knowledge bases (even heterogeneous knowledge bases) and distributed problem-solving.The work [4] has a goal close to our intentions: development of a testbed providing tools for implementing multi-agent systems. Its agent model has a structure containing a hierarchical knowledge base and components of an agent: cooperation component, plan-based component, behavior-based component. An agents functionality is divided into the following parts: acting, communication, perception. This is a rather nontraditional presentation of the agent architecture.Another work with a similar goal is [13] where an agent factory is described as an environment for implementation of multi-agent systems. This work includes a presentation of an agent behavior by means of a finite state machine with the states: active, sending, inactive, receiving, waiting. Sending and receiving cannot be done as parts of other activities, and have been represented by separate states, because they are considered to be indivisible actions. Still, one can use a more parallel way of acting of an agent than developed in this paper.An overview of an agent-oriented programming [16] includes a scheme of a generic agent interpreter which can be also considered as an agent shell. This is a very general description of agent’s behavior, which should be developed in more detail to become useful as a generic shell. This work suggests the following modalities for representing mental states of an agent: belief, obligation (or commitment), decision (as an obligation to oneself) and capability. The paper [1] presents an open agent architecture proposed under the following assumptions: support of distributed object technology, specialization of the agent communication language, support of interoperability with other agent platforms as well as non agent-based software.There is no general agreement about the architecture of agents, but some convergence towards basic components: proactive, deliberative and reactive can be observed. Also common functionality: communication, knowledge base and reasoning (action planning) can be detected.4. Analysis and general requirementsIt is not surpising, that looking at the architectures reviewed, we have detected the following three layers in most of them: reactive, deliberative, pro-active. These layers have been generally accepted by agent developers. However, there is little written about the implementation of these layers. Looking at anoher dimension – the functionality of agent software, we can detect the support for language processing, knowledge handling and reasoning. No universally applicable tools are available for these functions in agents either. The language processing function seems to have had most of the attention. There is some agreement on the usage of KQML [3] (or FIPA proposals [21]) as the communication language framework, and suggestion to use KIF (a version of the language of the predicate logic for knowledge representation) as an interchange format.Designing an agent shell, we shall develop support for the three layers: reactive, deliberative and proactive. We can accept KQML or FIPA as the framework for communication language, but shall develop our knowledge representation language in more detail. This will determine also requirements on the reasoning mechanism.5 At the top-level of agents we see an infinite loop for a live agent [1, 16], or a finite automaton [13]. Instead of a simple loop, we intend to use a general event-handling mechanism supported by a collection of classes developed in a sound object-oriented style.5. General ArchitectureIn our work we consider two basic components of a multi-agent architecture (see Fig. 5.1): individual agents and facilitators of co-operative work, called Agoras [10, 11].Figure 5.1. Agents and AgorasIndividual agents are autonomous, pro-active, social and reactive software systems which represent somebody (user or another agent) in a computational environment and perform tasks on behalf of their creators. For more detail definitions of agency we refer to [22]. Agora is an area or meeting place where agents can advertise themselves and establish a common context. In order to be able to use an Agora, an agent should be registered. Registration of the agent means announcing it’s name and public information about it’s properties, which may include agent’s goals, tasks it is interested in, tasks it can perform etc. In addition to information about agents, Agora contains information about the problem or situation it should support, common knowledge, references to related Agoras, organisational structures of co-operatively solvable problem and knowledge about information sources. Hence, a common work context can be established by explicit representation of the contents of Agora and by registration of its agents. More generally, Agora is a facilitator of co-operative work (co-operation, negotiation and communication) which provides an infrastructure for such a work (in a way analogous to KQML facilitators which facilitate only communication [3]).6. Agent shellIn order to support description and creation of individual agents we propose an architecture/structure of an agent shell. The shell implements a basic agent functionality and allows its easy customisation, overriding and extension.We introduce the agent shell architecture in several steps. First we describe an agent engine/machinery level, then consider its functional architecture and, finally, discuss a transformation from the functional level to the machinery level.Agent shell machinery is based on Event-driven execution (see Fig. 6.1) and it includes:61)prioritised event list handled by embedded event managers, 2)event description list including event types description with references to handlers, 3) event handlers - procedures which are invoked when a corresponding event is dispatched, 4)agent interface, including ACL and low-level communication ports, 4)agent memory which contains models (specifications, classes, types etc.) i.e. metadata and data (raw data, objects etc.)Figure 6.1. Agent machineryEvents may arrive to the event list externally from the outside world (from the environment or by communication with other agents) via interface or internally from the event handlers.Event handlers have access to the Event description list and they may modify it when necessary. The agent memory is used by the event handlers and can be updated by them or by request from the outside world.Agent creator (a user or an agent) should be provided by tools (external graphical interface or just API) to describe particular event types, event handlers, communication channels and agent memory structure and contents. Detailed consideration of these tools is out of scope of the paper and we consider them as an important future work.7. Agent shell functionalityThis level of agent architecture presents basic agents functionality.7Figure 7.1. Agent shell functional structureA proposed set of functional blocks is based on analysis from Sect. 4 and it includes (see Fig.7.1): 1)communication blocks including ACL communication with agents and a signal-level communication with environment, 2)planner, 3)reactive block 4)declarative reflection block 5)procedural reflection block 6)pro-active block (goals analyser/synthesiser) and 7)executor.8. Agora structureWe assume the following three groups of elements in the Agora contents (see [8] for more details): 1)information about registered agents (individual agent’s information), 2)information about Agora itself (self information) and 3)information about other Agoras and information sources (surrounding information).All Agora components have standard (default) implementation in a generic Agora shell. However the default implementations can be overridden by an Agora creator by attaching corresponding agents (in this case the components in Agora architecture became proxy components/stubs with pointers/addresses of actual components).The functional architecture of Agora is presented in Fig. 9.1.8The communication component is similar to the agent’s communication block (see Sect. 7) and we assume a solution based on FIPA/KQML for it as well. Co-ordination and negotiation components are not considered here in detail and we assume that they implement some co-ordination / negotiation protocols (e.g. CNP [17]). The manager is a central element in the Agora architecture and it contains the following blocks (see Fig. 9.2): 1)router - if message which is sent to the Agora should be proceeded by another agent then router redirects it to the corresponding agent, 2)matchmaker - matches dependent/relevant information sources in Agora structure and decide what to do if matching succeeds/fails, 3)planner - makes plans for action based on self information in Agora and 4)reflection block - updates self information by9 12. Examples continuedIn this Section we return to our working examples (see Sect. 2) and use them to demonstrate general features of the Agent shell, Agoras and reflection mechanism.12. 1 PC agentsThe first step in modelling the work of a Program Committee is making decision about participants of the co-operative work or in the other words - which agents will inhabit our system. There are several possibilities: PC members can be represented by agents and papers for reviewing can be represented by agents. Our first decision is to restrict set of agents to PC members only (we do that for simplicity only but there are no restrictions for other decisions). The next step in our approach is identification of co-operative points in the work. The principal steps are 1)PC formation, 2)allocation of papers to PC members and to other reviewers, 3)discussion of paper evaluation. These three co-operation points should be supported by different Agoras.When PC work starts, a PC chairman creates a PC-Agora, registers his/her agent at PC-Agora and asks potential PC members to participate in the PC work (for simplicity we assume that this is done via email, phone, fax etc.). Those who agree to be in PC should register their agents at PC-Agora (during this registration they also specify areas of their expertise in the field). PC chair makes also decision about a procedure of allocation of papers by registering corresponding co-ordination agent. We consider two basic ways of doing allocation of papers: centralised and decentralised.In the case of centralised allocation, a co-ordination agent is a matchmaking agent. It matches keywords in papers (or titles) and areas of expertise of PC members. Conflict resolution and general constraints can be embedded into the co-ordination agent.In the case of decentralised co-ordination agents, more elaborated protocols can be used. We consider only one of possible protocols: Contract Net Protocol (CNP) [17]. In this case, the co-ordination agent is a manager who announces work to potential contractors (PC members) as a list of papers to be reviewed. PC members submit their bids for doing this job by selecting papers they wish to review from the list and attaching priority numbers (prices) to selected papers. Co-ordination agent analyses bids and awards papers to the higher bidder. In case of collisions, a negotiation between corresponding members happens (this may be done by creating a temporal Agora for these agents as on Fig.12.1.).Choice of the allocation procedure is a point where reflection may play an important role. Initial Agora’s self information could contain reference to a centralised co-ordination strategy. However, after the centralised paper allocation its unfairness can be detected. Unfairness means that some PC members get papers for reviewing which fit well to their specialisation while some other PC members get papers which are out of scope of their expertise. Unfair allocation usually is a result of mismatching between keywords in papers and expertise lists of reviewers. After recognising unfairness, the reflection mechanism should modify Agoras self information and attach a decentralised co-ordination strategy for paper allocation.Next, PC members may create their own Agoras (see Fig. 12.2.) if they ask other experts to help them in reviewing - this process is similar to the procedure of PC formation described above.10P C -A g o r aP C c h a ir P C m e m b e r P C m e m b e rP C m e m b e r C o o r d in a tio na g e n t N e g o tia tio nA g o r a P C -A g o r a P C m e m b e r 1P C m e m b e r 1 A g o r a P C m e m b e r 2A g o r a R e v ie w e r1R e v ie w e r 2P C m e m b e r 2R e v ie w e r 3P C -A g o r a P C m e m b e r 1P a p e r #####A g o r a P C m e m b e r 2P C c h a ir N e g o tia tio n A g e n t (M C P )Figure 12.1. Allocation of Figure 12.2. Reviewing papers Figure 12.2. ReviewingPapers papers by PC members papers by PC membersPC chair can now register another co-ordination agent to the PC-Agora which provides awareness functions for notification of the deadline for reviews.PC members submit their reviews to a co-ordination agent who checks them for discrepancies in evaluation of papers. If discrepancies are found, then a negotiation between reviewers should start. In order to support such negotiation, a temporal Agora is created (see Fig.12.3.) and a negotiation agent for support of particular negotiation protocol is registered at it (for example, Monotonous Confession Protocol (MCP) [15]).Discrepancy resolving is another point where reflection mechanism is used. PC Agora reflection mechanism observes reviews coming from reviewers and filters them into consistent and inconsistent sets. The consistent set contains papers where deviations in reviewer’s evaluations do not exceed predefined values. All other papers come to the inconsistent set. Papers from the inconsistent set identify conflicts to be resolved by Agora and they are pro-active sources for modification of Agora structures. The reflection mechanism may require creation of a temporal Agora for conflict resolution by updating Agora surrounding information (an information on related Agoras). Using classes considered in [23] this situation can be described as follows.Reflection manager gets an inconsistent set of papers and generates the following declarations into Agoras self model:resolvePaper###: DiscrepancyExist;resolvePaper ###.ListOfPCmemebers =[PCmember1,PCmember2];resolvePaper ###. Paper = Paper###;A procedure for implementation of the Conflict method may include a creation of Paper###Agora and registering PCmember1 and PCmember2 on it (in another situation reflection manager can, first, spesialise the class DiscrepancyExist by giving another implementation of the Conflict method). The Conflict method may also update Agora’s surrounding information. When the planner starts to plan a solution of a goal which needs the resolvePaper###.resolveConflict component to be true , it will include the method Conflict into a plan for further execution.12. 2 Managing the model of an exhibitionHere we follow the development of a part of the model of the exhibition for one visitor (in doing this we use classes from [23]). This model should include all essential information about the current situation of the whole exhibition, because it is used in the declarative11 reflection loops of agents active at the exhibition. The model is changed incrementally, adding a declaration for every event which has to be registered in it. At the beginning, only the declarations of the exhibition itself, including its guides and its booths must be available. An example of this kind of declaration is the declaration of the electronic guide Tommy9. Tommy9 : Guide type = Tommy;- Tommy9 is a portable electronic guide of type Tommy in use at Expo2XXX. MrSmith :Visitor name = ´John´;- MrSmith has just entered the exhibiton hall.act1 : FirstMeet guide = Tommy9, visitor = MrSmith;- after bying a ticket, MrSmith picks up his electronic guide,team1024 = act1.team;- and they become a team.act2 : Move team = team1024 ;- MrSmith is moving to the first booth suggested by the itinerary of his visit.act3 : AtBooth booth = act2.nextPlace;- at the booth they go through the steps of discourse guided by the method steps.act4 : Move team = team1024;- MrSmith moves further,act6 : AtBooth booth = Nokia;- he visits the Nokia booth next, ignoring the selection done by hisguide.…The declarations above are created by the event handlers and introduced into the model by the reflection manager. The model can be used by any reflective agent at the exhibition. When some information becomes outdated, the reflection manager removes it, this is a kind of garbage collection on the declarative level.ConclusionsWe proposed a generic architecture of agents and of a multi-agent system. This is done on the basis of analysis of existing implementations of agents. The analysis shows some convergence of existing architectural solutions only on a very general functional level. Agent implementations vary to a large extent, so that it is still impossible to detect an invariant part of the agent implementations.The main message of the present work concerns a concept of a generic agent shell and an architectural solution for Agora – a meeting place of cooperating agents. The agent shell is based on declarative reflection component functionally responsible for reflecting the state of an agent (or a multi-agent system) together with the state of the environment which is an open world.The presentation includes two examples of the agent-based assistance: at an exhibiton and in the work of a program committee. The first example requires adaptation to varying environment and dynamic construction of plans of behaviour. The second one is a good example of a multi-agent system supporting cooperative work.This work is partially supported by Andersen Consulting Research Foundation (project “Agent-Based Methods”).References[1] J. M. Bradshaw, S. Dutfield, P. Benoit, J. D. Woolley. (1996). KAoS: Toward anIndustrial-Strength Open Agent Architecture. In: G. M. O’Hare, N. R. Jennings, eds.Foundations of Distributed Artificial Intelligence, John Wiley & Sons, p. 375 - 418. [2] M. Bratman, D. I. Israel, M. E. Pollack. (1988). Plans and Resource-Bounded PracticalReasoning, Comput. Intelligence, v. 4, 349 - 355。
Multi Agent Knowledge Management Architecture
Multi Agent Knowledge Management Architecture Sheikh Amanur Rahman;Dipti Yadav;Prerna Agarwal;Pankaj Singh Bisht【期刊名称】《软件工程与应用(英文)》【年(卷),期】2012(5)1【摘要】Nowadays, knowledge in Public Sector environment becomes very vast and increasing day by day at speedy pace. So, to handle and manage the knowledge becomes a tedious job, resulting into degrading the overall affectivity and productivity of the system. Hence, the need of effective architecture arises, which can increase the performance of disseminating knowledge in public sector. This results the implementation of knowledge management (KM) using Multi Agents (MA). Using Multi Agents reduces the time overhead for serving relevant knowledge to end users. The objective of this paper is to propose KM architecture using MA which will be helpful and effective in circulating knowledge to public sectors in a much better and easier manner, due to which it enhances the productivity and performance. The paper firstly, gives the understanding of literature on various knowledge management frameworks and tools for implementing Multi Agents. Then it proposes a MA enterprise knowledge management architecture (MAEKM), stating that how knowledge circulation will be done. At the end, using JADE framework, paper implements MAEKM architecture for public sector. The paper describes thenecessity of implementing this architecture and its usefulness in disseminating knowledge in public sectors.【总页数】8页(P33-40)【关键词】Knowledge;Management;Multi-Agent;System;MAEKMA;Enterprise;Public;Sector;Unit;(PSU);JADE【作者】Sheikh Amanur Rahman;Dipti Yadav;Prerna Agarwal;Pankaj Singh Bisht【作者单位】不详【正文语种】中文【中图分类】F2【相关文献】1.An architecture of knowledge management system based on agent and ontology [J],2.An Ontology Reasoning Architecture for Data Mining Knowledge Management [J], ZHENG Liang LI Xueming3.Introducing Intelligent Agents Potential into a competent Integral Multi-Agent Sensor Network Simulation Architecture Design [J], A. Filippou;D. A. Karras4.Dual Layered Architecture for Multi Agent Based Islanding and Load Management for Microgrids [J], Al Kulasekara;Ktmu Hemapala;Rarc Gopura因版权原因,仅展示原文概要,查看原文内容请购买。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
A Multi-Agent Architecture for anIntelligent Website in InsuranceCatholijn M. Jonker1, Remco A. Lam1,2, and Jan Treur11 Vrije Universiteit Amsterdam, Department of Artificial IntelligenceDe Boelelaan 1081a, 1081 HV Amsterdam, The NetherlandsURL:http://www.cs.vu.nl/~{jonker,treur}. Email: {jonker,treur}@cs.vu.nl2 Ordina Utopics BV, Leusden, The NetherlandsAbstract. In this paper a multi-agent architecture for intelligent Websitesis presented and applied in insurance. The architecture has been designed andimplemented using the compositional development method for multi-agentsystems D ESIRE. The agents within this architecture are based on a genericbroker agent model. It is shown how it can be exploited to design anintelligent Website for insurance, developed in co-operation with thesoftware company Ordina Utopics and an insurance company.1 IntroductionAn analysis of most current business Websites from the perspectives of marketing and customer relations suggests that Websites should become more active and personalised, just as in the nonvirtual case where contacts are based on human servants. Intelligent agents provide the possibility to reflect at least a number of aspects of the nonvirtual situation in a simulated form, and, in addition, enables to use new opportunities for one-to-one marketing, integrated in the Website. The generic agent-based architecture for intelligent Websites presented in this paper offers these possibilities. It is shown how the architecture has been applied in a project on intelligent Websites in co-operation with an insurance company. The test bed chosen for this project was information and documents that need to be exchanged between insurance agents and the insurance company main office. The goal of the intelligent Website is to provide insurance agents with an accurate account of all available documents and information regarding a specific topic. The supporting software agents are able to provide a match (either strict or soft) between demand and available information. They also support pro-active information provision, based on profiles of the insurance agents that are dynamically constructed.In Section 2 the insurance application domain is introduced. In Section 3 the global design of an intelligent Website is presented; the different types of agents participating in the Website are distinguished. In Section 4 the generic broker agent architecture is described and applied to obtain the internal structure of the agents involved in the Website. In Section 5 the application of the architecture to insurance is discussed in more detail and illustrated by some example behaviour patterns.2 Application Domain: InsuranceOne of the largest insurance companies in the Netherlands works solely on the basis of (human) insurance agents. To better support these agents a Website was created with information about products offered by the firm, forms to support administrative actions and other related information. The site’s aim is to support the insurance agent with their work. To do this a simple setup has been chosen. The Website is structured around four main sections: Store, Desk, Newsstand and Office.The store is the place to go if you want more information about the insurance products offered. The various insurance policies can be found under this heading. Also, request forms for more information, brochures and personalized proposals can be found in this section. From the store a couple of useful programs can be downloaded as well: spreadsheets, an anti-virus toolkit and an insurance dictionary.When the insurance agent is stuck with a problem, he or she can turn to the desk section with questions. Apart from a Frequently Asked Questions page also a form for specific questions the agent might have, is available. In this Website section the editorials can be found that address in depth a certain problem an insurance agent might have. Finally, an address book is available, in which the various departments and teams operating within the company can be found.At the newsstand the visitors of the site can find the latest information. Newsletters can be found. A calendar can be checked for upcoming events and various links to other interesting sites are offered here. Whenever new interesting sites are added, the visitor can be notified of this be email, if he or she wants this. Also an assorted amount of articles is available.At the office, the sale of insurance products is supported. Here resources to improve the insurance agent’s job can be found, like telemarketing scripts, newsletter articles, advertisements that only need further filling out and sales letters. Also, the agent can find its personal production figures for the firm’s products.All this makes the Website a collection of variable information sources. Images, programs, documents, addresses, phonebooks and personal data make it span almost all possible information types. Apart from it having so many different types of information, new information is being added daily. Keeping uptodate with the latest relevant information, can take time with so many different types of information and daily updates. To help the insurance agent managing this the supporting multi agent system was developed to keep the agent uptodate on the latest interesting information.The aim is that the multi agent system integrated in the Website improves the use of the resources such a Website offers. From the visitors point of view, more interesting information can be found, even things the visitor did not think of before. The agent, with its intimate knowledge of who the user is and what he wants can shorten the time needed for visiting the website. Application forms can be offered, already (partially) filled out by the agent. The maintainers can use information collected through the multi agent system to develop a more direct form of marketing. Without much research the appropriate visitor can be contacted about new products or offers that are interesting to him or her. Visitor information can be used to find out what a visitor is interested in and so a personalised product offer could be offered.3 A Multi-Agent Architecture for Intelligent WebsitesIn this section a global multi-agent architecture, that can be used as a basis for an intelligent Website, is introduced. First, in Section 3.1 the top level process composition of the multi-agent system is presented. In Section 3.2 for each of the two types of agents in the multi-agent architecture, basic (external) agent characteristics and behaviours are identified and requirements are expressed. After this global view, in Section 4 the internal structure of the agents is discussed. Although the architecture is generic, for reasons of presentation some of its aspects will be illustrated in the context of the insurance application.3.1 The Overall ArchitectureThe domain has been identified as a multi-agent domain. Therefore, it makes sense to start with the agents as the highest process abstraction level within the system. Four classes of agents are distinguished at the level of the multi-agent system: customers (human agents), Personal Assistant agents (software agents), Website Agents (software agents), employees (human agents); see Fig. 1. The shaded area at the right hand side shows the agents related to the Website; the shaded area at the left hand side shows the two agents at one of the customer sites. In this figure, for shortness only two Website Agents, one employee, one Personal Assistant agent and one customer (user of the Personal Assistant) are depicted. In the application to insurance, the Website Agents are one-to-one related to the departments within the (insurance)company responsible for distinguished parts of the Website.Fig. 1. The overall multi-agent architectureNote that the Personal Assistant is involved as a mediating agent in all communication between its own user and all Website Agents. From the user it can receive information about his or her interests and profile, and it can provide him or her with information assumed interesting. Moreover, it can receive information from anyof the Website Agents, and it can ask them for specific information. The Website Agents communicate not only with all Personal Assistants, but also with each other and with employees. The customer only communicates with his or her own Personal Assistant. This agent serves as an interface agent for the customer. If a customer visits the Website for the first time this Personal Assistant agent is instantiated and offered to the customer (during all visits).3.2 The Software AgentsIn this section the agents are considered from outside only. Which structures are inside remains hidden; the internal structure will be presented in Section 4. The following external agent concepts to define interaction characteristics are used:• interaction with the world (observation, action performance)• communication with other agentsFor the Website agents the interaction characteristics are:Observation- its own part of the Website- presence and behaviour of customers visiting the WebsiteP erforming actions- making modifications in the Website- showing Web-pages to a customer and PACommunication with other agents- from PA: requests for information, customer profile information, customerprivacy constraints- from other WA: info on scopes, customer infoFor the Personal Assistants the interaction characteristics are:Observation- notice changes and offers at the Website- look at the Website for items within the customer’s needsCommunication with other agents- from WA: info on available information, offers- from Customer: customer needs and preferences, privacy constraints- to WA: customer needs, profile information- to Customer: info on available information4 The Internal Design of the Software AgentsThe agents in the application have been designed on the basis of a generic model of a broker agent. The process of brokering involves a number of activities. For example, responding to customer requests for objects (the word object will be used to indicate either a product or an information object such as a text or a form) with certain properties, maintaining information on customers, building customer profiles on the basis of such customer information, maintaining information on products,maintaining provider profiles, matching customer requests and product information (in a strict or soft manner), searching for information on the WWW, and responding to new offers of products by informing customers for whom these offers fit their profile. In this section a generic broker agent architecture is presented that supports such activities. This generic model has been used as a basis for both the Website Agents and the Personal Assistant agents introduced in Section 3.4.1 A Generic Broker Agent ArchitectureFor the design of the generic broker agent the following main aspects are considered: process composition, knowledge composition, and relations between knowledge and process composition. A compositional generic agent model (introduced in [2]), supporting the weak agency notion (cf. [11]) is used. At the highest abstraction level within an agent, a number of processes can be distinguished that support interaction with the other agents. First, a process that manages communication with other agents, modelled by the component agent interaction management in Fig. 2.Fig. 2. Composition at the highest level within the broker agentThis component analyses incoming information and determines which other processes within the agent need the communicated information. Moreover, outgoing communication is prepared. Next, the agent needs to maintain information on theother agents with which it co-operates: maintenance of agent information. The component maintenance of world information is included to store the world information (e.g.,information on attributes of objects). The process own process control defines different characteristics of the agent and determines foci for behaviour. The component world interaction management is included to model interaction with the world (with the World Wide Web world, in the example application): initiating observations and receiving observation results.The agent processes discussed above are generic agent processes. Many agents perform these processes. In addition, often agent-specific processes are needed: to perform tasks specific to one agent, for example directly related to a specific domain of application. The broker agent may have to determine proposals for other agents. In this process, information on available objects (communicated by information providing agents and kept in the component maintenance of world information), and about the scopes of interests of agents (kept in the component maintenance of agent information), is combined to determine which agents might be interested in which objects. Fig. 2 depicts how the broker agent is composed of its components.Part of the exchange of information within the generic broker agent model can be described as follows. The broker agent needs input about scopes of interests put forward by agents and information about attributes of available objects that are communicated by information providing agents. It produces output for other agents about proposed objects and the attributes of these objects. Moreover, it produces output for information providers about interests. For more details; see [5].4.2 Internal Design of a Website Agent and Personal AssistantThe broker agent architecture provides an appropriate means to establish the internal design of the two types of agents involved. In this section four of the components of a Website Agent are briefly discussed. For a Website Agent, the internal storage and updating of information on the world and on other agents (the beliefs of the agent) is performed by the two components maintenance of world information and maintenance of agent information. Profile information on customers is obtained from Personal Assistants, and maintained with the customer’s permission. Also identified behaviour instances of the Personal Assistants can give input to the profile. Maintenance of world information includes: info on available information. Maintenance of agent information includes: info on customer profiles, customer privacy constraints, other WA’s scopes. Within the agent specific task component matching techniques are employed to relate demands and offers.For the Personal Assistant, as for the Website Agent, the internal storage and updating of information on the world and on other agents is performed by the two components maintenance of world information and maintenance of agent information. Maintenance of world information includes information on available information. Maintenance of agent information includes: customer needs and profile, customer privacy constraints, WAs scopes5 The multi-agent system’s behaviourThe multi-agent system’s behaviour will be explained for two cases: behaviour initiated by an information request of a user (user initiated), and behaviour initiated by update or addition of information to the Website (Website initiated). In both cases, after initiation a reactivity chain is trigered. In the first case the main reactivity chain follows the path user-PA-WA-PA-user; the first half of this path deals with the queries, and the second half (back) with answers on these queries. In the second case the main reactivity chain follows the path WA-PA-user-PA-WA; here the first half deals with volunteerly offered information (one-to-one marketing), and the second half (back) with feedback on usefulness of the offered information (in order to update profile information).5.1 Information used in the systemThis system is a prototype, as such it does not work with the actual information on the Website. Instead a sample of the information objects on the Website was taken and a description of each of these was made.Fig. 3. User interface for asking questions and stating user interestIn deliberation with people from the insurance company the following attributes were selected to describe the information:• Title: The title of the information object.• Author: The department or person that created the information object.• Subject: Subject of the information object.• First Relation: The first related subject.• Second Relation: The second related subject.• Date: Date of creation/availability.• Language: What language the information is in.• Persistency: An indication of how soon the information will be outdated.• Kind: The form which the information object takes (mailform, text, audio, etc.).• Type: The type of of information the information object contains (FAQ, newsletter, personal information, etc.).• URL: The hyperlink to where the actual information object can be found5.2 Behaviour initiated by a userWhen a user asks a question, several things happen simultaneously in the Personal Assistant agent. The question is analysed to find similarities to previous questions and if these exist, new interests are created. Also, the agent tries to respond to the information request by finding information available within the PA itself and by contacting the appropriate Website Agents. To keep things clear, first it is described how an answer to a question is found. Next, the process of updating the user profile is discussed.Handling a question. First the behaviour as it appears to the user is described after which a more detailed description is given of what happens within the multi agent system itself.Fig. 4. Display for the answers to questions and offers made by a PAThe user interactionA user wants information about car insurance. So the user communicates this question to the personal assistant using the interface (Fig. 3). The user selects the subject ‘car insurance’ in the scrollable list under the heading ‘Subjects’ and presses the button ‘Question’. The Personal Assistant will start to acquire useful information on behalf of its user.Fig. 5. Details of the information foundFirst it looks into all the information it has already gathered and then it will contactappropriate Website Agents for more information. All the gathered information is thencommunicated to the user, using the display in Fig. 4. Each title is clickable to get adescription of the information (Fig. 5). Within this description a user can indicatewhether or not he or she evaluates the information as interesting.The processes within the multi-agent systemWhen the user communicates a question to the Personal Assistant agent, this agentanalyses this question in the component agent interaction management. The question itselfis then related to the task specific component determine proposals in the PersonalAssistant. In the component determine proposals this question is then matched to theinformation objects in the memory of the agent (component maintenance of world information). It is matched against all the information objects the agent has knowledge of. Two types of matching are covered: strict matching and soft matching. For strictmatching, attributes need to have exactly the same value, or an overlapping valuerange. For soft matching, it can be specified when values of attributes are consideredclose (but not necessarily equal) to each other. This closeness relation may be basedon various techniques. In the current prototype the closeness relation for the subjectattribute is taken as a point of departure, abstracting from the manner in which it isdetermined (it is assumed to be specified in any manner). One of the matching rules is:if query(Q:QUERY_ID, scope(subject, S:SUBJECT))and object_scope(O:OBJECT_ID, scope(related_subject, S:SUBJECT))then possible_answer_to_query(O:OBJECT_ID, Q:QUERY_ID);Subject is being matched with the related subject. If this rule succeeds, the object is selected as a possible answer. For this possible answer to become a definite answer, the object must not differ on another attribute; see the following rule:if query(Q:QUERY_ID, scope(A:ATTRIBUTE, V1:VALUE))and object_scope(O:OBJECT_ID,scope(A:ATTRIBUTE, V2:VALUE))and not A:ATTRIBUTE = subjectand not V1:VALUE = V2:VALUEthen rejected_answer_for_query(O:OBJECT_ID, Q:QUERY_ID);Then with the following rule the final answer to the question is derived:if possible_answer_to_query(O:OBJECT_ID, Q:QUERY_ID)and not rejected_answer_for_query(O:OBJECT_ID, Q:QUERY_ID)then selected_answer_to_query(O:OBJECT_ID, Q:QUERY_ID);Simultaneously, in the same component, the Website Agents the Personal Assistant is aware of are considered for further information. This is done in three steps. First, the Personal Assistant agent looks for a Website Agent that is known to provide information about the same subject (part of the Personal Assistant’s agent model for the Website Agent, expressed in webagent_subject(W:WA, S:SUBJECT) within component maintenance of agent information) as the subject to which the question refers:if query(Q:QUERY_ID, scope(subject, S:SUBJECT))and webagent_subject(W:WA, S:SUBJECT)then main_wa_for_answer(W:WA, Q:QUERY_ID)and found_wa_for_query(Q:QUERY_ID);This rule will not succeed however when the question does not contain a subject term or when no appropriate Website Agent subjects are known. Then the Personal Assistant agent can fall back to a second method of finding an appropriate Website Agent, by considering another part of its agent models of Website Agents:if query(Q:QUERY_ID, S:SCOPE)and can_provide_scope(W:WA, S:SCOPE)then secondary_wa_for_answer(W:WA, Q:QUERY_ID)and found_wa_for_query(Q:QUERY_ID);Finally as a fail-safe, each personal assistant has a default Website Agent it can contact when it does not know whom to turn to. This default WA is stored in the component own process control and is for this purpose also available in the component determine proposals. The final selection of the WA to contact is done by the following three rules:if main_wa_for_answer(W:WA, Q:QUERY_ID)then selected_wa_for_answer(W:WA, Q:QUERY_ID);if secondary_wa_for_answer(W:WA, Q:QUERY_ID)then selected_wa_for_answer(W:WA, Q:QUERY_ID);if not found_wa_for_query(Q:QUERY_ID)and default_wa(W:WA)then selected_W:WA_for_answer(W:WA, Q:QUERY_ID);Now the selected_wa_for_answer terms and the selected_object_for_query terms are transferred to the component agent interaction management where communication is initiated to the selected Website Agent(s).A Website Agent receives the question and handles it in the same way the Personal Assistant handled it. The component determine proposals tries to find a match with the known information objects. The matches it comes up with are then communicated back to the Personal Assistant. By the component agent interaction management of the PA the received answer is then passed on to its user.if communicated_by(query_answer(Q:QUERY_ID, object_scope(O:OBJECT_ID, S:SCOPE)), pos, W:WA)then to_be_communicated_to(query_answer(Q:QUERY_ID, object_scope(O:OBJECT_ID, S:SCOPE)), pos, user);However, the information about the object is also stored by the personal assistant, so that in the future it can supply this information by itself.Update of user profile. In this prototype focus lay on the agent interaction and document selection. Profile management had a lower priority. Therefor the used mechanisms for profile management are very simple, without extensive research behind them. As stated earlier, the PA compares questions with each other. When similarities are found in enough questions, these similarities are then added as new user interests to the system. This is done in the (composed) component interest creator.A question is first compared to all other questions. A simple method has been chosen to create these candidates, whenever three different questions match on one or more attribute values, these attribute-value pairs are combined to a candidate interest specification:if asked(query(Q1:QUERY_ID, scope(A:ATTRIBUTE, V:VALUE)))and asked(query(Q2:QUERY_ID, scope(A:ATTRIBUTE, V:VALUE)))and asked(query(Q3:QUERY_ID, scope(A:ATTRIBUTE, V:VALUE)))and not Q1:QUERY_ID = Q2:QUERY_IDand not Q1:QUERY_ID = Q3:QUERY_IDand not Q2:QUERY_ID = Q3:QUERY_IDthen candidate_for_interest(candidate_id(Q1:QUERY_ID, Q2:QUERY_ID,Q3:QUERY_ID), scope(A:ATTRIBUTE, V:VALUE));Extra constraints could be added to the creation of these candidates. For example, the questions must be asked within a certain (temporal) distance of each other. The three query id’s are combined to create a temporary candidate id. The created candidate is then compared to the already existing interests.if candidate_for_interest(C:CANDIDATE_ID, scope(A:ATTRIBUTE, V1:VALUE)) and belief(interest(I:INTEREST_ID, scope(A:ATTRIBUTE, V2:VALUE))and not V1:VALUE = V2:VALUEthen different(C:CANDIDATE_ID, I:INTEREST_ID);Because this component is reasoning about changes in interests, it is at a meta-level compared to the component maintenance of agent information, in which the interests aremaintained. So reasoning about interests is done by encapsulating them with the term belief, as was done in the above rule.if new_interest_id(I:INTEREST_ID)and approved_candidate(C:CANDIDATE_ID, S:SCOPE)then to_be_created(interest(I:INTEREST_ID, S:SCOPE));If a candidate is not a duplicate of an already existing interest it can be added to the user interests. First a unique interest identifier is created and then the new interest is created in the component maintain agent information by way of an information link.5.3 Behaviour initiated by the WebsiteFor a second type of behaviour, iniatied by the Website, also first the behaviour to directly serve the user interaction is discussed, and next the behaviour of to update the user profile is described in more detail.Offering the user new information. First the behavior as it appears to the user is described after which a more detailed description is given of what happens within the multi agent system itself.The user interactionEvery once in a while the Personal Assistant will notify its user on its own initiative of interesting information it has found. This is done in the same display where answers to information requests are displayed (see Fig. 4). But now on the bottom half of the screen. Again, the user can click on a title to get more information about the proposal (Fig. 5). As with the responses to an information request, the user can choose to accept the proposed information or to reject it.The processes within the multi-agent systemWhen new information becomes available at the Website, the Website Agent starts to look for possible interested parties. Just as the Personal Assistant has built a profile of its user, the Website Agent has built a profile of the Personal Assistants it has been in contact with. In the component determine proposals of the Website Agent this information is matched to the Personal Assistants interests it has collected over time:if new_object_scope(O:OBJECT_ID, S:SCOPE)and interest(P:PA, I:INTEREST_ID, S:SCOPE)then partly_matched_new_object(O:OBJECT_ID, P:PA, I:INTEREST_ID);For each scope in the new object a comparison is done against the interests. When they match, the object is partly selected: that specific scope is matched to the interest. However, on another scope, the interest and the new object may differ. Only if none of these differences exist will the object be selected. The offer is then made in the component agent interaction management.。