Storing and Accessing Live Mashup Content in the Cloud Krzysztof Ostrowski, Ken Birman Cornell University

Slides:



Advertisements
Similar presentations
TCP/IP MODEL Maninder Kaur
Advertisements

Distributed components
Application Layer 2-1 Chapter 2 Application Layer Computer Networking: A Top Down Approach 6 th edition Jim Kurose, Keith Ross Application Layer – Lecture.
Outline  Introduction to Application Layer  Peer-to-peer paradigm  Client-server paradigm  Domain Name System (DNS)  Flat-naming vs hierarchical-naming.
The Application Layer Chapter 7. Electronic Mail Architecture and Services The User Agent Message Formats Message Transfer Final Delivery.
Introduction to Web Database Processing
Web Servers How do our requests for resources on the Internet get handled? Can they be located anywhere? Global?
Asper School of Business University of Manitoba Systems Analysis & Design Instructor: Bob Travica System architectures Updated: November 2014.
Introduction to Web Interface Technology (CSE2030)
1 The World Wide Web Architectural Overview Static Web Documents Dynamic Web Documents HTTP – The HyperText Transfer Protocol Performance Enhancements.
SESSION 9 THE INTERNET AND THE NEW INFORMATION NEW INFORMATIONTECHNOLOGYINFRASTRUCTURE.
Systems Analysis and Design in a Changing World, 6th Edition 1 Chapter 6.
Chapter 11 ASP.NET JavaScript, Third Edition. 2 Objectives Learn about client/server architecture Study server-side scripting Create ASP.NET applications.
File Systems (2). Readings r Silbershatz et al: 11.8.
Web Programming Language Dr. Ken Cosh Week 1 (Introduction)
Introduction to Cyberspace
Christopher M. Pascucci Basic Structural Concepts of.NET Browser – Server Interaction.
2: Application Layer1 Chapter 2 Application Layer These slides derived from Computer Networking: A Top Down Approach, 6 th edition. Jim Kurose, Keith Ross.
Distributed Systems (15-440) Mohammad Hammoud December 4 th, 2013.
INTRODUCTION TO WEB DATABASE PROGRAMMING
IT 210 The Internet & World Wide Web introduction.
Information Systems Today: Managing in the Digital World TB4-1 4 Technology Briefing Networking.
Guide to TCP/IP, Second Edition1 Guide To TCP/IP, Second Edition Chapter 6 Basic TCP/IP Services.
Copyright © cs-tutorial.com. Introduction to Web Development In 1990 and 1991,Tim Berners-Lee created the World Wide Web at the European Laboratory for.
Application Layer 2-1 Chapter 2 Application Layer Computer Networking: A Top Down Approach 6 th edition Jim Kurose, Keith Ross Addison-Wesley March 2012.
27.1 Chapter 27 WWW and HTTP Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display.
1 Client Server Architecture over the Internet Week - 2.
Advanced Operating Systems - Spring 2009 Lecture 21 – Monday April 6 st, 2009 Dan C. Marinescu Office: HEC 439 B. Office.
What makes a network good? Ch 2.1: Principles of Network Apps 2: Application Layer1.
1 Welcome to CSC 301 Web Programming Charles Frank.
Advanced Computer Networks Topic 2: Characterization of Distributed Systems.
Web Services. Abstract  Web Services is a technology applicable for computationally distributed problems, including access to large databases What other.
Application Layer 2-1 Chapter 2 Application Layer Computer Networking: A Top Down Approach 6 th edition Jim Kurose, Keith Ross Addison-Wesley March 2012.
INTRODUCTION TO WEB APPLICATION Chapter 1. In this chapter, you will learn about:  The evolution of the Internet  The beginning of the World Wide Web,
3. Global Applications CS100: The World of Computing John Dougherty Haverford College.
Architecture Models. Readings r Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edn. 3 m Note: All figures from this book.
World Wide Web “WWW”, "Web" or "W3". World Wide Web “WWW”, "Web" or "W3"
Peer-to-Peer and Collective Intelligence A platform for collaboration Andrew Roczniak Collective Intelligence Lab Multimedia Communications Research Lab.
Eric Tryon Brian Clark Christopher McKeowen. System Architecture The architecture can be broken down to three different basic layers Stub/skeleton layer.
Advanced Web Technologies By: Faraz Ahmed. Contents 0 Course Outline 0 Architectures 0 HTTP.
GLOBAL EDGE SOFTWERE LTD1 R EMOTE F ILE S HARING - Ardhanareesh Aradhyamath.
Web Technologies Lecture 8 Server side web. Client Side vs. Server Side Web Client-side code executes on the end-user's computer, usually within a web.
Web Technologies Lecture 1 The Internet and HTTP.
Web Server.
Seminar on Service Oriented Architecture Distributed Systems Architectural Models From Coulouris, 5 th Ed. SOA Seminar Coulouris 5Ed.1.
4 m 9K Copyright 2002 Forum 9000, LLC Slide 1 Forum 9000 Quality Systems for Quality Care.
The basics of knowing the difference CLIENT VS. SERVER.
INTERNET AND PROTOCOLS For more notes and topics visit: eITnotes.com.
© 1stworks Corp. The Connected Community 85% of US corporations have a PC 75% of these PCs have an Internet connection 50% of US households have a PC 80%
Copyright © 2002 Pearson Education, Inc. Slide 3-1 Internet II A consortium of more than 180 universities, government agencies, and private businesses.
Midterm Review Chapter 1: Introduction Chapter 2: Application Layer
79 Sidevõrgud IRT 4060/ IRT 0020 vooruloeng 8 / 3. nov 2004 Vooülekanne Avo Ots telekommunikatsiooni õppetool, TTÜ raadio- ja sidetehnika inst.
09/13/04 CDA 6506 Network Architecture and Client/Server Computing Peer-to-Peer Computing and Content Distribution Networks by Zornitza Genova Prodanoff.
1 The World Wide Web Architectural Overview Static Web Documents Dynamic Web Documents HTTP – The HyperText Transfer Protocol Performance Enhancements.
Ch 2. Application Layer Myungchul Kim
Exploring Mobile Device Networking Lesson 4. Exam Objective Matrix Skills/ConceptsMTA Exam Objectives Understanding Networking for Mobile Devices Network.
COMPUTER NETWORKS Hwajung Lee. Image Source:
E-commerce Architecture Ayşe Başar Bener. Client Server Architecture E-commerce is based on client/ server architecture –Client processes requesting service.
CSE541: Web Applications Special Thanks to M. Abdur Rahman.
Copyright, Open Geospatial Consortium Making Location Count Peer-to-Peer File Sharing An Answer to the SDI blues North Carolina GIS Conference February,
August 2001Copyright UserLand Software 2001 Next Generation Internet Software How Broadband will be used John Robb, President and COO UserLand Software.
SURENDRA INSTITUTE OF ENGINEERING & MANAGEMENT PRESENTED BY : Md. Mubarak Hussain DEPT-CSE ROLL
1 Chapter 1 INTRODUCTION TO WEB. 2 Objectives In this chapter, you will: Become familiar with the architecture of the World Wide Web Learn about communication.
CIIT-Human Computer Interaction-CSC456-Fall-2015-Mr
Scalability: Load Balancing
DNS.
Distributed Systems Bina Ramamurthy 11/30/2018 B.Ramamurthy.
Introduction to Cyberspace
Distributed Systems Bina Ramamurthy 4/22/2019 B.Ramamurthy.
CS 381: Introduction to Computer Networks
Presentation transcript:

Storing and Accessing Live Mashup Content in the Cloud Krzysztof Ostrowski, Ken Birman Cornell University

Agenda

1.A new, versatile storage abstraction: Checkpointed Channel (CC) 2.A new web application architecture: A web of (hyperlinked) CCs Agenda

Introduction

Storing Content in the Cloud server in a data center client-server interactions cloud content edge

Storing Content in the Cloud server in a data center client-server interactions cloud content edge

server in a data center client-server interactions cloud Storing Content in the Cloud content edge

server in a data center client-server interactions cloud Storing Content in the Cloud content edge

server in a data center client-server interactions cloud Storing Content in the Cloud content edge

server in a data center client-server interactions cloud Storing Content in the Cloud content edge

server in a data center client-server interactions cloud Storing Content in the Cloud content edge

Storing Content in the Cloud content client-server interactions server in a data center update relayed through the server

server in a data center Storing Content in the Cloud explicit request, e.g. HTTP GET content cloud edge

server in a data center Storing Content at the Edge edge content replica content replica content replica peer-to-peer interactions

server in a data center Storing Content at the Edge edge peer-to-peer interactions content replica content replica content replica

server in a data center Storing Content at the Edge edge peer-to-peer interactions content replica content replica content replica

server in a data center Storing Content at the Edge edge peer-to-peer interactions content replica content replica content replica

