Mitel Agent Framework: Architecture and Applications

38
Mitel Agent Framework: Architecture and Applications Michael Weiss Michael Weiss Nov 16, 1999 Nov 16, 1999

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 Presentation

Transcript of Mitel Agent Framework: Architecture and Applications

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

3

MotivationMotivation

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

7

ArchitectureArchitecture

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

16

Case StudiesCase Studies

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

State Machines for Features

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

31

VisualizationVisualization

32

Big PictureBig Picture

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

35

EndEnd

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>