1 / 31

A Style-Aware Architectural Middleware for Resource-Constrained, Distributed Systems

A Style-Aware Architectural Middleware for Resource-Constrained, Distributed Systems. CS 5381 Steven Ruiz Authors: Sam Malek, Marija Mikic-Rakic, and Nenad Medvidovic. Table of Contents. Introduction Objectives Middleware Design Prism Setting Support Architectural Support Evaluation.

regina
Download Presentation

A Style-Aware Architectural Middleware for Resource-Constrained, Distributed Systems

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. A Style-Aware Architectural Middleware for Resource-Constrained, Distributed Systems CS 5381 Steven Ruiz Authors: Sam Malek, Marija Mikic-Rakic, and Nenad Medvidovic

  2. Table of Contents • Introduction • Objectives • Middleware Design • Prism Setting Support • Architectural Support • Evaluation

  3. Introduction • Software Systems are increasingly moving from desktop to the mobile setting • Programming in the small and many (Prism) • Properties: Highly Constrained Resources • Limited power • Low network bandwidth • Slow CPU speed, limited memory • Small display size

  4. PrismMW • Programming in the Large (PitL) • Suited mainly for desktops • Middleware • Developed to support the implementation of Software Arch. in Prism setting • Provides architecture level concepts • Component • Connector • Configuration • Events

  5. Key Contributions • Employs a separation of concern • Provides: • Flexibility • Efficiency • Size, speed, overhead • Scalability • Number of components, connectors, events, threads, hardware devices • Extensibility • Support for new development concerns

  6. Prism Goals • Investigate the following issues: • Mobile device limits (power, size, memory, ..) • Modeling • Analysis • Simulation • Prism characterized by Proprietary OS’s (Palm, Symbian) • Tie in Prism with Software architecture (architecture-based development)

  7. Objectives (Support) • Provide native support for designing & implementing architectural abstraction • Should accommodate system development based on different styles • Address the main parts of arch. based design/implementation and middleware

  8. Objectives (Small & Many) • Enable efficient execution of apps on platforms with different characteristics • Extend support for access of shared hardware • Scalable • Large set of devices • Execution Threads • Components, connectors, communication • Extensible & Configurable • Accommodate varying development concerns • Multiple Arch. Styles

  9. Example Application • TDS (Troops Deployment & Simulation) • Distributed deployment of personnel • Headquarters • Gathers info from field & displays current battlefield status • Networked via secure links to PDA’s • Commanders • Connected to soldiers • Give orders to soldiers • Soldiers • View segment of battlefield & receive orders

  10. TDS Components • Map • Model of system resources (terrains, tanks,..) • Repository • Stores map resources • StrategyAnalyzerAgent • Analyze deployment of friendly troops • DeploymentAdvisor • Suggests deployments of troops • SimulationAgent • Simulates outcomes

  11. Prism Core • 12 classes, 4 interfaces • Limited direct dependencies • Brick Class • Abstract class representing architectural building blocks • Scaffold Class (associated with every Brick) • Schedules and queues events for delivery • Pools execution threads used for event dispatching • Allows most suitable event scheduling • Architecture Class • Records the configuration of its constituent components, connectors, ports, and provides removal capability • Event • Captures communication in an architecture

  12. Prism Core (UML)

  13. Prism Core (Cont) • Ports • Link made by welding 2 ports together • Port can be welded to another corresponding port • Associated Types • Request • Reply • Events placed on a port are forwarded to its linked port • Request events: forwarded from request to reply ports • Reply events: forwarded in opposite direction

  14. Prism Core (Ports)

  15. Prism Core (Components) • Component • Performs computations in an architecture and maintains its own state • Each component has an arbitrary number of attached ports • Interact with each other by exchanging events via ports • Interacts either directly through ports or via connectors

  16. Prism Core (Connectors) • Connectors • Central routing of events • Has arbitrary number of attached ports • Component attaches to a connector by creating a link between one of its ports • Components/Connectors can remove and add ports at runtime

  17. Prism Core (Interfaces) • Interface • Each subclass of brick has an associated interface • IComponent – send and handle methods • IArchitecture – weld method attaches 2 ports • IConnector – handle method for routing events • IPort – provides setMutualPort method for creating one-one association between 2 ports

  18. Prism Semantics • Event processing performed through Shepherd thread • Shepherd thread removes the event from head of queue • If component generates further events, it is added to end of queue • Benefits • Event routing to multiple destinations reduces power consumption

  19. PrismMW Design • Extensibility • Core constructs are subclassed via specialized classes • Each AbstractExtension class can have multiple implementations

  20. Support for Prism Setting • Distribution • 5 different port extensions are implemented • DistributionEnabledPort • Operates in server mode (has listening thread) • Has arbitrary number of network connections • Broadcasts events on all network connections • One-to-many association between ports • Varies from the basic port (one-to-one) • Deposits events on the network instead of local event queue

  21. Distribution Scenarios

  22. Support for Prism Setting (cont.) • Communication Properties • Security • AbstractSecurity – port extension providing RSA and authentication services • Delivery Guarantees • AbstractDeliveryGuarantees • AbstractDeliveryGuaranteesEvt • Support event delivery guarantees • Real-Time Delivery • AbstractRealTimeEvt • Assigns a real time deadline to an event • Data Conversion and Compression • AbstractXMLConversion – Encoding/Decoding via ports • AbstractCompression – minimizes network bandwidth for event dispatching

  23. Support for Prism Setting (cont.) • Awareness • ExtensibleComponent • Contains references to the architecture object via IArchitecture interface • Observes components at the metalevel to facilitate different aspects of execution of application-level components • Developer can add metalevel components to a running application

  24. Support Prism Setting (cont.) • Deployment and Mobility • Configuration of components deployed onto a set of connected hosts • Stateless Mobility/Deployment • ExtensibleEvents – contains architectural elements • AdminComponent – contains a pointer to its architecture object, which allows runtime changes to its local subsystem’s architecture: • Addition, removal, connection, disconnection of components and connectors • Stateful Mobility • Provides the ability to transfer code between a set of hosts • Serialization-based technique – Forwarding of an element’s state • Disconnected Operation • Ability to continue functioning in the temporary absence of network connectivity

  25. Architectural Style Support • Support provided by Prism: • Distinguish among different arch styles • Specify the arch. Elements’ stylistic behaviors • Specify rules and constraints • Use Multiple architectural styles within an application

  26. Support for Individual/Multiple Styles • Individual Styles • Supported through an Extensible class • Simplified by using StyleFactory utility class • Example: Client and Server Style • Multiple Styles • Supported through hierarchical composition • ExtensibleArchitecture used to create components with their own internal archs.

  27. Evaluation • Goals • Provide results of the performance trade-offs • Demonstrate the middleware’s efficiency and scalability in large distributed systems • Middleware Size • Basic Logic System • Memory Core: 2.3 KB • Connection Object: 8 KB • Port: 8.5 KB • TDS Architecture • 1 Headquarters, 4 commanders, 100 soldiers • Total memory overhead: 511 KB

  28. Evaluation • Benchmark Results

  29. Evaluation • Distributed Architecture Scenario • Only 2 percent in performance overhead compared to a “pure” java implementation

  30. Group Work • Client and Server Style • Create a basic ClientServer representation using the below topology( refer to (d) of diagram): • One Server, Two Clients

  31. Group Work • Use StyleFactory to match style for your Extensible [Architecture, Component] • StyleFactory methods below are static • Below is the format to follow(Java based): • Class ClientServer { static public void main(String argv[]) { //Create your architecture first (use ExtensibleArchitecture) //Each Extensible Component should have an implementation to describe it (3 in total, clients and server) //Add your components to the architecture (3 components to add) //Establish / Weld the connections between the clients -> server //Start the architecture architecture.start(); } }

More Related