A Demo for Agent-Based

Concurrent Product Design and Planning over the Internet


    This is a prototype for a Multi-Agent System designed for distributed concurrent product design and planning.

    There are five Java-based agents in the system, namely Design Agent, Facilitator, Capability Agent, Manufacturability
    Evaluation Agent and Process Planning Agent. Remote users have access to the last four agents geographically distributed
    via Design Agent. All the five agents register, connects and communicates with each other through a router running on
    engp7695.nus.edu.sg.

    1. Design Agent - The applet below is used to create a Design Agent which is used by users to submit the information
        of his/her product design, before or after modification, to this system for manufacturability analysis, and process plan
        generation on his/her product design. It tells designers to make some modifications to his/her product design if it receives
        message from Facilitator about "local manufacturability evaluation failures" - the conflicts between features or the
        unmanufacturability of product design itself - together with some suggestions for modifications.

    2. Facilitator - Facilitator is responsible for the management of the agent community. and manages all agent interactions
        required to handle queries. It's up to Facilitator to dispatch tasks. It "knows" what agents there are, what functions each
        agent has and where it is. It facilitates the communications between these agents. Each agent receives messages from
        Facilitator, and sends results back to Facilitator after finishing their jobs. It routes the requests received from request
        agents to appropriate agent based on its knowledge of capabilities of each agent, which is know as content-based
        routing.

    3. Manufacturing Capability Agent - Manufacturing Capability Agent encapsulates manufacturing capability models from
        different plants, which contain information of shop-floor resources available (machines and tools) and capabilities of these
        resources. It is responsible for changing to a suitable capability model if receiving, from Facilitator, messages about
        "global manufacturability evaluation failures" - no suitable machine or tool to machining some feature in current capability
        model.

    4. Manufacturability Evaluation Agent - A C-programmed manufacturability analysis module is encapsulated within this
        agent. It is responsible for the manufacturability evaluation on the product design by acquiring a capability model from
        Capability Agent. It returns information about conflicts - global/local manufacturability evaluation failures - to Facilitator if
        evaluation fails for the given capability model, as well as some valuable suggestions for product redesign or changing to a
        different capability model. If no conflict is found, it informs Design Agent, via Facilitator, to proceed to process planning
        generation.

    5. Process Planning Agent - A C-programmed process plan generation module is encapsulated within this agent. It is
        responsible for the generation of the optimum process plan.
 
    In addition, all agents must agree to communicate through the same router. In this case, that router is running on
    engp7695.nus.edu.sg.

    For users to have access to four service agents via Design Agent at any time, all the four agents should be running
    all the time. So you may not have this demo run properly because of the off-line of any one of the four service
    agents.
 

    Demo steps (if errors occur, please Email us and we'll try to fix them as soon as possible)

    1. First, the Design Agent must be initialized. This is done by licking on the purple buttons below. This should result in a new
        window appearing for the agent.
    2. Once the agent is initialized, it must register itself with the router. Click the 'Register' button to send a registration request
        to the router ( We recommand you to use "Design Agent" as the name of the agent when registrating). The router will
        respond to the agent with a registration status message (in a small window), which you should acknowledge by click on
        'OK'.
    3. Once registered, the agent can set up a communication connection to the router. To do this, click the 'Connect' button for
        the agent and acknowledge the connection status message.
    4. Now the Design Agent is registered and connected to the router. It is ready to send KQML message (KQML parse
        doesn't allow unpaired open, closed parenthesis, or distinguish the quoted string>) to any agent registrated to the same
        router.

        The activities conducted by Design Agent for this demo are as follows.

        (1) Case one (Local conflicts)

        Go to 'Compose' panel, type in 'Performative' text field as 'Evaluation' and type in 'Receiver' text field as 'Facilitator'.
        ('Tell' and 'ReceiverAgentName' should be replaced). Type in content field as the data file name of your product design
        but it should follow KQML syntax. In this demo, type in 'part11.dat tooldata1.dat' for the first example. The second
        file is the data file about information of tools. Here only one machine data file is used, so it is default.
        Click 'send' button. Facilitator routes these information to Evaluation Agent for making a manufacturability analysis on
        this product design.
        After several seconds, Design Agent receives a message from Facilitator about unmanufacturability of a feature. It
        shows itself a Local Conflict, so Facilitator routes this message from Evaluation Agent to Design Agent to inform the
        latter to make modifications to the intial design.         Assuming that 'part11.dat' has been modified into a new one 'part12.dat', type in content field as 'part12.dat
        tooldata1.dat' and click on 'send' again for a manufacturability reevaluation on the design. This time Design Agent
        receives a message notifying it of a successful evaluation result, and informing it to make process planning on the final
        design.         Go to 'Compose' panel again, type in 'Performative' text field as 'ProcessPlanning', and type in 'Receiver' text field as
        'ProcessPlanningAgent' and content field as 'part1.dat test_pr1.dat', then click on 'send' button. The second data file
        is the information about the product features' relationship.
        After around twenty sceonds, Design Agent receives a message from Process Planning Agent, which comprises an
        optimum process plan for the product.

        (2) Case two (Global conflicts)

        Go to 'Compose' panel, type in 'Performative' text field as 'Evaluation' and type in 'Receiver' text field as 'Facilitator'.
        ('Tell' and 'ReceiverAgentName' should be replaced). Type in content field as 'part3.dat tooldata1.dat' for the second
        example.
        After several seconds, Design Agent receives a message from Capability Agent about a global conflict. It informs
        Design Agent that Capability Agent has changed current capability model to a different one, for example
        'tooldata2.dat'. Because Evaluation Agent detects a global conflict for this example, Facilitator routes this conflict to
        Capability Agent for looking for a suitable capability model as a substitute.         Type in content field as 'part3.dat tooldata3.dat' and click on 'send' again for a manufacturability reevaluation on the
        design. This time Design Agent receives a message notifying it of a successful evaluation result, and informing it to
        make process planning on the final design.         Go to 'Compose' panel again, type in 'Performative' text field as 'ProcessPlanning', and type in 'Receiver' text field as
        'ProcessPlanningAgent' and content field as 'part3.dat test_pr3.dat', then click on 'send' button. Process Planning
        Agent responds to it with an optimum process plan.
 
    5. When you are finished, we ask that you 'Disconnect' and 'Unregister' the Design Agent. This will free up agent name
        space on the router and allow it to drop it's connection to the agents gracefully.



Manufacturing Division, Dept. of Mechanical and Production Engineering
National University of Singapore
Oct. 1998