server in a data center Storing Content at the Edge edge peer-to-peer interactions content replica content replica content replica updated

server in a data center Storing Content at the Edge edge peer-to-peer interactions content replica content replica content replica updated multicast

server in a data center Storing Content at the Edge edge content replica content replica content replica updated

server in a data center Storing Content at the Edge edge content replica content replica content replica replicated state machine

server in a data center Storing Content at the Edge edge content replica content replica content replica manage membership

server in a data center Storing Content at the Edge edge data control

server in a data center Storing Content at the Edge edge data control

Cloud vs. Edge? server in a data center edge peer-to-peer interactions content replica content replica content replica server in a data center client- server interactions cloud content edge

server in a data center Cloud vs. Edge? edge

server in a data center Cloud vs. Edge? edge

server in a data center Cloud vs. Edge? edge

server in a data center Cloud vs. Edge? edge no replicas left

Cloud vs. Edge? server in a data center client-server interactions cloud content edge flow of updates bottleneck

Cloud vs. Edge? server in a data center client-server interactions cloud content edge flow of updates bottleneck

Cloud vs. Edge? server in a data center client-server interactions cloud content edge flow of updates bottleneck

Cloud vs. Edge? server in a data center client-server interactions cloud content edge flow of updates bottleneck

Cloud vs. Edge? server in a data center client-server interactions cloud content edge flow of updates bottleneck

Cloud vs. Edge? Server capacity: SecondLife: ~40 clients/server Second Life and the New Generation of Virtual Worlds. S. Kumar et al IEEE Computer, 41(9):46-53

Cloud vs. Edge? Server capacity: SecondLife: ~40 clients/server virtual island

Cloud Edge? server in a data center edge peer-to-peer interactions content replica content replica content replica server in a data center client- server interactions cloud content edge persistencescalability + and

Extending Cloud to the Edge server edge cloud

Extending Cloud to the Edge cloud server edge

peer-to-peer interactions client-server interactions Extending Cloud to the Edge cloud server content

peer-to-peer interactions client-server interactions Extending Cloud to the Edge cloud server content distributed protocol (client-server, peer-to-peer, etc.) content

Extending Cloud to the Edge cloud server edge

There are: 40+ times more PCs than servers (billions today, to double in five years) client PCs per Google server 40,000+ times more client PCs purchased each year by home users than new servers purchased each year by Microsoft => a lot of computational power and resources at the edge that are greatly underutilized Edge is Larger than the Cloud

There are: 40+ times more PCs than servers (billions today, to double in five years) client PCs per Google server 40,000+ times more client PCs purchased each year by home users than new servers purchased each year by Microsoft => a lot of computational power and resources at the edge that are greatly underutilized Edge is Larger than the Cloud

There are: 40+ times more PCs than servers (billions today, to double in five years) client PCs per Google server 40,000+ times more client PCs purchased each year by home users than new servers purchased each year by Microsoft => a lot of computational power and resources at the edge that are greatly underutilized Edge is Larger than the Cloud

There are: 40+ times more PCs than servers (billions today, to double in five years) client PCs per Google server 40,000+ times more client PCs purchased each year by home users than new servers purchased each year by Microsoft => a lot of computational power and resources at the edge that are greatly underutilized Edge is Larger than the Cloud

There are: 40+ times more PCs than servers (billions today, to double in five years) client PCs per Google server 40,000+ times more client PCs purchased each year by home users than new servers purchased each year by Microsoft => a lot of computational power and resources at the edge that are greatly underutilized Edge is Larger than the Cloud

Unify different content access models: Centralized vs. replicated Centralized: web service, database Replicated: distributed P2P replication protocols Persistent vs. temporary Persistent: server in a data center Temporary: collaboration session formed ad hoc Server-side vs. client-side Shared public vs. shared private Public: web service or collaboration session Private: session state, cookies, etc. Stateful vs. stateless Stateful: variables, files, objects, database tables Stateless: video or notification streams New Storage Abstraction

