Introduction to MINA A M ultipurpose I nfrastructure for N etwork A pplications April 2005, Trustin Lee, ASF.

Slides:



Advertisements
Similar presentations
Message Passing Vs Distributed Objects
Advertisements

Java Network Programming Vishnuvardhan.M. Dept. of Computer Science - SSBN Java Overview Object-oriented Developed with the network in mind Built-in exception.
VOYAGER: Yet Another Secure Web Browser to Demonstrate Secure Socket Layer Working and Implementation By : Shrinivas G. Deshpande Advisor: Dr. Chung E.
BASIC CRYPTOGRAPHY CONCEPT. Secure Socket Layer (SSL)  SSL was first used by Netscape.  To ensure security of data sent through HTTP, LDAP or POP3.
Copyright © 2001 Qusay H. Mahmoud RMI – Remote Method Invocation Introduction What is RMI? RMI System Architecture How does RMI work? Distributed Garbage.
Developing Application Extensions with Axis2 Chathura Herath Eran Chinthaka.
1 Object-Oriented Software Development Project Aaron Christopher.
Lecturer: Sebastian Coope Ashton Building, Room G.18 COMP 201 web-page: Lecture.
Socket Programming.
A CHAT CLIENT-SERVER MODULE IN JAVA BY MAHTAB M HUSSAIN MAYANK MOHAN ISE 582 FALL 2003 PROJECT.
Application Server Lecture Paulo Barroso Kris Carver Todd Kitterman Eric Silva.
3.5 Interprocess Communication Many operating systems provide mechanisms for interprocess communication (IPC) –Processes must communicate with one another.
1 © 2003, Cisco Systems, Inc. All rights reserved. CCNA 1 v3.0 Module 11 TCP/IP Transport and Application Layers.
3.5 Interprocess Communication
12/05/2000CS590F, Purdue University1 Sip Implementation Protocol Presented By: Sanjay Agrawal Sambhrama Mundkur.
Figure 1.1 Interaction between applications and the operating system.
© Lethbridge/Laganière 2001 Chap. 3: Basing Development on Reusable Technology 1 Let’s get started. Let’s start by selecting an architecture from among.
2 Systems Architecture, Fifth Edition Chapter Goals Describe client/server and multi-tier application architecture and discuss their advantages compared.
A Gateway For SIP Event Interworking - Sasu Tarkoma & Thalainayar Balasubramanian Ramya.
Client-server interactions in Mobile Applications.
Session-01. What is a Servlet? Servlet can be described in many ways, depending on the context: 1.Servlet is a technology i.e. used to create web application.
Socket Programming -What is it ? -Why bother ?. Basic Interface for programming networks at transport level It is communication end point Used for inter.
Network Protocols. Why Protocols?  Rules and procedures to govern communication Some for transferring data Some for transferring data Some for route.
1 Application Layer Lecture 4 Imran Ahmed University of Management & Technology.
Socket based Client/Server Systems Exercises in. Exercises Build a generic client Build an echo server Build a http client and server Build a proxy/firewall.
1 Chapter Client-Server Interaction. 2 Functionality  Transport layer and layers below  Basic communication  Reliability  Application layer.
Introducing Axis2 Eran Chinthaka. Agenda  Introduction and Motivation  The “big picture”  Key Features of Axis2 High Performance XML Processing Model.
1 Computer Communication & Networks Lecture 28 Application Layer: HTTP & WWW p Waleed Ejaz
Institute of Computer and Communication Network Engineering OFC/NFOEC, 6-10 March 2011, Los Angeles, CA Lessons Learned From Implementing a Path Computation.
Resource Allocation using Java RMI Amrish Kaushik Minal Malde CS599-Grid Computing Project Report USC Computer Science.
LiNK: An Operating System Architecture for Network Processors Steve Muir, Jonathan Smith Princeton University, University of Pennsylvania
Pattern Oriented Software Architecture for Networked Objects Based on the book By Douglas Schmidt Michael Stal Hans Roehnert Frank Buschmann.
An XMPP (Extensible Message and Presence Protocol) based implementation for NHIN Direct 1.
Introduction to Interprocess communication SE-2811 Dr. Mark L. Hornick 1.
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.
1 Apache. 2 Module - Apache ♦ Overview This module focuses on configuring and customizing Apache web server. Apache is a commonly used Hypertext Transfer.
Libwww, the W3C protocol library libwww - The W3C Protocol Library „Großes Schwerpunktseminar WI“ University of Applied Sciences Gießen-Friedberg.
2: Application Layer 1 Chapter 2: Application layer r 2.1 Principles of network applications r 2.2 Web and HTTP r 2.3 FTP r 2.4 Electronic Mail  SMTP,
Single Sign-on with Kerberos 1 Chris Eberle Ryan Thomas RC Johnson Kim-Lan Tran CS-591 Fall 2008.
Sockets process sends/receives messages to/from its socket
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 © 2003, Cisco Systems, Inc. All rights reserved. CCNA 1 v3.0 Module 11 TCP/IP Transport and Application Layers.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10Slide 1 Architectural Design l Establishing the overall structure of a software system.
Web Services. Abstract  Web Services is a technology applicable for computationally distributed problems, including access to large databases What other.
H.323, IP Multicast Conferencing, And TAPI 3.0 Don Ryan Development Lead Windows Networking And Communications Microsoft Corporation.
Struts 2 introduction. Struts 2 framework Struts 2 A full-featured web application framework for the Java EE platform The Java Servlet API exposes the.
1 Object Oriented Logic Programming as an Agent Building Infrastructure Oct 12, 2002 Copyright © 2002, Paul Tarau Paul Tarau University of North Texas.
Computer Science and Engineering Copyright by Hesham El-Rewini Advanced Computer Architecture CSE 8383 April 11, 2006 Session 23.
The Client-Server Model And the Socket API. Client-Server (1) The datagram service does not require cooperation between the peer applications but such.
Virtual call center on demand An OCaml-based Network Services Platform Chris Waterson October 4, 2007.
Java Network Programming Network Programming Spring 2000 Jeffrey E. Care
Advanced Java Session 4 New York University School of Continuing and Professional Studies.
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
Java Networking I IS Outline  Quiz #3  Network architecture  Protocols  Sockets  Server Sockets  Multi-threaded Servers.
Ch 2. Application Layer Myungchul Kim
Securing Access to Data Using IPsec Josh Jones Cosc352.
SPL/2010 Reactor Design Pattern 1. SPL/2010 Overview ● blocking sockets - impact on server scalability. ● non-blocking IO in Java - java.niopackage ●
JAVA TRAINING IN NOIDA. JAVA Java is a general-purpose computer programming language that is concurrent, class-based, object-oriented and specifically.
Using ZeroMQ for GEP. 2 About ZeroMQ The “zero” in ZeroMQZeroMQ  Zero Broker  Zero Latency (Low Latency)  Zero Administration  Zero Cost – Cross Platform.
CONFIGURING A MICROSOFT EXCHANGE SERVER 2003 INFRASTRUCTURE
Trustin Lee Introduction to MINA Trustin Lee
Software Design and Architecture
High-performance network applications
Pluggable Architecture for Java HPC Messaging
Software models - Software Architecture Design Patterns
MPJ: A Java-based Parallel Computing System
Exceptions and networking
The reactor design pattern
Presentation transcript:

Introduction to MINA A M ultipurpose I nfrastructure for N etwork A pplications April 2005, Trustin Lee, ASF

Contents  Overview  How to Program  Filter Mechanism  Proof of Productivity  Architecture Review  Conclusion

Overview

What is MINA?  A network application framework  Feature-rich  Extensible  Designed for agile client/server programming  Client- or server-less unit testing  Very high reusability and maintainability  Yet scalable / high performance

Architecture: I/O Layer  MINA abstracts all low-level I/O via abstract API.  IoHandler s get notified when I/O events occur.  You communicate by reading and writing data buffers.

Architecture: Protocol Layer  Built upon I/O layer  Good when you implement complex protocols  You communicate by sending and receiving message objects..

MINA Abstract API  Single API for various transport types  Highly extensible  Unit-test your server using mock objects.  no real clients anymore!

MINA Abstract API (Cont’d)  Once a protocol implemented, it works for:  NIO sockets  TCP/IP  UDP/IP  In-VM pipe  Coming soon:  Non-NIO sockets  Serial port  Parallel port  Multicast (when Mustang is ready)

How to Program

What MINA Does For You  You NEVER need to program...  Stream I/O  NIO  Thread management  Buffer management because it does ALL of them for you! Then what do you have to do?

What You Should Do  The first way to implement your protocol:  Using I/O Layer: IoHandler  You communicate by reading and writing data buffers.

What You Should Do (Cont’d)

 The second way to implement your protocol:  Using Protocol Layer: ProtocolProvider  You communicate by exchanging objects (POJO).  Your codec performs transformations between data buffers and message objects.  Reusable  Pluggable (thanks to polymorphism)  You take full advantage of OOP for message objects  Inheritance

What You Should Do (Cont’d)

Filter Mechanism

Architecture (with Filters)

What is Filter  A reusable event interceptor  Similar to Servlet filters  Can be added and removed “on-the-fly”  Works in both coarse- and fine-grained way:  Per Server Port  Per Individual Session

Filter Use Cases  Implemented filters:  Thread pool (= customizable thread model!)  SSL  Client blacklisting  Coming soon:  Logging, Profiling, StartTLS, Peak Point Control, Traffic throttling, Firewall, and many more...  Any contributions are welcome!

Filter Use Cases (Cont’d)  Customizable thread models  MINA runs in single thread mode by default  Good for low-latency apps  Add a ThreadPoolFilter to make MINA multi-threaded  Good for high-scalability apps

Proof of Productivity

Comparison *) A Core Java Tech Tips example  100% CPU consumption while socket buffer is full. (doesn’t register for OP_WRITE)  No SSL support (never trivial) Plain NIOMINA Echo server109 lines*50 lines (45%) ReusabilityPoorAll reusable: Filters, Codecs, Handlers MaintainabilityPoorVery good

More Complex Protocols  Even echo server is hard to maintain.  Writing complex protocols with plain NIO is the beginning of your nightmare.  MINA Protocol Layer is your cozy pillow.  Known implementations:  LDAP  SMTP  DNS  Kerberos  IMAPv4  NTP

Architecture Review

Conclusion

MINA is a flexible and extensible network application framework that boosts developer productivity.

How to Contribute  MINA is a subproject of the Apache Directory Project the Apache Directory Project  Homepage:  Mailing List: (Use ‘[mina]’ prefix)