Title: Mitel Agent Framework: Architecture and Applications
1Mitel Agent Framework Architecture and
Applications
- Michael Weiss
- Nov 16, 1999
2Contents
- Motivation
- Objectives and issues
- Architecture
- Enabling technologies
- Agent architecture and support environment
- Case Studies
- Feature interaction
- Automatic route selection
- Big Picture
- Agent-based design
- Call Processing Language
3Motivation
4Convergent Paradigm
Broadband Backbone
5Objectives
- Main objective
- Rapid creation and customization of services
- Support transparency
- Service (who)
- Technology (what)
- Location (where)
- Meet reliability and real-time constraints
- Unexpected contingencies
- Quality of service guarantees for services
6Issues
- Service and resource discovery
- Communication
- Ontology
- Coordination
- Integration with legacy systems
- Configuration
- Visualization and monitoring
7Architecture
8Agents - Our Definition
- A reusable software component that provides
controlled access to services. - A printer agent provides printing services
schedules requests to a shared printer. - Basic building blocks for applications organized
as networks of collaborating agents. - A desktop agent "recruits" the services of a
trunk and a set resource agent. - Behavior constrained by policies set by
higher-level agents (security, user prefs etc). - 60 of the calls routed over one trunk agent are
reserved for a specific user agent.
9Enabling Technologies
10Layered Agent
11Network Layer
12Service Layer
13Resource Layer
14Agent Application
Super- visor
Agent
Service
Feature
Feature
Sub- ordinate
Feature
Feature
owns
owns
owns
owns
uses
uses
uses
uses
Resource adapters
Resource
Features (device independent)
Contracts
uses/owns
15Support Environment
deployment and configuration
ADE
AEE
notifications
16Case Studies
17Feature Interaction
- System Applications Resources
- Application Services
- Service Basic service Features
18Causes of Feature Interaction
- Conflicts
- Indeterminacy
- Assumption violation
- Resource contention
- Design by others (integration)
- Design evolution (impact of changes)
- Fault management
19Example
- MCA BasicCallApp Phone, CallDB
- BasicCallApp BasicCallSvc, BillingSvc
- BasicCallSvc TermCall (TC), OrigCall (OC)
CallForwardBusy (CFB), CallWaiting (CW) - BillingSvc CallLogging (CL)
BillingSvc
BasicCallSvc
TC
CL
OC
CFB
CallDB
CW
BasicCallApp
Phone
20Hypothetical Call Center
CallCenter
Desktop Group
Set Group
Trunk Group
TC
OC
Trunk
Trunk
Set
Set
Desktop
Desktop
CFB
CW
uses
uses
uses
uses
Resource adapters
Features (device independent)
21State Machines for Features
22Conflict Resolution
Conflict set TC, CFB, CW
Precedence rules CFB gt CW CFB gt TC CW gt TC
Result set CFB
23Multi-Party Interaction
- Consider the example of the interaction of CFB
and OCS. The problem is typically stated as
If a caller X who subscribes to feature
Originating Call Screening calls person Y, and
if Y forwards all of their calls to a number Z on
Xs list of forbidden numbers, then X can reach
a forbidden number by calling Y.
call(Y)
forward(Z)
X isCallerScreened(Z)
Y forwardTo(Z)
Z
24Negotiation
25Automatic Route Selection
- Equal access allows a company to route their
calls through multiple carriers. - Conventional LCR selects route only on time of
day and requires route tables to be precoded. - Our approach uses intelligent bidding between
agents representing the carriers. - In this approach the agents interpret the service
plans directly (no precoding of route tables).
26User/Task/Mediator Pattern
- Context
- You want to use agents to facilitate between
people and information sources, and people to
people. - Problem
- To encapsulate information about people, queries,
and information sources. - Forces
- Agents don't have extensive domain knowledge.
- Since users may play multiple roles at the same
time you must keep role-specific information
separate. - Queries may be long-lived (e.g. days or weeks).
- User feedback should be used to make
recommendations to other users in the community.
27User/Task/Mediator Pattern
- Solution
- User agents form the interface between the user
and the other agents. They receive the user's
queries and feedback, and present information
tailored to the user. - Task agents are created for each user query. They
propagate the query to all available sources. The
task agents collect the results returned and sort
them. - Task agents may be long-lived (e.g. days or
weeks) and permanently represent a user in a
given role. - Mediator agents mediate between task agents
- Recommender agents store the users evaluations
of recommendations. They apply both content-based
and collaborative filtering before recommending
items. - Search agents forward a user query to a
user-specified search engine. The search agent
extracts the search results from the pages
provided by the search engine.
28User/Task/Mediator Pattern
29Application to ARS
30Message Flow
Task Agent
Router Agent
Customer Agent
Carrier Agent
Trunk Agent
Trunk Agent
Carrier Agent
ask-route
ask-route
ask-bid
propose-bid
ask-bid
propose-bid
accept-bid
reject-bid
tell-route
tell-route
ask-trunk
tell-trunk
31Visualization
32Big Picture
33Agent-Based Design
Non-functional requirements
Performance
Use case maps
Agents
Test cases
34Call Processing Language
35End
36OPI
- Deontic logic model
- Obligation O(P)
- Interdiction O(P)
- Waiver O(P)
- Permission O(P)
- Examples
- O(Originate)
- O(Terminate) I(Forward)
- O(Redirect) dn4578
- O(Terminate) P(Display)
37Originate
(Perform (O Originate) (I Redirect))
Redirect
Process Call
Acquire Destination ID
Connect Voice Path
Offer Call to Destination
Connect
Collect ID
Verify Destination Availability
Verify Destination ID
Wait Originator On Hook
Wait Destination On Hook
Wait Answer
Call Forward
Terminate
Identify Redirection ID
Redirect
Establish Connection
Verify User Availability
Indicate Call
Wait Originator On Hook
Wait Own On Hook
Connect Voice Path
38OPI-XML
- ltsequence name"processCallOrigination"gt
- ltsequence name"acquireDestinationId"gt
- ltcommand name"collectDestinationId"
timeout"5s"gt - lttimeoutgt
- ltfail action"applyReorder"/gt
- lt/timeoutgt
- lt/commandgt
- ltcommand name"verifyDestinationId"gt
- ltinvalidgt
- ltfail action"applyReorder"/gt
- lt/invalidgt
- lt/commandgt
- lt/sequencegt
- ltsequence name"offerCallToDestination"gt
- ltproposegt
- ltassertion aspect"oblige"
value"terminate"/gt - lt/proposegt
- ltcommand name"verifyDestinationAvailability"
timeout"10s"gt ... - ltcommand name"waitForAnswer"gt ...