Unify different content access models: Centralized vs. replicated Centralized: web service, database Replicated: distributed P2P replication protocols Persistent vs. temporary Persistent: server in a data center Temporary: collaboration session formed ad hoc Server-side vs. client-side Shared public vs. shared private Public: web service or collaboration session Private: session state, cookies, etc. Stateful vs. stateless Stateful: variables, files, objects, database tables Stateless: video or notification streams New Storage Abstraction

Unify different content access models: Centralized vs. replicated Centralized: web service, database Replicated: distributed P2P replication protocols Persistent vs. temporary Persistent: server in a data center Temporary: collaboration session formed ad hoc Server-side vs. client-side Shared public vs. shared private Public: web service or collaboration session Private: session state, cookies, etc. Stateful vs. stateless Stateful: variables, files, objects, database tables Stateless: video or notification streams New Storage Abstraction

Unify different content access models: Centralized vs. replicated Centralized: web service, database Replicated: distributed P2P replication protocols Persistent vs. temporary Persistent: server in a data center Temporary: collaboration session formed ad hoc Server-side vs. client-side Shared public vs. shared private Public: web service or collaboration session Private: session state, cookies, etc. Stateful vs. stateless Stateful: variables, files, objects, database tables Stateless: video or notification streams New Storage Abstraction

Unify different content access models: Centralized vs. replicated Centralized: web service, database Replicated: distributed P2P replication protocols Persistent vs. temporary Persistent: server in a data center Temporary: collaboration session formed ad hoc Server-side vs. client-side Shared public vs. shared private Public: web service or collaboration session Private: session state, cookies, etc. Stateful vs. stateless Stateful: variables, files, objects, database tables Stateless: video or notification streams New Storage Abstraction

Unify different content access models: Centralized vs. replicated Centralized: web service, database Replicated: distributed P2P replication protocols Persistent vs. temporary Persistent: server in a data center Temporary: collaboration session formed ad hoc Server-side vs. client-side Shared public vs. shared private Public: web service or collaboration session Private: session state, cookies, etc. Stateful vs. stateless Stateful: variables, files, objects, database tables Stateless: video or notification streams New Storage Abstraction

Checkpointed Channels (CC)

Architecture

network messages

the edge may “cut through” the channel content physically resides outside the channel… …but it could also be cached in it

the edge may “cut through” the channel content physically resides outside the channel… …but it could also be cached in it

content physically resides outside the channel… …but it could also be cached in it the edge may “cut through” the channel

Interfaces Checkpointed Communication Channel (CC) a writable stream of checkpoints and updates

Interfaces Checkpointed Communication Channel (CC) a writable stream of checkpoints and updates

Interfaces Checkpointed Communication Channel (CC) a writable stream of checkpoints and updates

Interfaces Checkpointed Communication Channel (CC) a writable stream of checkpoints and updates

Interfaces Checkpointed Communication Channel (CC) a writable stream of checkpoints and updates

Interfaces Checkpointed Communication Channel (CC) a writable stream of checkpoints and updates

Dynamics (local) Checkpointed Communication Channel (CC) U C UU U initial checkpoint

Dynamics (local) Checkpointed Communication Channel (CC) C initial checkpointmultiple updates UUU U

Dynamics (local) Checkpointed Communication Channel (CC) C initial checkpointmultiple updates UUU U

Interfaces Checkpointed Communication Channel (CC) a writable stream of checkpoints and updates

Dynamics (local) Checkpointed Communication Channel (CC) U updates UU

Dynamics (local) Checkpointed Communication Channel (CC) U updates UU

Interfaces Checkpointed Communication Channel (CC) a writable stream of checkpoints and updates

Interfaces Checkpointed Communication Channel (CC) a writable stream of checkpoints and updates

Interfaces Checkpointed Communication Channel (CC) a writable stream of checkpoints and updates

Dynamics (local) Checkpointed Communication Channel (CC) request checkpoint R

Dynamics (local) Checkpointed Communication Channel (CC) request checkpoint R

Dynamics (local) Checkpointed Communication Channel (CC) C checkpoint

Dynamics (local) Checkpointed Communication Channel (CC) C checkpoint

Dynamics (global) Checkpointed Channel (CC)

