1 self-configuring of multiple frameworks for ncb sean leslie ricardo tirado graduate students:...
TRANSCRIPT
11
Self-configuring of multiple Self-configuring of multiple frameworks for NCB frameworks for NCB
Sean LeslieSean LeslieRicardo TiradoRicardo Tirado
Graduate Students: Andrew AllenGraduate Students: Andrew Allen
22
Problem/MotivationProblem/Motivation
Communication Virtual MachineCommunication Virtual Machine– A new paradigm for developing new A new paradigm for developing new
communication applicationscommunication applications ProblemProblem
– Adding additional medium coverage to the Adding additional medium coverage to the CVM.CVM.
MotivationMotivation– Design NCB to be able to incorporate additional Design NCB to be able to incorporate additional
communication frameworks, and self-configure communication frameworks, and self-configure NCB to use these layers.NCB to use these layers.
33
Original GoalsOriginal Goals
Design a framework that self-Design a framework that self-configures NCBconfigures NCB
Implement this design for NCBImplement this design for NCB Publish papers describing our Publish papers describing our
research findingsresearch findings
44
OutlineOutline
RecapRecap– Literature ReviewLiterature Review– DesignDesign
DemonstrationDemonstration Summary/ContributionSummary/Contribution Future WorkFuture Work
55
RecapRecap Identify the problemIdentify the problem
– Read, read, readRead, read, read““User-Centric Network User-Centric Network
Communication Broker for Multimedia Communication Broker for Multimedia Collaborative ComputingCollaborative Computing
““A Communication Virtual Machine”A Communication Virtual Machine” Propose a solutionPropose a solution
– Incorporate multiple communication Incorporate multiple communication frameworks via a bridge.frameworks via a bridge.
– Self-configure NCB to work with these Self-configure NCB to work with these frameworksframeworks
66
Recap (cont.)Recap (cont.) ResearchResearch
– Survey paperSurvey paper– Refine knowledge of the API (Google Talk, Refine knowledge of the API (Google Talk,
JML)JML) DesignDesign
– Create an architecture that allows use of Create an architecture that allows use of bridges within NCB but without rewriting all bridges within NCB but without rewriting all of NCBof NCB
ImplementationImplementation– Write the code for NCBWrite the code for NCB– Write the code for the bridgesWrite the code for the bridges
77
DesignDesign
Communication Communication FrameworkFramework– Google Talk, Skype, Google Talk, Skype,
NCB, JMLNCB, JML– Java APIJava API
CVMUCI
SE
UCM
NCB
JML
Bridge
Communication Service Manager
Google Talk Skype
Bridge Bridge NCB (Native Code)
88
DesignDesign
BridgeBridge– Interface Interface
implemented for each implemented for each communication communication frameworkframework
– Each bridge is Each bridge is particular to its particular to its communication communication frameworkframework
CVMUCI
SE
UCM
NCB
JML
Bridge
Communication Service Manager
Google Talk Skype
Bridge Bridge NCB (Native Code)
99
Bridge Class DiagramBridge Class Diagram
+ncbLogin() : void
GTalkBridge
GTalkBridgeImpl : GTalkBridge
+ncbLogin() : void
JMLBridge
JMLBrideImpl : JMLBridge
+ncbLogin() : void
SkypeBridge
SkypeBridgeImpl : SkypeBridge
+ncbLogin() : void
NCBBridge
NCBBridgeImpl : NCBBridge
1
1
1
1
1
1
1
1
+ncbLogin()
«interface»Bridge
1 *
+loginImp() : void
NCBImp
+login() : void
NCB
1010
DesignDesign Communication Communication
Service Manager (CSM)Service Manager (CSM)– Contains the list of all Contains the list of all
the separate Bridge the separate Bridge objectsobjects
– Maintains the multiple Maintains the multiple communication communication frameworksframeworks
– Concept of multiple Concept of multiple frameworks is frameworks is centralized herecentralized here
CVMUCI
SE
UCM
NCB
JML
Bridge
Communication Service Manager
Google Talk Skype
Bridge Bridge NCB (Native Code)
1111
DesignDesign
Started
Constructor / CreateInstance
Bridge Registered
Read Configuation File [Read NextBridge from File, else Read NextPreference from File]
Instantiate Next Bridge
Preferences Registered
Bridge Instantiation Completed Read Next Preference
Preference Registration Commpleted
Register Next Preference
Ready
Startup Completed
Logged-In
Logged-Out
Got CommunicationObject
NotifyLogin NotifyLogout
getCommunicationObject
getCommunicationObject Completed Login Completed
Shutdown
Communication Services Manager
1212
DesignDesign
ReadyToLogin
NotifyLogin
NCBLoggedIn
LoginNativeNCB
LoginAllBridges [while nextBridge, getLoginInfo(nextBridge)]
BridgeLoginInitiated
LoginBridge [nextBridge]
loginBridge successful LoginCompletedLoginAll Completed
CapabilityUpdated
getGeneralCapabilities [while nextMediaType[while false, nextBridge.getCapabilities] ]
nextBridge.getCapabilities [NextMedia_type]
LoginObjectBuilt
Build Login Object
NotifyLoginReply
Communication Services ManagerLogged-In
1313
DesignDesign
CommsRequested
getCommunicationObject
Framework Added
ListofSatisfyingCommServ [while nextBridge, nextBridge.getCapability]
getCapablity(media_type, num_participants) [If true, add to list]
CommsList Created
CommsList Completed
CommsObject Selected
NCB.setCommsObject(medium,connID,Object)
ApplyPreferences(CommsList,Prefs) [while nextPreference, apply nextPreference to CommsList]
CommsList Prioritized
ApplyPreference(CommsList, nextPreference) [if true, increase priority of Framework] Select Highest Priority Framework
1414
DesignDesign
NotifyLogout
ReadytoLogout
ActiveConversationsDestroyed
Terminate Activate Conversations
Communication Framework logged out
Logout All Communication Framework [while next framework, logout frameworkwhile next framework shutdown framework]
Next Comms Framework Logout
Next Comms Framework Logout Completed Stop Services
Communication Framework StoppedStop Next Comms Framework
Comms Framework Stop Completed
Shutdown
Communication Services ManagerLogged-Out
1515
DesignDesign
NCBNCB– Limited knowledge Limited knowledge
of the multiple of the multiple frameworksframeworks
– Maintains the Maintains the communication communication sessionsession
CVMUCI
SE
UCM
NCB
JML
Bridge
Communication Service Manager
Google Talk Skype
Bridge Bridge NCB (Native Code)
1616
DesignDesign
UCM, SE, UCIUCM, SE, UCI– UnchangedUnchanged
CVMUCI
SE
UCM
NCB
JML
Bridge
Communication Service Manager
Google Talk Skype
Bridge Bridge NCB (Native Code)
1717
Applying Autonomic computing to Applying Autonomic computing to CSMCSM
KnowledgeKnowledge– The communication The communication
bridge objectsbridge objects– Stored in a listStored in a list
1818
Applying Autonomic computing to Applying Autonomic computing to CSMCSM
MonitorMonitor– Wait for an Wait for an
incoming requestincoming request– Poll to get incoming Poll to get incoming
communication communication informationinformation
1919
Applying Autonomic computing to Applying Autonomic computing to CSMCSM
AnalyzeAnalyze– Analyze the request Analyze the request
to determine what to determine what is being asked foris being asked for
– Generate a list of Generate a list of possible possible communication communication frameworksframeworks
2020
Applying Autonomic computing to Applying Autonomic computing to CSMCSM
PlanPlan– Apply any kinds of Apply any kinds of
preferences to the preferences to the list of possible list of possible frameworksframeworks
– Make a comparisonMake a comparison
2121
Applying Autonomic computing to Applying Autonomic computing to CSMCSM
ExecuteExecute– Hand off the bridge Hand off the bridge
object to NCBobject to NCB
2222
Original GoalsOriginal Goals Create a design that self-configures NCBCreate a design that self-configures NCB
– CompletedCompleted Implement this design for NCBImplement this design for NCB
– Mostly completedMostly completed Publish papers describing our research Publish papers describing our research
findingsfindings– 3rd Annual ACM Symposium on Applied 3rd Annual ACM Symposium on Applied
Computing (SAC): Autonomic Computing Track Computing (SAC): Autonomic Computing Track – 46th ACM Southeast Conference Deadline for 46th ACM Southeast Conference Deadline for
submission: Late November submission: Late November
2323
Future WorkFuture Work
Further implement Google Talk, and Further implement Google Talk, and JML functionalityJML functionality
Handling various user availability Handling various user availability issuesissues– Constraints – User availabilityConstraints – User availability