Loading presentation...

Present Remotely

Send the link below via email or IM

Copy

Present to your audience

Start remote presentation

  • Invited audience members will follow you as you navigate and present
  • People invited to a presentation do not need a Prezi account
  • This link expires 10 minutes after you close the presentation
  • A maximum of 30 users can follow your presentation
  • Learn more about this feature in our knowledge base article

Do you really want to delete this prezi?

Neither you, nor the coeditors you shared it with will be able to recover it again.

DeleteCancel

BEEP (en)

No description
by

Maik Wojcieszak

on 27 November 2014

Comments (0)

Please log in to add your comment.

Report abuse

Transcript of BEEP (en)

BEEP
A TCP/IP protocol construction kit
OSI 1-2 Hardware Interface
OSI 3 IP
OSI 4 TCP/UDP
OSI 5-7 Application
Custom Protocol
BEEP
Profile
Existing Protcols
FTP
HTTP
SMTP
RPC
Protocol requirements
Fast, secure, simple and everywhere available.
Maik Wojcieszak
eMail
mw@tml-software.com
Internet
https://www.tml-software.com

wobe-systems GmbH
Wittland 2-4
24109 Kiel

Telefon: +49 (0) 431/38 21 65 00
No matching protocol found ? What now ?
Use an existing protocol even if it does not match the requirements completly.
Peer to Peer z.B. via http
one connection per request
many implementations available
not all requirements matched
simple interfaces
The socket trap !
Existing protocols are not flexible enough and do not match the requirements.
TCP Sockets are flexible and everywhere (language/platform) available.
The protocol requirements are not completly known.
Develop a new custom protocol "unwittingly".
The protocol will be a vulnerability of the system.
Project periods will be exceeded because of frequent protocol problems.
The protocol will be difficult to maintain for new requirements.
assumtption
possible
omissions
undesirable
results
peer to peer
progress and status
calling remote functions
parameter and result
ESMTP
FTP
HTTP
monitor command calls
showing processing status (progress)
control timeouts
equally privileged communication
distributed systems
push data to client applications
Multi Reply
Peer to Peer
Client/Server is a subset
BEEP - Blocks Extensible Exchange Protocol
1998-2000
Carl Malamud and Marshall T. Rose
describing BXXP the predecessor of BEEP.
2001
The IETF working group publishes RFC3080/RFC3081 which describes BEEP and BEEP on TCP.
IETF = Internet Engineering Task Force
http://en.wikipedia.org/wiki/Marshall_Rose
http://en.wikipedia.org/wiki/Carl_Malamud
Protocol construction kit
Forgot something ?
Framing
Tells how the beginning and ending of each message is delimited.
Encoding
Tells how a message is represented.
Reporting
Tells how errors are described.
Asynchrony
Tells how independent exchanges are handled.
Authentication
Tells how the peers at each end of the connection are identified and verified.
Security
Tells how the exchanges are protected against third-party interception (TLS/SASL).
Robust protocol vs. Quick Hack
Scalability
Properties of a good protocol.
Efficiency
Simplicity
Extensibility
Robustness
Sooner or later, someone would have to write something like BEEP/Vortex if you only have TCP
Francis Brosnan Blázquez, ASPL's CTO and Vortex Library's project leader
General requirements for application protocols.
Pipelining
Tells how multiple outstanding requests are handled.
Multiplexing
Tells how multiple asynchronous requests are handled.
Framing
Encoding
Privacy
Security
Asynchrony
Reporting
Pipelining
Multiplexing
Authentication
Standard function of a protocol don't need to be developed.
The development is focused on the real task.
A construction kit for everything ?
connection-oriented (TCP)
request/response model
allow asychronous message exchange
Not supported ?
connectionless protocols (UDP)
Profiles and Channels
BEEP Session
Profile, Profile, Profile ...
More information about BEEP
BEEP Toolkits
XML-RPC via Vortex
Questions ?
Recycling
Channel 0 is reserved for control.
Functions and services of a peer are implemented as profile.
One connection can provide multiple profiles.
A channel is assigned to a particular profile.
greeting
supported profiles
preferred diagnostic language
optional features
<greeting localize='en-US fr-CA'>
<profile uri='http://iana.org/beep/syslog' />
<profile uri='http://iana.org/beep/TLS' />
</greeting>
Profiles are uniquely identified with URLs.
Profile IDs are NOT internet addresses.
BEEP core
reliable syslog RFC3195
xml-RPC RFC3529
SOAP over BEEP RFC4227
TUNNEL Profile RFC3620
NETCONF RFC4744
SASL/TLS Support
To use BEEP, a profile needs to implemented on top of the BEEP core.
Developing a profile is faster and more reliable than developing a protocol.
Already specified profiles
available.
http://www.beepcore.org
Official BEEP page