Dynamics (global) Checkpointed Channel (CC) connect

Dynamics (global) Checkpointed Channel (CC) connect initialize

Dynamics (global) connect initialize need checkpoint

Dynamics (global) initialize need checkpoint R

Dynamics (global) request checkpoint need checkpoint

Dynamics (global) request checkpoint R

Dynamics (global) initialize request checkpoint need checkpoint R

Dynamics (global) request checkpoint need checkpoint provide checkpoint

Dynamics (global) request checkpoint provide checkpoint C

Dynamics (global) provide checkpoint C

Dynamics (global) C transfer checkpoint

Dynamics (global) transfer checkpoint C

Dynamics (global) C checkpoint transfer checkpoint

Dynamics (global) C checkpoint deliver checkpoint

Dynamics (global) deliver checkpoint C

Dynamics (global) consume checkpoint C deliver checkpoint

Dynamics (global) consume checkpoint C wants to update

Dynamics (global) consume checkpoint C wants to update U

Dynamics (global) wants to update U request update

Dynamics (global) update request update U

Dynamics (global) U propagate update

Dynamics (global) propagate update UUU

Dynamics (global) propagate update U UU U

Dynamics (global) U UU update U deliver update

Dynamics (global) U UU U deliver update

Dynamics (global) deliver update U UU U

Dynamics (global) U UU U consume update

Semantics UCC'C' + = earlier checkpoint or state new checkpoint or state incremental update

Semantics UCC'C' + = earlier checkpoint or state new checkpoint or state incremental update

Semantics UCC'C' + = earlier checkpoint or state new checkpoint or state incremental update

Semantics CkCk checkpoint multiple updates U1U1 U2U2 UnUn

Semantics CkCk U1U1 U2U2 UnUn

CkCk U1U1 U2U2 UnUn C k+1 += CkCk U1U1

Semantics CkCk U1U1 U2U2 UnUn C k+1 C k+2 += C k+1 U2U2

Semantics CkCk U1U1 U2U2 UnUn C k+1 C k+2 C k+n + = C k+n-1 UnUn

Semantics CkCk U1U1 U2U2 UnUn C k+1 C k+2 C k+n

Semantics CkCk U1U1 U2U2 UnUn C k+1 C k+2 C k+n

Semantics C1C1 U2U2 U3U3 U5U5 C4C4 C6C6

C1C1 U2U2 U3U3 U5U5 C4C4 C6C6 C2C2 C3C3 C5C5

C1C1 U2U2 U3U3 U5U5 C4C4 C6C6 C2C2 C3C3 C5C5

C1C1 U2U2 U3U3 U5U5 C4C4 C6C6 C2C2 C3C3 C5C5

C1C1 CnCn C2C2 C3C3 “master sequence”

Semantics C1C1 CnCn C2C2 C3C3 “master sequence” C1C1 U n-1 U1U1 U2U2 submitted updates

Semantics C1C1 CnCn C2C2 C3C3 “master sequence” C1C1 C5C5 C8C8 C9C9 C 15 every application observes a subset of the master sequence

Semantics C1C1 CnCn C2C2 C3C3 “master sequence” C1C1 C5C5 C8C8 C9C9 C 15 every application observes a subset of the master sequence …and nobody lags behind

Types Checkpointed Communication Channel (CC) can be classified based on: the type of checkpoints, the type of updates, (and many other factors we won’t dicuss)

Types Checkpointed Communication Channel (CC) can be classified based on: the type of checkpoints, the type of updates, (and many other factors we won’t dicuss)

Types C U XML documents standardized edits on XML documents XML Channel (XC)

Types C U XML documents standardized edits on XML documents XML Channel (XC)

Types C U standardized edits on XML documents XML Channel (XC) XML documents

Types C U XML Channel (XC) XML documents standardized edits on XML documents

Types Checkpointed Channel (CC) Text ChannelBinary Channel XML Channel (XC) RSS Channel XHTML Channel XAML Channel Reference Channel Collection

Types Checkpointed Channel (CC) Text ChannelBinary Channel XML Channel (XC) RSS Channel XHTML Channel XAML Channel Reference Channel Collection

Types Checkpointed Channel (CC) Text ChannelBinary Channel XML Channel (XC) RSS Channel XHTML Channel XAML Channel Reference Channel Collection

