03/11/20021 PRISM Programming in the Small and Many Nenad Medvidovic Marija Mikic-Rakic
03/11/20022 Past and Present The past: programming in the small –small, simple systems –single developer –programs are hacked –developer = customer = user The present: programming in the large –large, complex systems –powerful hardware –teams of developers –systems are engineered –many people, many roles
03/11/20023 Present and Future Programming in the Small and Many Highly distributed systems Dynamic Mobile Heterogeneous Resource-constrained Ad-hoc network connections Software development in such a setting - Prism
03/11/20024 Prism Challenges This has been your computer This will become your computer Resource constraints –Demand highly efficient computation, communication, and memory footprint –Demand unorthodox solutions e.g., off-loading components Hardware and software heterogeneity –Proprietary operating systems –Dialects of programming languages –Device-specific data formats –Lack of support for inter-device interaction –Lack of support for code mobility
03/11/20025 Prism Objectives Asynchronous communication Peer-to-peer interactions Dynamic reconfiguration Deployment Mobility Disconnected operation Execution context awareness Scalability Efficiency
03/11/20026 Prism Style A D CB Requests Notifications Peer Palm-1 Palm-2 Palm-3 iPAQ PC Extensively leverages C2 Peer-to-peer interactions –Side component ports, peer connectors, peer messages –Preserves substrate independence Architectural self-awareness –Application level –Meta level Admin component Continuous analysis component Message types –Application data –Component content –Architectural model
03/11/20027 Prism Connectors All Prism connectors are able to exchange data, code, and architectural models Two interaction techniques –Client-server, Peer-to-peer Four connector categories Synchronous and asynchronous interaction Message routing policies –Unicast –Multicast –Broadcast Delivery guarantees Support for real-time constraints pending Spanning contexts –Address spaces, Processes, Machines Marshalling and unmarshalling of information XML encoding Wireless interaction (IR) Network link monitoring Mechanisms –CORBA, RMI, Sockets, ILU, Q, Polylith Useful in connector-to-connector interaction Reusable security module –E.g., used in IR border connector Multiple such modules would allow altering security policy on the fly Open issue –Mismatched security policies by interacting connectors Ensure reliable component upgrades Monitor multiple versions of a component –Correctness, Performance, Reliability Functional behavior of system unaffected –Performance possibly affected –Possible impact on real-time systems –Basic –Border –Secure –Multiversioning
03/11/20028 Implementing Prism Architectures Size 1.35KB at system start-up max 56KB Performance 500MHz PentiumIII RAM Java KVM framework + 50 componentsabove + one connector + one component below + 50 threads sent messages ______________________________________________________________________________________________________ ~ 4.7 seconds Adjustable threading Adjustable scheduling Request Request
03/11/20029 A Prism Application Map Display Map Repository Available Troops Repository Strategy Analyzer Troops Deployer Admin Component Map Display Admin Component Map Display Admin Component Map Display Admin Component Map Display Admin Component M M M Strategy Analyzer` Strategy Analyzer M M M M M M M M
03/11/ Deployment Support –Leverages ComponentContent message –Leverages Prism’s support for code mobility –Assumes preloading a skeleton configuration on each device –Implemented as an extension to Visio (COTS) add(DataRepository: source PC): PC weld(TopBorderConnector,C_IPAQAvailableTroops): iPAQ peerWeld(G_AvailableTroops,SideBorderConnector):Palm-1
03/11/ Support for Disconnected Operation Minimize the risks associated with disconnection Maximize availability / minimize degradation –Reroute communication –Fetch components before disconnection occurs Relevant factors for prefetching –Statefulness –Event frequencies across network links –Dependencies of candidate components –Type of disconnection –Time to disconnection –Required and available memory –Network bandwidth
03/11/ Defining the Problem Minimum K-cut problem –Memory as an additional constraint Knapsack - simplification –Benefit of migration does not change if the component is migrated along with some other components –For each component we need Required memory Benefit of migration Benefit = 0 Benefit = Benefit + f i * (1 - d i ) –Available memory TAM = min(M, t * nb)
03/11/ Results Time to Disconnection Connection Speed Available Memory Resulting Set 1s13KB/s50KBStrategy Analyzer 0.5s40KB/s15KBWar Manager Deployment Advisor 1s30KB/s40KBWar Manager Deployment Advisor Strategy Analyzer War ManagerDeployment Advisor Required Memory (KB)1395 Benefit MessageProcessing Componentfifi didi Analyze strategyStrategy Analyzer0.061 SimulateWar Manager0.160 AdviseDeployment Advisor0.180 DeployStrategy Analyzer0.370
03/11/ Future Work Real-time guarantees Decentralized ownership Trust Resource analysis Automated optimized application deployment
03/11/ Web Site