Middleware Design Goals

Slides:



Advertisements
Similar presentations
Distributed Multimedia Systems Tarek Elshaarani Vahid Rafiei.
Advertisements

Distributed Processing, Client/Server and Clusters
Building Cloud-ready Video Transcoding System for Content Delivery Networks(CDNs) Zhenyun Zhuang and Chun Guo Speaker: 饒展榕.
Multimedia Systems As Presented by: Craig Tomastik.
Pervasive Web Content Delivery with Efficient Data Reuse Chi-Hung Chi and Cao Yang School of Computing National University of Singapore
The road to reliable, autonomous distributed systems
Distributed components
EE442—Multimedia Networking Jane Dong California State University, Los Angeles.
Team 4 Pervasive Computing __________________________________ Abe El-Dewak Sheb Findik Kenneth Brancik Tom Lombardi.
1-1 Introduction to Computer Networks and Data Communications.
G Robert Grimm New York University Scalable Network Services.
Overview of Mobile Computing (1): Issues and Design Guidelines.
Big Infrastructure, Small Clients Prof. Eric A. Brewer
EECE 411: Design of Distributed Software Applications What is a Distributed System? You know when you have one … … when the failure of a computer you’ve.
G Robert Grimm New York University Scalable Network Services.
Data Networking Fundamentals Unit 7 7/2/ Modified by: Brierley.
Post-PC Summary Prof. Eric A. Brewer
What is adaptive web technology?  There is an increasingly large demand for software systems which are able to operate effectively in dynamic environments.
.NET Mobile Application Development Introduction to Mobile and Distributed Applications.
CS211/Fall /06 Outline for This Lecture Application of e2e over wireless Application Level Framing Integrated Layer Processing Course Project Introduction.
Course Instructor: Aisha Azeem
Client/Server Architecture
Tiered architectures 1 to N tiers. 2 An architectural history of computing 1 tier architecture – monolithic Information Systems – Presentation / frontend,
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 12 Slide 1 Distributed Systems Design 1.
Web application architecture
Client/Server Architectures
Exploiting Application Semantics: Harvest, Yield CS 444A Fall 99 Software for Critical Systems Armando Fox & David Dill © 1999 Armando Fox.
Data Communications and Networks
1 Proxy-based Adaptation for Mobile Computing ECET 581 Spring 07 Authors: Markus Endler Hana Rubinsztejn Ricardo C. A. da Rocha Vagner Sacramento ISSN.
Ch 1. Mobile Adaptive Computing Myungchul Kim
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 12 Slide 1 Distributed Systems Architectures.
What is a Protocol A set of definitions and rules defining the method by which data is transferred between two or more entities or systems. The key elements.
Performance of Web Applications Introduction One of the success-critical quality characteristics of Web applications is system performance. What.
I T & S A e r o s p a c eD e f e n c e Content adaptation for gradual Quality of Service Vania Conan, Arnaud Pierre Thales
Lecture On Database Analysis and Design By- Jesmin Akhter Lecturer, IIT, Jahangirnagar University.
Infrastructure for Better Quality Internet Access & Web Publishing without Increasing Bandwidth Prof. Chi Chi Hung School of Computing, National University.
CS525: Special Topics in DBs Large-Scale Data Management Hadoop/MapReduce Computing Paradigm Spring 2013 WPI, Mohamed Eltabakh 1.
Types of Operating Systems
Advanced Computer Networks Topic 2: Characterization of Distributed Systems.
DISTRIBUTED COMPUTING Introduction Dr. Yingwu Zhu.
DISTRIBUTED SYSTEMS Principles and Paradigms Second Edition ANDREW S
1 Presentation_ID © 1999, Cisco Systems, Inc. Cisco All-IP Mobile Wireless Network Reference Model Presentation_ID.
OS Services And Networking Support Juan Wang Qi Pan Department of Computer Science Southeastern University August 1999.
9 Systems Analysis and Design in a Changing World, Fourth Edition.
Distributed Information Systems. Motivation ● To understand the problems that Web services try to solve it is helpful to understand how distributed information.
App. TypeApp. Name Distributed or Parallel A parallel version of the Gaussian elimination application SAGE (SAIC's Adaptive Grid Eulerian hydrocode) Adaptive.
ProActive Infrastructure Eric Brewer, David Culler, Anthony Joseph, Randy Katz Computer Science Division U.C. Berkeley ninja.cs.berkeley.edu Active Networks.
An Adaptive Video Streaming Control System: Modeling, Validation, and Performance Evaluation PRESENTED BY : XI TAO AND PRATEEK GOYAL DEC
Providing web services to mobile users: The architecture design of an m-service portal Minder Chen - Dongsong Zhang - Lina Zhou Presented by: Juan M. Cubillos.
Hadoop/MapReduce Computing Paradigm 1 CS525: Special Topics in DBs Large-Scale Data Management Presented By Kelly Technologies
CSC 480 Software Engineering Lecture 17 Nov 4, 2002.
©Ian Sommerville 2000, Tom Dietterich 2001 Slide 1 Distributed Systems Architectures l Architectural design for software that executes on more than one.
Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved DISTRIBUTED SYSTEMS.
Distributed Systems Architecure. Architectures Architectural Styles Software Architectures Architectures versus Middleware Self-management in distributed.
Cofax Scalability Document Version Scaling Cofax in General The scalability of Cofax is directly related to the system software, hardware and network.
Computer Networking A Top-Down Approach Featuring the Internet Introduction Jaypee Institute of Information Technology.
Distributed Systems Architectures. Topics covered l Client-server architectures l Distributed object architectures l Inter-organisational computing.
What is a Protocol A set of definitions and rules defining the method by which data is transferred between two or more entities or systems. The key elements.
Software Design and Architecture
Distributed Multimedia Systems
Data Networking Fundamentals
Introduction to Cloud Computing
Overview What is Multimedia? Characteristics of multimedia
Mobile Computing.
THREE TIER MOBILE COMPUTING ARCHITECTURE
Software models - Software Architecture Design Patterns
Computer Networking A Top-Down Approach Featuring the Internet
Introduction To Distributed Systems
Presentation transcript:

Middleware Design Goals identify the issues for middleware design in wireless and mobile environments An illustrative middleware framework Detailed design for an image transcoding proxy and application session handoff

Middleware Definition RFC2768: Def 1: those services found above the transport (I.e. over TCP/IP) layer set of services but below the application environment (i.e., below application-level APIs) Def 2: a reusable, expandable set of services and functions that are commonly needed by many applications to function well in a networked environment. Industry usage: Software gateway (“glue”) between two apps

Issues for Middleware Design Legacy systems and protocols Diverse networks (wireline, indoor & outdoor wireless) Network dynamics: congestion, link errors, failures, attacks Device and platform heterogeneity User mobility Thin-client support Large number of users and devices

Some middleware design goals for wireless and mobile devices Improve user experience across heterogeneous devices (e.g. PDAs, laptops, desktops) e.g. transcoding (adaptive content delivery) Provide new services for heterogeneous devices e.g. application state migration Minimal change to the existing infrastructure and applications: may add/change a few more “boxes” Adaptation to network dynamics (induced by mobility and wireless links) Scalable and secure service Service availability (in the presence of failures, attacks and large user population)

Transcoding middleware service Client variations along 3 dimensions: Network variation bandwidth, latency and error behavior Hardware variation screen size/resolution, color/grayscale bit depth, memory, CPU Software variation Applications for specific MIME types (PDF, PS, PPT, AVI, etc.) Codecs for specific encodings (H263, JPEG, etc.) Transcoding goals: Reduce latency experienced by user Reduce image’s color depth, resolution to get smaller file Provide access to new types of content PDF  text, Speech  text

Transcoding design issues Design issues for adapting to variation: How: Datatype-specific lossy compression mechanisms: distillation & refinement based on (MIME) type of data Where: at the content server or at a proxy When: static or on-demand

Distillation and refinement Main idea: high-level semantic types (MIME types) dictate datatype-specific operations Images: can discard color info, high-frequency components, or pixel resolution Video: additionally include frame rate reduction Formatted text: can discard some formatting information Datatype-specific distillation: highly lossy, datatype-specific compression that preserves most of the semantic content of a data object while adhering to a particular set of constraints Datatype-specific refinement: fetching some part (possibly all) of a source object at increased quality, possibly the original representation

Choices to handle client variations Server ignores variations: low-end clients may suffer Server use the most basic types & minimal graphics: high-end client suffers Servers provide multiple formats: used today by major websites (ESPN, Amazon, Yahoo) need to categorize clients into discrete classes Progressive encodings: typically assume that all parts of the encoded documents are equally important On-demand distillation and refinement: generate on-the-fly based on client characteristics

An Adaptive-Proxy Based Middleware Design Framework Three-tier model: client – proxy – server A programming model for proxy-based design: TACC Transformation: distillation, filtering, format conversion, etc. Aggregation: collect and collate data from various sources Caching: both original and transformed content Customization: user-customized service (user profiling, adaptive service to each user’s needs or device characteristics)

Why do we need a proxy ? Advantages for servers: Servers concentrate on serving high quality content, rather than having to keep multiple versions Servers do not pay the costs required to do on-demand distillation Advantages for clients: Low-end clients can rely on the proxy to optimize content from servers designed for high-end clients Client communicates with a single logical entity—proxy, allowing the client to manage bandwidth at the application level Advantages for both: Pushing the complexity away from both clients and servers by relocating it into the network infrastructure Distillation and refinement can be offered as a value-added service by a service provider

A Scalable Cluster-based Infrastructure Address three issues: incremental scalability, 24X7 availability, and cost effectiveness A cluster based architecture for scalable network services Exploit the strength of cluster computing Cluster-based servers BASE data semantics: basically available, soft state, eventual consistency.

Cluster architecture Front-end Webserver Load-balancer Workstation

Why do we need clusters? Scalability: High availability: well-suited for networking service workloads that are highly parallel Clusters can grow incrementally over time High availability: Natural redundancy due to the independence of the nodes Hot upgrade: disable a node and upgrade it in place Commodity building blocks: Use low-end, high-volume PCs rather than high-end, low-volume machines Bad thing about clusters: Administration; component and system replication (software should decompose into loosely coupled modules); partial failures; shared state

An example: adaptive transcoding proxy Web server  transcoding proxy  web browser Proxy architecture: Content analysis Adaptive transcoding policies: when and how much to transcode Transformation modules: text modification, images decode & compress Key design goal: Improve latency experienced by user at heterogeneous devices fixed quality or fixed delay

Design Two scenarios: Two main issues: Store-and-forward image transcoding Streamed image transcoding Two main issues: Whether to transcode How much to transcode

How to decide whether to transcode? Bsp Bpc server proxy client Dp = transcoding delay, S = orig size, Sp = transcoded size w/o transcoding: 2*RTTpc + 2*RTTsp + S / min(Bpc, Bsp) w/transcoding: 2*RTTpc + 2*RTTsp + Dp + S / Bsp + Sp/Bpc If Bpc < Bsp, proxy-based transcoding useful when: Dp + S/Bsp < (S-Sp)/Bpc How to predict transcoding delay?

Details for store-and-forward image transcoding Prediction Transcoded image’s output size in bytes: high correlation between output size and the image area (number of pixels)  linear interpolation Prediction of transcoding delay: approximated by linear function of the input image area Policies: Fixed-quality transcoder: if (transcoding = feasible), transcode according to user’s parameter vector Fixed-delay transcoder: if(transcoding=feasible), search space of transcoding parameters to find optimal set that maximizes quality subject to the given response time, transcode using the optimal parameters

Transcoding internal stages Determine target parameters In-band or out-of-band data Use HTTP headers Use a client profile and/or network conditions Download data and characterize it E.g. get image’s type, resolution, and color depth Apply heuristics and policies How to match data’s characteristics to target parameters? Multi-dimensional constraint satisfaction Execute the transcoding Typically can use off-the-shelf software

Streamed image transcoding Perform transcoding under two stability conditions: No buffer overflow Output transmission link is not saturated

Another middleware service: Application session handoff We want continuous access to our data across these machines Middleware software will integrate data across devices for immediate access to information anytime, anywhere Move applications across multiple computers

More application session handoff Applications will have session state discrete data multimedia, streaming data Application session handoff: application’s state will move automatically and seamlessly across devices Data will be transcoded for each device

Broad view of system Application Server Middleware Cluster Clients High Bandwidth Network Middleware Cluster Wireless Network Clients

Application session handoff in action Legacy Multimedia DBMS

Middleware design issues for ASH Client must incorporate application-layer library code to participate with proxy Protocol gateway client  proxy : custom control protocol + application-specific protocol Proxy  server: HTTP, SMTP, RTP, etc. Service discovery Data consistency protocols Scalability across cluster of proxies PKI-based security

Summary Middleware provides improved user experience or additional functionality Middleware runs within limits of existing legacy system or protocols New functionality typically implemented at a proxy Clustering provides scalability for proxy services

Goals for Middleware Design Minimal change to the existing infrastructure and applications: may add/change a few more “boxes” Adaptation to network dynamics (induced by mobility and wireless links) Support for heterogeneous devices (e.g. laptop, desktop, pocket PC, palm-devices) Customized service (e.g., adaptive content delivery) Scalable and secure service Portability: seamless migration across computing platforms User-friendly design Service availability (in the presence of failures, attacks and large user population)

On-demand dynamic distillation Issues to address: client variations along 3 dimensions: Network variation: bandwidth, latency and error behavior Hardware variation: screen size and resolution, color or grayscale bit depth, memory, CPU power Software variation: application-level data encodings, etc. Design principles for adapting to variation: Datatype-specific lossy compression mechanisms: distillation and refinement based on semantic type of the data On the fly adaptation: compute a desired representation of a typed object on demand Complexity away from both clients and servers: done at an intermediate proxy

Sharing semantics Traditional transactional database model: ACID (atomicity, consistency, isolation, and durability) strongest semantics at the highest cost and complexity No guarantee for availability Suited for e-commerce transaction, billing users, maintaining user profile info etc. Many users/services prefer availability rather than strong consistency or durability: Stale data can be temporarily tolerated as long as all copies of data eventually reach consistency after a short time Soft state: can be used to improve performance Approximate answers are preferred if delivered quickly compared to exact but slow answer

BASE semantics BASE: basically available, soft state, eventual consistency Handle partial failures in clusters with less complexity and cost Trading consistency for simplicity Trading consistency for availability Use of soft state to allow each watcher process to detect that its peer is alive (rather than mirroring the peer’s state), be able to restart its peer (rather than take over its peer’s duties)