BEEP: The Definitive Guide (Definitive Guides) (Englisch)
1. April 2002 by Marshall T. Rose

http://www.aspl.es/vortex/
Vortex Library
https://www.tml-software.com
Profile construction
kit
Vortex Library
http://www.aspl.es/vortex/
Open Source BEEP C implementation.
BeepFp
Free Pascal compponents based on Vortex libraries.
beep4j
BEEP core Java implementation based on Apache MINA (Multipurpose Infrastructure for Network Applications)
jsVortex
Open Source Javascript BEEP implementation.
http://www.aspl.es/jsVortex/
Vortex BEEP core
xml-RPC RFC3529
C API for RPC (Remote Procedure Calls) with Vortex.
Vortex includes an implementation of RFC3529.
Create interfaces with a protocol compiler (IDL, XDL)
XML-RPC example
The Missing Link
A BEEP profile construction kit
Service
Client
Python example
full UTF-8 support
Internet of Things - IOT
Database
Desktop Applications
Apps
Wearables
Internet Applications RIA
Sensors
Custom Profile
no Middleware
Full Duplex
TLS/SASL
no HOL Blocking
CORBA
HTTP
BEEP
HOL = Head-of-line blocking
A common problem related to data load.
BEEP avoids HOL blocking through its framing design (SEQ frames and sliding windows for flow control)
Install Vortex
Vortex needs AXL, an XML 1.0 implementation optimized for performance and low memory usage.
https://code.google.com/p/vortexlibrary/downloads/list
http://www.aspl.es/vortex/downloads/
Vortex contains the XML-RPC Profile and tools.
Create RPC interface
Add two values
Create the interface with IDL
IDL = Interface Definition Language
Supported data types
int
boolean
double
string
data
struct
array
{
Basic
Types
{
Integer defintion, 4 byte signed integer (-21)
boolean definition (1/axl_true, 0/axl_false)
double precision signed floating point number (-412.12)
string definition
date/time (currently not supported)
base64
base64 coded string
Structured
Types
combined named values of different types (Members)
a container for values of different types (including arrays)
Use generated RPC library
TLS/SASL can be used to secure the
connection.
include automatically generated library.
#include <INTERFACE_xml_rpc.h>
Open BEEP connection.
Use interface.
Close BEEP connection
1
2
3
4
Create interface and RPC server
Use client library
Install Vortex
Install Vortex and AXL on Linux (Debian).
Describe interface and generate code with XML-RPC-GEN automatically.
Use automatically created client library and test the result.
https://www.tml-software.com
The solution for cross platform, fast and reliable peer to peer networks.
no framing support
Head of Line problem (HOL)
one request blocks the rest
no Quality of Service support (QoS)
no bandwidth management
missing multireply
Existing profiles are not enough .... !
Balancing
registration
custom load calculation
flexible
redundancy
load balancing
Balancing
Streaming
Events
Data
unicode
xml
boolean
integer
reference counting
container types
nesting
binary
encoding
list
double
typesafe
table
Full transcript