Common Transport Rafael Schloming. Objectives Scaling Engineering Time ● N experts in protocol & language -> 1 protocol expert & N language experts ●

Slides:



Advertisements
Similar presentations
--- IT Acumens. COMIT Acumens. COM SNMP Project. AIM The aim of our project is to monitor and manage the performance of a network. The aim of our project.
Advertisements

Oct, 26 th, 2010 OGF 30, NSI-WG: Network Service Interface working group Web Services Overview Web Services for NSI protocol implementation
Eclipse, M2M and the Internet of Things
12 October 2011 Andrew Brown IMu Technology EMu Global Users Group 12 October 2011 IMu Technology.
Contiki A Lightweight and Flexible Operating System for Tiny Networked Sensors Presented by: Jeremy Schiff.
A CHAT CLIENT-SERVER MODULE IN JAVA BY MAHTAB M HUSSAIN MAYANK MOHAN ISE 582 FALL 2003 PROJECT.
Building an Application Server for Home Network based on Android Platform Yi-hsien Liao Supervised by : Dr. Chao-huang Wei Department of Electrical Engineering.
L EC. 01: J AVA FUNDAMENTALS Fall Java Programming.
Messaging Technologies Group: Yuzhou Xia Yi Tan Jianxiao Zhai.
Securing Legacy Software SoBeNet User group meeting 25/06/2004.
Programming mobile devices Part II Programming Symbian devices with Symbian C++
Cli/Serv.: JXTA/151 Client/Server Distributed Systems v Objective –explain JXTA, a support environment for P2P services and applications ,
ISYS 512 Business Application Design and Development with.Net David Chao.
@2011 Mihail L. Sichitiu1 Android Introduction Platform Overview.
Institute of Computer and Communication Network Engineering OFC/NFOEC, 6-10 March 2011, Los Angeles, CA Lessons Learned From Implementing a Path Computation.
Message Driven Beans & Web Services INFORMATICS ENGINEERING – UNIVERSITY OF BRAWIJAYA Eriq Muhammad Adams J
Introduction To System Analysis and Design
Web Services based e-Commerce System Sandy Liu Jodrey School of Computer Science Acadia University July, 2002.
Computer Networks. Introduction Computer Network2 A History Lesson of Networking 1969 – ARPANET, first packet switched network consist of UCLA, Stanford,
SPREAD TOOLKIT High performance messaging middleware Presented by Sayantam Dey Vipin Mehta.
Windows 2000 Course Summary Computing Department, Lancaster University, UK.
1. I NTRODUCTION TO N ETWORKS Network programming is surprisingly easy in Java ◦ Most of the classes relevant to network programming are in the java.net.
1 Geospatial and Business Intelligence Jean-Sébastien Turcotte Executive VP San Francisco - April 2007 Streamlining web mapping applications.
Ivo Rosol, OKsystem Middleware.
Tool Integration with Data and Computation Grid GWE - “Grid Wizard Enterprise”
Processes Introduction to Operating Systems: Module 3.
X-WindowsP.K.K.Thambi The X Window System Module 5.
JDBC Chapter 1 JDBC Introduction
FlowLevel Client, server & elements monitoring and controlling system Message Include End Dial Start.
EGEE is a project funded by the European Union under contract IST Introduction to Web Services 3 – 4 June
Diagrams. Typically, we view the static parts of a system using one of the four following diagrams. 1. Class diagram 2. Object diagram 3. Component diagram.
New Development Efforts in GridFTP Raj Kettimuthu Math & Computer Science Division, Argonne National Laboratory, Argonne, IL 60439, U.S.A.
Introduction to Node.js® Jitendra Kumar Patel Saturday, January 31, 2015.
Virtualization Neependra Khare
Introduction to Operating Systems Concepts
Computer System Structures
SDN controllers App Network elements has two components: OpenFlow client, forwarding hardware with flow tables. The SDN controller must implement the network.
Computer System Structures
Introduction to threads
L25 - PlantPAx Process Application Development Lab I
cFS Workshop Ground Systems & Kits
Visit for more Learning Resources
Introduction to Distributed Platforms
Common Object Request Broker Architecture (CORBA)
Computer Networks.
Sabri Kızanlık Ural Emekçi
Mobile App Development
IzoT™ Device Stacks March 2014.
Unified Modeling Language
CASE STUDY 1: Linux and Android
Chapter 2 Processes and Threads Today 2.1 Processes 2.2 Threads
EIN 6133 Enterprise Engineering
Wireless Instant Messaging Using J2ME
CHAPTER 2 CREATING AN ARCHITECTURAL DESIGN.
CMPE419 Mobile Application Development
#01 Client/Server Computing
Developing applications using Chromium
Chapter 3: Windows7 Part 1.
Chapter 2: Operating-System Structures
Indigo Doyoung Lee Dept. of CSE, POSTECH
Agile App Development with Azure API Management
B.Ramamurthy Chapter 2 : Appendix
SOA in Action Chapter 10 B. Ramamurthy 1/16/2019.
Windows Virtual PC / Hyper-V
Android Introduction Platform Mihail L. Sichitiu.
Outline Operating System Organization Operating System Examples
Chapter 5 Architectural Design.
CMPE419 Mobile Application Development
#01 Client/Server Computing
Presentation transcript:

