Adaptive Middleware for Real-Time SoftwareTopicUbiquitous ComputingMobile Ad Hoc Networks (MANET)Their GoalContext-Sensitive ServicesMiddleware: DefinitionCORBACORBA ExampleSlide 10Interface Definition LanguageSlide 12CORBA ArchitectureMiddleware BenefitsMiddleware: LimitationsChallengesSlide 17Reconfigurable Context-Sensitive Middleware (RCSM)RCSM FeaturesRCSM Component HierarchyDevelopment and Runtime SupportContext-sensitive Application ObjectSpecifying a ContextDevice-specific ContextEnvironment-specific ContextUser-specific ContextContext VariablesTemporal OperatorsContext ExpressionsContext-Sensitive Interface SpecificationIncoming and Outgoing TagsInterface ExampleInterfaceExampleExample: Sensor NetworkSlide 35Object MB: Mobile Robot ObjectObject M: Motion Data CollectorObject N: Noise Data CollectorAdaptive Object ContainersSlide 40ADC ArchitectureGenerated ADCContext PropagationContext Match EventObject Discovery MessagesObject Match EventsInter-Object CommunicationMotion Detector Sends DataObject MB Receives Motion DataR-ORB ImplementationFuture DirectionsSlide 52Adaptive Middleware for Real-Time SoftwareLouise AvilaCIS 700-02November 2, 2005Topic“An Adaptive Middleware for Context-Sensitive Communications for Real-Time Applications in Ubiquitous Computing Environments.” Real-Time Systems Journal. January 2004. Stephen S. Yau and Fariaz KarimReconfigurable Context-Sensitive Middleware Research Project, Arizona State UniversityUbiquitous ComputingComputing experience is everywhere but enabling technologies are invisible Makes the user the center of computingDynamically adapt to user’s needs and actionsMobile Ad Hoc Networks (MANET)Collection of connected autonomous mobile nodes such as wearable, handheld and other mobile devicesFree to move arbitrarilyBandwidth and energy constraintsDynamic network topologiesNo dedicated network connectivity devicesNodes form short-range wireless networksTheir GoalMake MANET context-sensitiveUse data about environment and available resourcesAdapt behavior and interactionsSchedule and execute time critical tasksContext sensitive interactions between applicationsContext-Sensitive ServicesDetects, establishes and terminates communication channels New devices enter the environment Existing devices move awayEfficient Address heterogeneity of devicesOne potential solution: middlewareMiddleware: DefinitionSoftware is distributed and developed using different languages, operating systems and hardware platformsMiddleware "glues together" or mediates between two separate programs or software packagesCORBACommon Object Request Broker ArchitectureCreating and managing distributed objects in a networkIndustry standard developed by the Object Management Group http://www.omg.org/CORBA ExampleHR Rep works in San FranciscoHR Application runs on a server in DenverEmployeeApplicationCORBA ExampleClient programs don’t need to know:Location of server programImplementation of serverPlatform IndependentLanguage IndependentInterface Definition LanguageEmployee server class:public class Employee {public String getEmployeeId(String name) { return eid; } }Define interface for Employee class:interface IEmployee {String getEmployeeId(in String name); }CORBA ExampleCompile interface with IDL compilerClient StubProxy for the server that runs on the clientConverts method calls into messagesClient acts as though invoking on local object instanceServer SkeletonConverts messages back to method callsCORBA ArchitectureObject Request Broker (ORB)Locates and activates objectDelivers requestReturns responseOther servicesNaming, Lifecycle, etc.Middleware BenefitsReduce effort required to develop software Provide runtime services for applicationsForces a separation between interface and implementationORB approachIsolate transport protocols from applicationsMiddleware: LimitationsExisting middleware for enterprise and mobile networks:Industry standards: CORBA, COM, EJBSpecialized “laboratory” versions: TAOAssume stable networkUse client-server interaction semanticsDo not use different contextsLaboratory versions have unique architectures – problem of interoperabilityChallengesSystematic way to represent specific contexts and context awarenessTimely context data collection, analysis and propagationTransparentDevice and application-specificChallengesAssociating context with real-time actionsSupport for spontaneous and ad hoc context-sensitive communicationReconfigurable Context-Sensitive Middleware (RCSM)Compliant with CORBA/OMA User-level application software as application objects Object Request Broker (R-ORB)Enables application objects implemented in different languages to communicate in a distributed, heterogeneous environmentProvides context-sensitive communicationR-CAP performs low-level context monitoring and acquisitionRCSM FeaturesContext-aware interface definition language (CA-IDL)Based on IDLSeparates interfaces from implementationsAdaptive Object Containers (ADC) Interface-specific context analyzer components. Communicate at runtime with other components to acquire context dataCommunicates with the object implementation to invoke different methods when suitable contexts are detected.Client-serverobjectsRCSM Component HierarchyContext-sensitiveobjectsOperating SystemRCSM Groupcommunication serviceOtherservicesAdaptive object containers(ADCs)R-CAPR-ORBTransport layer protocols for ad hoc networksSensors(optional)Development and Runtime SupportDevelopment Support Runtime ServicesDeveloper specifies context-sensitive interface CA-IDL compiler generates interface-specific ADCCA-IDL compiler generatesobject skeletonDeveloper implements real-timeobjectDeveloper registers object with ORBContext analyzers and R-CAP monitor and analyze contextORB performs object discoveryORB establishes context-triggeredcommunication establishmentADCs perform context-basedobject activationContext-sensitive Application ObjectContext expression+Method signatureContext-independent implementation(C++, C, C# or Java)Context-sensitive interface (CA-IDL)Specifying a ContextTypes of context data available depend on host device and its context-sensing capabilitiesSteps to port RCSM to a new deviceClassify the context into categoriesDefine a
View Full Document