High-performance network applications

Slides:



Advertisements
Similar presentations
1 VM/Advanced Network Services A New Reference Architecture for VM TCP Services David Boyes Sine Nomine Associates Session V29.
Advertisements

CSE 222a Final Project - UCSD Spring 2007 p2p DNS addressing Presented By- Anup Tapadia Alexander Loukissas Justin Wu.
Chapter 7 Firewalls. Firewall Definition  A network device that enforces network access control based upon a defined security policy.
Negotiating Unsolicited Connections to a Service Listening Behind a Firewall Ben Stroud CS525 Spring 10.
1 Application Layer. 2 Writing Networked Applications TCP UDP IP LL PL TCP UDP IP LL PL TCP UDP IP LL PL Web Browser Web Server Ftp Server Ftp Client.
1 Some TCP/IP Basics....NFSDNSTELNETSMTPFTP UDPTCP IP and ICMP Ethernet, serial line,..etc. Application Layer Transport Layer Network Layer Low-level &
Circuit & Application Level Gateways CS-431 Dick Steflik.
5/3/2006 tlpham VOIP/Security 1 Voice Over IP and Security By Thao L. Pham CS 525.
VSP Video Station Protocol Presented by : Mittelman Dana Ben-Hamo Revital Ariel Tal Instructor : Sela Guy Presented by : Mittelman Dana Ben-Hamo Revital.
Client-server interactions in Mobile Applications.
1 NETE4631 Communicating with the Cloud and Using Media and Streaming Lecture Notes #14.
Internet Vulnerabilities & Criminal Activities 1.2 – 9/12/2011 Structure of Internet Communications 1.2 – 9/12/2011 Structure of Internet Communications.
What makes web pages look like web pages LS 560 Spring 2012, section 901.
By : Himanshu Mishra Nimish Agarwal CPSC 624.  A system designed to prevent unauthorized access to or from a private network.  It must have at least.
T Sponsors Nino Crudele Integration MVP, Solidsoft Reply, Principal Consultant An Azure of Things, a developer’s perspective BizTalk Summit 2015 – London.
Introduction to MINA Trustin Lee
Apache Mina Dima Ionut Daniel. Contents What is Apache Mina? Why Apache Mina? Mina Architecture Mina Core Mina Advanced JMX Support Spring Integration.
Introduction to MINA A M ultipurpose I nfrastructure for N etwork A pplications April 2005, Trustin Lee, ASF.
Module 10: Monitoring ISA Server Overview Monitoring Overview Configuring Alerts Configuring Session Monitoring Configuring Logging Configuring.
Firewalls First notions. Breno de MedeirosFlorida State University Fall 2005 Types of outsider attacks Intrusions –Data compromise confidentiality, integrity.
1 Firewalls G53ACC Chris Greenhalgh. 2 Contents l Attacks l Principles l Simple filters l Full firewall l Books: Comer ch
OSI Model Data Communications. 7 layer “research” model ApplicationPresentationSessionTransportNetworkLinkPhysical.
Logging1. 2 Introduction Ships must keep a written log telling speed, direction, destination, etc. –A kind of diary of the ship. Large programs should.
Module 10: How Middleboxes Impact Performance
Data Communications and Networks
Module 7: Advanced Application and Web Filtering.
Developing an Effective Wireless Middleware Strategy.
LO1 Know types of Network Systems and Protocols. Application Layer Protocols.
1 Chapters 2 & 3 Computer Networking Review – The TCP/IP Protocol Architecture.
Investigating the Performance of Audio/Video Service Architecture I: Single Broker Ahmet Uyar & Geoffrey Fox Tuesday, May 17th, 2005 The 2005 International.
ITGS Network Architecture. ITGS Network architecture –The way computers are logically organized on a network, and the role each takes. Client/server network.
1 Interview Questions - What is the difference between TCP and UDP? - What is Nagle's Algorithm? - Describe the TCP handshaking process. - What is Slow.
WebRTC Don McGregor Research Associate MOVES Institute
An Analysis of Using Reflectors for Distributed Denial-of- Service Attacks Paper by Vern Paxson.
Jetty 9 Dima Ionut Daniel. Contents What is Jetty? History Jetty 9 new features Jetty Configuration Deployment Arhitecture JMX SPDY Handlers WebSocket.
Introduction to MINA Trustin Lee NHN Corporation
Model: DS-600 5x 10/100/1000Mbps Ethernet Port Centralized WLAN management and Access Point Discovery Manages up to 50 APs with access setting control.
Chapter 8.  Upon completion of this chapter, you should be able to:  Understand the purpose of a firewall  Name two types of firewalls  Identify common.
Firewalls, Network Address Translators(NATs), and H.323
Routing Game.
Installing TMG & Choosing a Client Type
Network Programming in Java CS 1111 Ryan Layer May 3, 2010
Instructor Materials Chapter 9: Testing and Troubleshooting
Network Wiring and Reference
Trustin Lee Introduction to MINA Trustin Lee
Grizzly 2.0 Initial propose overview
Processes The most important processes used in Web-based systems and their internal organization.
Implementing TMG Server Publishing
Working at a Small-to-Medium Business or ISP – Chapter 7
The Open System Interconnection (OSI) Model & Network Protocols.
CompTIA Server+ Certification (Exam SK0-004)
Working at a Small-to-Medium Business or ISP – Chapter 7
Working at a Small-to-Medium Business or ISP – Chapter 7
Framework Presentation
Design and Implementation of Audio/Video Collaboration System Based on Publish/subscribe Event Middleware CTS04 San Diego 19 January 2004 PTLIU Laboratory.
Building real-time web apps with WebSockets using IIS, ASP.NET and WCF
IIS.
Transport Protocols Relates to Lab 5. An overview of the transport protocols of the TCP/IP protocol suite. Also, a short discussion of UDP.
Do-more Technical Training
Working at a Small-to-Medium Business or ISP – Chapter 7
POOJA Programmer, CSE Department
Transport Protocols An overview of the transport protocols of the TCP/IP protocol suite. Also, a short discussion of UDP.
When you connect with DHCP, you are assigned a
INTRODUCTION TO By Stepan Vardanyan.
COM, DCOM and Software Components
Firewalls Chapter 8.
Applications Layer Functionality & Protocols
Networking for Home and Small Businesses – Chapter 6
OSI Reference Model Kashif Ishaq.
Session 20 INST 346 Technologies, Infrastructure and Architecture
Presentation transcript:

High-performance network applications Apache MINA High-performance network applications

Multipurpose Infrastructure Networked Application http://mina.apache.org

Where? - developer full stack frontend

Design “Smart” Inversion of control pattern (good for Spring) Bad scalability ver. 2.0 since 2012

Strengths Maturity ( 2006 -> v.1.0, v.1.1, …, v.2.x -> 2016) API simplification Performance boost (almost like C/C++) Low latency v.2.0 decreased connection latency Queueing sessions Delegated to Executor (i.e. java.util.concurrent.ThreadPoolExecutor)

Who is using it? Apache (LDAPv3, NTP, DNS, DHCP, Kerberos) Tigris (SMTP) Openfire (Jabber/XMPP) …

Engine 1/3 NIO Non Blocking Async Event-Driven Agnostic Framework ByteBuffer (very powerfull, v2 Heap only, no Stack and no Pooling) Future (unlike java5) Blocking functions avail Callbacks on completion Single thread for new connections

Engine 2/3 Service Connector Processor Filter Handler Service Acceptor public Server() throws IOException { // Create a TCP acceptor IoAcceptor acceptor = new NioSocketAcceptor(); // Associate the acceptor to an IoHandler instance (your application) acceptor.setHandler(…); // Bind : this will start the server... acceptor.bind(new InetSocketAddress(PORT)); } acceptor.getFilterChain().addLast( "logger", new LoggingFilter() ); acceptor.getFilterChain().addLast( "codec", new ProtocolCodecFilter( new TextLineCodecFactory( Charset.forName( "UTF-8" )))); public class MyHandler extends IoHandlerAdapter { @Override public void exceptionCaught(IoSession session, Throwable cause) throws Exception {…} public void messageReceived(IoSession session, Object message ) throws Exception {…} public void sessionIdle(IoSession session, IdleStatus status ) throws Exception {…} } Engine 2/3 App. Logic Service Connector Processor Filter Handler public Server() throws Throwable { // Create a TCP connector NioSocketConnector connector = new NioSocketConnector(); connector.setHandler(…); // Bind : this will connect to server... IoSession session; try { ConnectFuture future = connector.connect(new InetSocketAddress(HOSTNAME, PORT)); future.awaitUninterruptibly(); session = future.getSession(); } … } Service Acceptor Processor Filter Handler connector.getFilterChain().addLast("codec", new ProtocolCodecFilter( new SumUpProtocolCodecFactory(false)));

Engine 3/3 Write Service Connector Processor Filter Handler Service App. Logic Write Service Connector Processor Filter Handler Service Acceptor Processor Filter Handler Read Reusability Hot Deployment All events

Pre-set features All famous network protocols as application (FTP, HTTP/s, Proxy, Firewall, Traffic Shaper, DNS, NTP, …) Many codecs on IoBuffer (aka ByteBuffer) Blacklists, Logging, SSL/TLS, Compression DI & Spring Framework

Clone Desktop to TV via Wifi Screen Recorder 30fps MINA compressing media MINA@Pi3 de-compressing media pics pics

Converting chat from TCP to UDP Chat Server Jabber/XMPP (TCP) TCP TCP Chat Proxy (MINA) NAT w UDP-2-TCP conversion High-bandwidth internet Low-bandwidth internet UDP UDP

Q? Branislav Bajlovski, VP/CTO @ Sourcico