mitel agent framework: architecture and applications
DESCRIPTION
Mitel Agent Framework: Architecture and Applications. Michael Weiss Nov 16, 1999. Contents. Motivation Objectives and issues Architecture Enabling technologies Agent architecture and support environment Case Studies Feature interaction Automatic route selection Big Picture - PowerPoint PPT PresentationTRANSCRIPT
Mitel Agent Framework: Architecture and Applications
Mitel Agent Framework: Architecture and Applications
Michael WeissMichael Weiss
Nov 16, 1999Nov 16, 1999
2
MotivationMotivation• Objectives and issuesObjectives and issues
ArchitectureArchitecture• Enabling technologiesEnabling technologies
• Agent architecture and support environmentAgent architecture and support environment
Case StudiesCase Studies• Feature interactionFeature interaction
• Automatic route selectionAutomatic route selection
Big PictureBig Picture• Agent-based designAgent-based design
• Call Processing LanguageCall Processing Language
ContentsContents
4
Convergent ParadigmConvergent Paradigm
PSTN
BroadbandService A Broadband
Service B
NetworkGateway
CallControl
ApplicationsGateway
VideoConferencing
IVR
NetworkManagement
ACD
DatabaseServer
FileServer
WebServer
BroadbandBackbone
5
ObjectivesObjectives
Main objective Main objective • Rapid creation and customization of servicesRapid creation and customization of services
Support transparencySupport transparency• Service (who)Service (who)
• Technology (what)Technology (what)
• Location (where)Location (where)
Meet reliability and real-time constraintsMeet reliability and real-time constraints• Unexpected contingenciesUnexpected contingencies
• Quality of service guarantees for servicesQuality of service guarantees for services
6
IssuesIssues
Service and resource discoveryService and resource discovery
CommunicationCommunication
OntologyOntology
CoordinationCoordination
Integration with legacy systemsIntegration with legacy systems
ConfigurationConfiguration
Visualization and monitoringVisualization and monitoring
8
Agents - Our DefinitionAgents - Our Definition
A A reusablereusable software component that provides software component that provides controlled accesscontrolled access to services. to services.
• A printer agent provides printing services schedules A printer agent provides printing services schedules requests to a shared printer.requests to a shared printer.
Basic building blocks for applications organized Basic building blocks for applications organized as as networks of collaborating agentsnetworks of collaborating agents..
• A desktop agent "recruits" the services of a trunk and a A desktop agent "recruits" the services of a trunk and a set resource agent.set resource agent.
Behavior constrained by Behavior constrained by policiespolicies set by higher- set by higher-level agents (security, user prefs etc). level agents (security, user prefs etc).
• 60% of the calls routed over one trunk agent are 60% of the calls routed over one trunk agent are reserved for a specific user agent. reserved for a specific user agent.
9
Enabling Technologies
KQML/ACLKQML/ACL
CORBACORBA
JavaJava
Operating SystemOperating System
XMLXML IntegrationIntegration
CommunicationCommunication
DistributionDistribution
ObjectsObjects
PlatformPlatform
10
Layered AgentLayered Agent
Sensory
Beliefs
Reasoning
Actions
Collaboration
Translation
Mobility
NetworkNetwork
ServiceService
ResourceResource
11
Network LayerNetwork Layer
Yellow-page directory of agent capabilities. For scalability, facilitators
are arranged in hierarchies.White page directory of agent names.
A pool of reusable agents and agent components (features and resourceadapters) that can be added to an
application without recompiling or evenstopping the application.
12
Service LayerService Layer
*
ResourceAdapter
SelectionPolicy
*
Contract
*
*QoSMonitorContractManager
*
*
13
Resource LayerResource Layer
*
Feature
AdmissionControl
*
Service
*
FeatureInteractionManagerFeatureExecutionManager
*
14
Agent ApplicationAgent Application
Super-visor
Agent
Sub-ordinate Feature
Feature
Feature
Resource adapters
Features (device independent)
usesuses
usesuses
Feature
Resource
owns
Service
Contractsuses/owns
ownsownsowns
15
Support EnvironmentSupport Environment
ADE AEE
deployment and configuration
notifications
ANS
Factory
Factory Factory
Feature Interaction
System = { Applications } + { Resources }System = { Applications } + { Resources }
Application = { Services }Application = { Services }
Service = { Basic service } + { Features }Service = { Basic service } + { Features }
Application
Services
Features
Resources
Causes of Feature Interaction
ConflictsConflicts• IndeterminacyIndeterminacy
• Assumption violationAssumption violation
Resource contentionResource contention
Design by others (integration)Design by others (integration)
Design evolution (impact of changes)Design evolution (impact of changes)
Fault managementFault management
CW
CLTC
Example
MCA = { BasicCallApp } + { Phone, CallDB }MCA = { BasicCallApp } + { Phone, CallDB }
BasicCallApp = { BasicCallSvc, BillingSvc }BasicCallApp = { BasicCallSvc, BillingSvc }
BasicCallSvc = { TermCall (TC), OrigCall (OC) } + BasicCallSvc = { TermCall (TC), OrigCall (OC) } + { CallForwardBusy (CFB), CallWaiting (CW) }{ CallForwardBusy (CFB), CallWaiting (CW) }
BillingSvc = { CallLogging (CL) }BillingSvc = { CallLogging (CL) }
BasicCallApp
BillingSvc
BasicCallSvc
Phone
CallDBOCCFB
Hypothetical Call Center
Trunk Trunk
Trunk Group
Set Group
Set Set
CallCenter
DesktopGroup
DesktopCW
OC
Desktop CFB
Resource adapters
Features (device independent)
usesuses
usesuses
TC
22
Conflict ResolutionConflict Resolution
*
Feature
AdmissionControl
*
Service
*
FeatureInteractionManagerFeatureExecutionManager
*Precedencerules
CFB > CW
CFB > TCCW > TC
Conflict set{TC, CFB, CW}
Result set{CFB}
23
Multi-Party InteractionMulti-Party Interaction
Consider the example of the interaction of CFB Consider the example of the interaction of CFB and OCS. The problem is typically stated as: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 X’s list of forbidden numbers, then X can reach a forbidden number by calling Y.
XisCallerScreened(Z)
YforwardTo(Z)
Z
call(Y) forward(Z)
24
NegotiationNegotiation
X.OC X.OCS Y.CFB Z.TCdesktop Y.TC
1: ask(Call-Y)
isCallerScreened(Z) forwardTo(Z)isBusy(Y)
2: offer(Call-Y)
3: ask(Call-Z)
4: reject(Call-Z)
25
Automatic Route SelectionAutomatic Route Selection
Equal access allows a company to route their Equal access allows a company to route their calls through multiple carriers. calls through multiple carriers.
Conventional LCR selects route only on time of Conventional LCR selects route only on time of day and requires route tables to be precoded. day and requires route tables to be precoded.
Our approach uses intelligent bidding between Our approach uses intelligent bidding between agents representing the carriers.agents representing the carriers.
In this approach the agents interpret the service In this approach the agents interpret the service plans directly (no precoding of route tables).plans directly (no precoding of route tables).
26
User/Task/Mediator PatternUser/Task/Mediator Pattern
ContextContext• You want to use agents to facilitate between people You want to use agents to facilitate between people
and information sources, and people to people.and information sources, and people to people.
ProblemProblem• To encapsulate information about people, queries, and To encapsulate information about people, queries, and
information sources.information sources.
ForcesForces• Agents don't have extensive domain knowledge.Agents don't have extensive domain knowledge.
• Since users may play multiple roles at the same time Since users may play multiple roles at the same time you must keep role-specific information separate.you must keep role-specific information separate.
• Queries may be long-lived (e.g. days or weeks).Queries may be long-lived (e.g. days or weeks).
• User feedback should be used to make User feedback should be used to make recommendations to other users in the community.recommendations to other users in the community.
27
User/Task/Mediator PatternUser/Task/Mediator Pattern
SolutionSolution• User agents form the interface between the user and User agents form the interface between the user and
the other agents. They receive the user's queries and the other agents. They receive the user's queries and feedback, and present information tailored to the user.feedback, and present information tailored to the user.
• Task agents are created for each user query. They Task agents are created for each user query. They propagate the query to all available sources. The task propagate the query to all available sources. The task agents collect the results returned and sort them.agents collect the results returned and sort them.
• Task agents may be long-lived (e.g. days or weeks) Task agents may be long-lived (e.g. days or weeks) and permanently represent a user in a given role.and permanently represent a user in a given role.
• Mediator agents mediate between task agents: Mediator agents mediate between task agents: – Recommender agents store the users’ evaluations of Recommender agents store the users’ evaluations of
recommendations. They apply both content-based and recommendations. They apply both content-based and collaborative filtering before recommending items.collaborative filtering before recommending items.
– Search agents forward a user query to a user-specified Search agents forward a user query to a user-specified search engine. The search agent extracts the search search engine. The search agent extracts the search results from the pages provided by the search engine.results from the pages provided by the search engine.
28
User/Task/Mediator PatternUser/Task/Mediator Pattern
TaskAgent
TaskAgent
UserAgent
TaskAgent
UserAgent
TaskAgent
MediatorAgentMediatorAgent
MediatorAgent
TaskAgent
UserAgent
29
Application to ARSApplication to ARS
TaskAgent
TaskAgent
RouterAgent
CustomerAgent
TaskAgent
CustomerAgent
CarrierAgent
CarrierAgent
CarrierAgent
TrunkAgent
TrunkAgent
8-* 0- 35¢
1-* 0-500 20¢ 500- 3¢
Call 1-416-234-5678 Volume 400
1-* 0-100 10¢ 100-1000 8¢ 1000- 5¢
30
Message FlowMessage Flow
TaskAgent
RouterAgent
CustomerAgent
CarrierAgent
TrunkAgent
CarrierAgent
TrunkAgent
ask-route
tell-route
ask-route
ask-bid
tell-route
ask-bid
propose-bid
propose-bid
accept-bid
reject-bid
ask-trunk
tell-trunk
33
Agent-Based DesignAgent-Based Design
Non-functionalrequirements
Use case maps
AgentsTest cases
Performance
34
Call Processing LanguageCall Processing Language
CA CA
GW GW
OPI constraints in XML
Voice
Commandsand events in
XML
Commandsand events in
XML
Features in XMLFeatures in XML
User preferences in XML
OPI
Deontic logic modelDeontic logic model• Obligation Obligation O(P) O(P)
• Interdiction Interdiction O(~P) O(~P)
• Waiver Waiver ~O(P)~O(P)
• PermissionPermission ~O(~P)~O(~P)
ExamplesExamples• O(Originate)O(Originate)
• O(Terminate) & I(Forward)O(Terminate) & I(Forward)
• O(Redirect) & dn=4578O(Redirect) & dn=4578
• O(Terminate) & P(Display)O(Terminate) & P(Display)
37
OriginateOriginate
Acquire Destination ID
Offer Call to Destination Connect
Wait Originator On Hook
Process Call
Connect Voice Path
Wait Destination On HookVerify Destination ID
Verify DestinationAvailability
Wait Answer
Collect ID
Redirect
Verify User Availability
Indicate Call
Establish Connection
Wait Own On Hook Connect Voice Path
Identify Redirection ID Redirect
TerminateTerminate Call ForwardCall Forward
Wait Originator On Hook
(Perform (O Terminate) (I Redirect))
Available
Apply Reorder
No Answer
(Perform (O Originate) (I Redirect))
38
OPI-XMLOPI-XML
<sequence name="processCallOrigination">
<sequence name="acquireDestinationId">
<command name="collectDestinationId" timeout="5s">
<timeout>
<fail action="applyReorder"/>
</timeout>
</command>
<command name="verifyDestinationId">
<invalid>
<fail action="applyReorder"/>
</invalid>
</command>
</sequence>
<sequence name="offerCallToDestination">
<propose>
<assertion aspect="oblige" value="terminate"/>
</propose>
<command name="verifyDestinationAvailability" timeout="10s"> ...
<command name="waitForAnswer"> ...
</sequence>
</sequence>