Presentation is loading. Please wait.

Presentation is loading. Please wait.

03/11/20021 PRISM Programming in the Small and Many Nenad Medvidovic Marija Mikic-Rakic

Similar presentations


Presentation on theme: "03/11/20021 PRISM Programming in the Small and Many Nenad Medvidovic Marija Mikic-Rakic"— Presentation transcript:

1 03/11/20021 PRISM Programming in the Small and Many Nenad Medvidovic Marija Mikic-Rakic (neno,marija)@usc.edu

2 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

3 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

4 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

5 03/11/20025 Prism Objectives Asynchronous communication Peer-to-peer interactions Dynamic reconfiguration Deployment Mobility Disconnected operation Execution context awareness Scalability Efficiency

6 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

7 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

8 03/11/20028 Implementing Prism Architectures Size 1.35KB at system start-up max 56KB Performance 500MHz PentiumIII RAM 256 + Java KVM framework + 50 componentsabove + one connector + one component below + 50 threads + 100 000 sent messages ______________________________________________________________________________________________________ ~ 4.7 seconds Adjustable threading Adjustable scheduling Request 100 000 Request 5 000 000

9 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 

10 03/11/200210 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

11 03/11/200211 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

12 03/11/200212 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)

13 03/11/200213 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 Benefit0.310.160.18 MessageProcessing Componentfifi didi Analyze strategyStrategy Analyzer0.061 SimulateWar Manager0.160 AdviseDeployment Advisor0.180 DeployStrategy Analyzer0.370

14 03/11/200214 Future Work Real-time guarantees Decentralized ownership Trust Resource analysis Automated optimized application deployment

15 03/11/200215 Web Site http://sunset.usc.edu/~softarch/Prism/


Download ppt "03/11/20021 PRISM Programming in the Small and Many Nenad Medvidovic Marija Mikic-Rakic"

Similar presentations


Ads by Google