Common Transport Rafael Schloming

Objectives

Scaling Engineering Time ● N experts in protocol & language -> 1 protocol expert & N language experts ● Protocol features implemented in 1 place rather than N – flow control, transports, addressing, etc ● Simplified interop ● Support Clients, Brokers, & Others ● Leverage 3 rd party contributions

Adoption ● Simple and useful Abstraction ● Broad platform support – Windows, Solaris, Posix, Mobile Devices,... ● Broad environment support – C, C++, Python, Perl, Ruby, Java,.Net, Lua,... ● Embedability ● Narrow & Stable ABI ● Minimal Dependencies

Architecture

Ubiquitous Block Diagram

Message Transport ● Send & Receive high level messages – includes data binding into the host environment ● structured headers ● structured messages (map message) ● Must not constrain the programming model – blocking, non blocking, threaded,... ● Transport, not monolithic client/server – proxies, concentrators, services,...

Message Transport ● Symmetric – used producer to broker & broker to consumer ● Point to point – direct vs brokered vs federated is a deploy time decision ● depends on global addressing ● Acknowledgment ● Flow Control

Ubiquitous Block Diagram ● Useful high level illustration ● Naive translation into call stack yields undesirable dependencies

Core Components ● Arrows depict formal dependencies ● Event Driver serves as Nexus of Dependencies – allows protocol, I/O and app to be decoupled

Event Driver ● Feeds protocol engine with events from: – I/O modules – Timers – Application ● Depends on well defined value objects – Message & Data abstractions ● Different threading models might use different drivers

Component Detail

Protocol Engine ● Interface is subdivided into top and bottom half ● Top half – defined in terms of links and messages – non blocking form of the messaging API ● Bottom half – defined in terms of bytes, frames & ticks

Protocol Engine ● Pure state machine – state is strictly characterized by inputs & outputs – allows driver to know when things may have changed ● Protocol implementation doesn't interact with I/O code

I/O Module ● Provides Byte/Frame Transport ● Decoupled from protocol entirely ● Easy to define narrow & stable plugin API

Module Diagram

Multi Protocol ● Public protocol plugin API ● Supports multiple versions of AMQP ● Could support other messaging protocols – XMPP, Stomp, SMTP

Multiple I/O Modules ● Decoupling allows – easy 3 rd party contributions – public plugin API

C Stack ● Enables Binding – Swig, JNI ● Easily integrated into standard libraries

Parallel Java Stack ● Java as a Platform vs Java as an Environment ● Java as a Platform requires pure Java Stack ● Java as a Language can make do with JNI

Testing Strategy ● Drive both stack implementations from a single python test suite ● Jython for Java Stack ● Swig for C Stack

Build Requirements ● Support bindings for multiple environments ● Support multiple platforms ● Transport and/or Clients available as independent artifacts