1 Paola Boettner Mansi Gupta Wellesley College Bryn Mawr College Communication Virtual Machine Feature Analysis & Policy Definitions Advisor: Dr. Peter J Clarke PhD Students Andrew Allen & Yali Wu
Jun 20, 2015
1
Paola Boettner Mansi Gupta
Wellesley College Bryn Mawr College
Communication Virtual Machine
Feature Analysis & Policy Definitions
Advisor: Dr. Peter J Clarke
PhD StudentsAndrew Allen & Yali Wu
2
Motivation
Collaborative Communication Applications should take into consideration: Rich functionality User priorities User preferences
3
What is CVM?
CVM is a new paradigm for developing collaborative communication applications.[1]
CVMUCI
SE
UCM
NCB
JML
Bridge
Communication Service Manager
Google Talk Skype
Bridge Bridge NCB (Native Code)
4
Problem Description
Explore communication frameworks and analyze user needs to form policy structures for CVM
To extend the autonomic behavior of CVM
Tasks:1) Literature Review and Feature Analysis
2) Policy Definitions
5
Feature Analysis[2]
The process of identifying, collecting, organizing and representing information in a domain based on the study of existing systems and development histories.
Take into account the ways in which the systems are alike (core features) and how they differ (additional features) in order to allow successful software re-use.
6
Literature Review
Identifying various communication frameworks Exploring each framework:
Core Features Additional Features API
Scan developer websites, follow links, experiment with features
Compile findings and analyze them using domain analysis
7
Feature Table[4-11]
Core FeaturesNCB Native Skype JML gTalk Android Yahoo! Windows Live Messenger Blackberry OS AOL Palm OS (TREO 755p)
Chat (one to one) 1 1 1 1 1 1 1 1 1 1Chat (conference) 1 1 1 1 1 1 1 1 1 1Audio (one to one) 1 1 1 1 1 1 1 1 1 1Audio (conference) 1 1* 0 0 0 1 1 1 0 upto 3 peopleVideo (one to one) 1 1 0 0 1 1 1 1 1 0Video (conference) 1 0 0 0 0 1 1 0 0 0File Transfer 1 1 0 1 1 1 1 1 1 1Contact List 1 1 1 1 1 1 1 1 1 1API Java Java Java C++ Java JavaScript/ C++ JavaScript (HTTP Based) Java Java, C/C++ HTML
Additional Features
Emoticons 1 1 1 1 0 1 1 1 1 1Online Status 1 1 1 1 1 1 1 1 1 1Avatar Images 0 1 1 1 1 1 1 1 1 1Voicemail 1 1 0 0 0 1 1 1 0 1PC to Phone ? Bills 1 1 0 Bills Bills 0 1 1Phone to PC ? 0 0 0 0 Bills 0 Bills 1 0Message Archive 0 1 0 1 1 1 1 1 0 1Plug-Ins 0 1 1 1 1 1 1 1 1 1Importing friend lists 0 1 0 1 1 1 1 1 1 1IM forwarding to cellphones 0 1 0 0 0 1 1 1 1 1Radio 0 1 0 0 0 1 0 1 1 1
Comments:
*Audio conferencing in Skype depends on Hardware
Single Core Processors- a maximum of 4 people allowed
Dual Core Processors- more than 4 people allowed
8
Feature Diagram
9
Policies[3]
A policy is a set of considerations designed to guide decisions on courses of action.
They are rules that define the choices in the behavior of a system.
Identify policy structures: Use comparative study of features Identify user needs by creating common
scenarios Create a GUI for users to create their policies
10
Policy Design[3]
Scope: What is or is not the subject of the policy Service Operation Active
Condition: When the policy is to be applied Medium Operation
Business Value: labels relative priority allowing to make economic trade-offs Business Group Value
Decision: describes desired outcome of a policy Medium Attribute ConnectionID minVal maxVal boolVal
11
Policy Example[1]
12
User Interface Goals:
Outline the communication framework features for the user
Allow user to make choices based on preferences: features can be required or optional
Generate policies in XML to be read by the CVM Present user with an ranked list of relevant
frameworks Eliminate frameworks if they do not support one or more
of the required features. Rank remaining frameworks according to the number of
optional features they support (business value)
13
Design
14
Design
15
Interface Implementation Scenario:
Chat: Optional Emoticons: Required Message Archive: Optional
Audio: Required File Transfer: Required
16
Results: Chat Policy<csmPolicy> <scope>
<service>”Communication Object”</service><operation>”selection”</operation><active>”true”</active>
</scope> <condition>
<medium>”chat”</medium><operation>”request”</operation>
</condition> <businessValue>
<businessGroup>”general”</businessGroup><value>50</value>
</businessValue> <decision>
<mediumAttribute>”num_users”</mediumAttribute><connectionID>”connectionID”</connectionID><minVal>”connectionID.users”</minVal>
</decision></csmPolicy>
17
Results: Emoticons Policy<csmPolicy> <scope>
<service>”Communication Object”</service><operation>”selection”</operation><active>”true”</active>
</scope> <condition>
<medium>”chat”</medium><operation>”request”</operation>
</condition> <businessValue>
<businessGroup>”general”</businessGroup><value>50</value>
</businessValue> <decision>
<mediumAttribute>”Emoticons”</mediumAttribute><connectionID>”connectionID”</connectionID><minVal>”connectionID.emot”</minVal>
</decision></csmPolicy>
18
Results: Message Archive Policy<csmPolicy> <scope>
<service>”Communication Object”</service><operation>”selection”</operation><active>”true”</active>
</scope> <condition>
<medium>”chat”</medium><operation>”request”</operation>
</condition> <businessValue>
<businessGroup>”general”</businessGroup><value>25</value>
</businessValue> <decision>
<mediumAttribute>”msgArch”</mediumAttribute><connectionID>”connectionID”</connectionID><minVal>”connectionID.msgArch”</minVal>
</decision></csmPolicy>
19
Results: Audio Policy<csmPolicy> <scope>
<service>”Communication Object”</service><operation>”selection”</operation><active>”true”</active>
</scope> <condition>
<medium>”audio”</medium><operation>”request”</operation>
</condition> <businessValue>
<businessGroup>”general”</businessGroup><value>100</value>
</businessValue> <decision>
<mediumAttribute>”num_users”</mediumAttribute><connectionID>”connectionID”</connectionID><minVal>”connectionID.users”</minVal>
</decision></csmPolicy>
20
Results: File Transfer Policy<csmPolicy> <scope>
<service>”Communication Object”</service><operation>”selection”</operation><active>”true”</active>
</scope> <condition>
<medium>”fileTransfer”</medium><operation>”request”</operation>
</condition> <businessValue>
<businessGroup>”general”</businessGroup><value>100</value>
</businessValue> <decision>
<mediumAttribute>”num_users”</mediumAttribute><connectionID>”connectionID”</connectionID><minVal>”connectionID.users”</minVal>
</decision></csmPolicy>
21
Selection Process
Chat: Supported by all frameworks Emoticon: Android is eliminated from the set Message Archive: Since it is optional, no
frameworks are eliminated; however, the following frameworks are given a lesser business value: NCB Native AOL Instant Messenger
Audio: Supported by all frameworks File Transfer: JML is eliminated
22
Selected Frameworks
1) Skype, Google Talk, Yahoo! Messenger, Windows Live Messenger, Blackberry OS, Palm OS
2) NCB Native, AOL Instant Messenger
User should be able to select framework according to their preference based on the ranked list
23
Acknowledgements
National Science Foundation Florida International University Dr. Milani Dr. Peter J Clarke PhD Students:
Andrew Allen Yali Wu
24
References
[1] Deng, Y., Sadjadi, S.M., Clarke, P.J., Hristidis, V., Rangaswami, R., Wang, Y.:CVM - A Communication Virtual Machine. Journal of Systems and Software (2008)(in press)
[2] Krut Robert, Zalman Nathan. Domain Analysis Workshop Report for the Automated Prompt Response System Domain, May 1996.
[3] Allen Andrew. A, Leslie Sean, Wu Yali, Clarke Peter. J. Self-Configuring User-Centric Communication Services. ICONS 08
[4] <http://code.google.com/android/documentation.html> [5] <http://messenger.yahoo.com/features/> [6] <http://get.live.com/messenger/features>
25
References
[7]<http://help.channels.aol.com/kjump.adp?articleId=222487>
[8] <http://na.blackberry.com/eng/devices/features/>
[9]<http://www.palm.com/us/product/smartphone/tro755/index.html>
[10] Skype Limited. Skype developer zone, Feb 2007 https://developer.skype.com/
[11] Google. Googletalk, Sept. 2007. http://www.google.com/talk/.
26
Questions?