Types Checkpointed Channel (CC) Text ChannelBinary Channel XML Channel (XC) RSS Channel XHTML Channel XAML Channel Reference Channel Collection

Live Distributed Objects (LO)

Ordinary Web Applications displayUI components

Ordinary Web Applications displayUI components

Ordinary Web Applications displayUI components

Ordinary Web Applications displayUI components

Ordinary Web Applications displayUI components

Ordinary Web Applications displayUI components

Ordinary Web Applications side by side nested

Ordinary Web Applications

Live Objects Applications side by side nested front-end to back-end

Live Objects Applications side by side nested front-end to back-end data pipeline

Live Objects Applications side by side nested front-end to back-end data pipeline UI component

Live Objects Applications side by side nested front-end to back-end data pipeline UI component MPEG-2 decoder

Live Objects Applications side by side nested front-end to back-end data pipeline UI component MPEG-2 decoder AES decryptor

Live Objects Applications side by side nested front-end to back-end data pipeline UI component MPEG-2 decoder AES decryptor reliable transport

Live Objects Applications side by side nested front-end to back-end data pipeline UI component MPEG-2 decoder AES decryptor reliable transport unreliable transport

… side by side nested front-end to back-end data pipeline

… side by side nested front-end to back-end

… side by side nested front-end to back-end

… side by side nested front-end to back-end

… side by side nested front-end to back-end

… side by side nested front-end to back-end

Live Objects Applications UI component MPEG-2 decoder AES decryptor reliable multicast IP multicast recovery protocol hole-punching UDP transport TCP transport membership client web service proxy

Live Objects Applications UI component MPEG-2 decoder AES decryptor reliable multicast IP multicast recovery protocol hole-punching UDP transport TCP transport membership client web service proxy

Live Objects Applications UI component MPEG-2 decoder AES decryptor reliable multicast IP multicast recovery protocol hole-punching UDP transport TCP transport membership client web service proxy

Live Objects Applications UI component MPEG-2 decoder AES decryptor reliable multicast IP multicast recovery protocol hole-punching UDP transport TCP transport membership client web service proxy

Live Objects Applications UI component MPEG-2 decoder AES decryptor reliable multicast IP multicast recovery protocol hole-punching UDP transport TCP transport membership client web service proxy

Live Objects Applications data “pipeline”

Live Objects Applications data pipeline data pipeline

Live Objects Applications data pipeline data pipeline data pipeline

Live Objects Applications XML

References XML activate channel reference channel proxy

References XML activate channel reference channel proxy

References XML activate channel reference channel proxy

References XML channel reference channel proxy points to

References XML channel reference channel proxy points to channel content XML

References XML points to XML

References XML points to XML

References XML

Ordinary Web Applications side by side nested XML markup

Live Objects Applications XML

Live Objects Applications

space

Live Objects Applications space plane 1 XML

Live Objects Applications space plane 1 plane 2 XML

Live Objects Applications space plane 1 plane 2 building 1 XML

Live Objects Applications space plane 1 plane 2 building 1 map XML

Live Objects Applications tile 1 XML

Live Objects Applications tile 1 XML tile 2 XML

Live Objects Applications

desktop

Live Objects Applications desktop text 2 XML

Live Objects Applications desktop text 2 XML image 1 XML

Live Objects Applications desktop text 2 XML image 1 XML desktop 2 XML

Live Objects Applications desktop text 2 XML image 1 XML desktop 2 XML text 3 XML

Live Objects Applications desktop 1

Live Objects Applications desktop 1 XML desktop 2

Live Objects Applications desktop 1 XML desktop 2 desktop 3 XML

Live Objects Applications desktop 1 XML desktop 2 desktop 3 XML text 1 XML

Live Objects Applications desktop 1 XML desktop 2 desktop 3 XML text 1 XML

Conclusions

1.Cloud and edge technologies can work together… …but we need a new storage abstraction. 2.Checkpointed Channels (CCs) a)Support a variety of protocols: client-server, P2P, distributed replication, append log files, etc., b)Can be used at any level of the protocol stack, at the fronted and at the backend, c)Can efficiently store structured mashup content, d)Can be hyperlinked into webs of CCs; these could serve as a basis for a new Web architecture. Conclusions

Thanks