Internet DRAFT - draft-hur-icnrg-abstracted-network-api

draft-hur-icnrg-abstracted-network-api



ICNRG                                                          	C. Hur
Internet Draft                                                 	J. Kim
Intended status: Informational                                 H. Jung
Expires: March 2015                                            	J. Eun
                                                                  ETRI
                                                               W. Chun
                                                                  HUFS
                                                     	    October 28, 2014



                      Abstracted Network API for ICN
               draft-hur-icnrg-abstracted-network-api-00.txt


Status of this Memo

   This Internet-Draft is submitted in full conformance with the
   provisions of BCP 78 and BCP 79.

   This document may contain material from IETF Documents or IETF
   Contributions published or made publicly available before November
   10, 2008. The person(s) controlling the copyright in some of this
   material may not have granted the IETF Trust the right to allow
   modifications of such material outside the IETF Standards Process.
   Without obtaining an adequate license from the person(s) controlling
   the copyright in such materials, this document may not be modified
   outside the IETF Standards Process, and derivative works of it may
   not be created outside the IETF Standards Process, except to format
   it for publication as an RFC or to translate it into languages other
   than English.

   Internet-Drafts are working documents of the Internet Engineering
   Task Force (IETF), its areas, and its working groups.  Note that
   other groups may also distribute working documents as Internet-
   Drafts.

   Internet-Drafts are draft documents valid for a maximum of six
   months and may be updated, replaced, or obsoleted by other documents
   at any time.  It is inappropriate to use Internet-Drafts as
   reference material or to cite them other than as "work in progress."

   The list of current Internet-Drafts can be accessed at
   http://www.ietf.org/ietf/1id-abstracts.txt

   The list of Internet-Draft Shadow Directories can be accessed at
   http://www.ietf.org/shadow.html




Hur                   Expires January 21, 2015                [Page 1]


Internet-Draft     Abstracted Network API for ICN         October 2014


   This Internet-Draft will expire on March 10, 2015.

Copyright Notice

   Copyright (c) 2014 IETF Trust and the persons identified as the
   document authors. All rights reserved.

   This document is subject to BCP 78 and the IETF Trust's Legal
   Provisions Relating to IETF Documents
   (http://trustee.ietf.org/license-info) in effect on the date of
   publication of this document. Please review these documents
   carefully, as they describe your rights and restrictions with
   respect to this document. Code Components extracted from this
   document must include Simplified BSD License text as described in
   Section 4.e of the Trust Legal Provisions and are provided without
   warranty as described in the Simplified BSD License.

Abstract

   In information-centric networking (ICN), well designed API will play
   a pivotal role in adopting ICN to applications. Traditional network
   API - i.e., current Socket implementation - is coupled between
   applications and underlying protocols, so it is hard to change one
   without changing the other, thus it could be solved by redesigning
   the network API in a way that decouples application-specific
   functions from network specific functions. In this draft, we
   addressed the network API modeling issues which can be also applied
   to the design of ICN APIs and proposed iPlug and dSocket API which
   help injection of applications' intent and hide underlying network
   specific mechanisms, respectively.

Table of Contents


   1. Introduction ................................................ 3
   2. Abstracted Network API ...................................... 4
      2.1. Intent modeling......................................... 4
      2.2. Loosely coupled modeling................................ 5
   3. IPlug and DSocket API........................................ 6
      3.1. Key operations ......................................... 8
   4. Analysis .................................................... 8
   5. Security Considerations...................................... 8
   6. IANA Considerations ......................................... 8
   7. References .................................................. 9
      7.1. Normative References.................................... 9
      7.2. Informative References.................................. 9
      A.1. Authors' Addresses..................................... 10


Hur                    Expires April 27 2015                 [Page 2]


Internet-Draft     Abstracted Network API for ICN         October 2014



   1. Introduction

   In the information-centric networking, the key idea is to let named
   data to be identified by name and to be retrieved wherever they are.
   To enable these communications, the named data need network API to
   use the functionalities of the underlying network. We bring up an
   issue for such an interface that is used by any source. Since many
   studies in interface patch up traditional socket-based API which is
   already tightly coupled to location, it is inevitable to redesign
   new network interface not only to be in accordance with location
   independent name, but also to meet the needs such as multihoming,
   and mobility[ICN Challenges].

   Recent ICN-based contributions have been presented network API, such
   as NetInf[ref], CCN/NDN[ref] and Publish/Subscribe Networking. There
   is common ground on naming and network primitives for accessing any
   object, regardless of location. NetInf defines set of APIs to handle
   Named Data Object (NDO), such as PUBLISH, INDICATION, REQUEST,
   RESPONSE, etc. NetInf API is used to retrieve NDO which is
   identified by NI naming [RFC 6920], instead of IP and Port in
   traditional socket API. It employs receiver-driven transport for
   carrying chunks of an object, and provides convergence layer to
   bridge with other protocols, such as HTTP and DTN. CCN/NDN defines
   CCNx API [Mosko] which adopted URL in content name representation.
   All communication between the core protocol implementation, network,
   and applications is accomplished through a Face abstraction (e.g.,
   link layer face, network-layer face, and transport-layer face). They
   also note that abstracted API is important for flexibility and
   extensibility.

   In this regard, we need a common ICN API that enables applications
   to be independent, interworked and evaluated throughout
   heterogeneous network architecture. In addition, network
   architectures can evolve and converged with others. For this, it is
   necessary to define common primitive API which abstracts the
   essential behavior.

   This draft introduces modeling consideration for API of ICN as well
   as other network architectures. We abstract the network API by
   applying Model Driven Engineering (MDE) and Separation of Concerns
   (SoC) principle [Morin, Moreira] which are principles in Object-
   Oriented design. The network API, in common with many other
   architectures, needs to be simple but powerful enough to help
   applications to focus on their own concerns regardless wherever the
   objects are located in and how to get the objects in the underlying
   network, but also assist separating ID/Locator in the Internet


Hur                    Expires April 27 2015                 [Page 3]


Internet-Draft     Abstracted Network API for ICN         October 2014


   architecture. The Internet applications using the network API can
   focus on only what to communicate with, not where or how.

   2. Abstracted Network API

   This draft describes abstracted network API to inject communication
   intents from application to network. For this abstraction requires
   API modeling concepts at different point of view. The abstracted
   network API can overcome the problems in the application point of
   view in the following.

   First of all, network application uses API that depends on some
   parts of network mechanism. Therefore, it has to concern with
   unnecessary aspects of network, such as name resolution, and
   congestion control.

   Second, when new network mechanism such as ICN is introduced,
   existing applications are no longer available, but modification
   takes a lot of efforts. In addition, new architectural changes are
   hardly deployed because of difficulty of application migration. It
   often led to overwrap the existing network API.

   Therefore, in network API, abstractions for both vertical and
   horizontal separation of concerns should be provided for reducing
   complexity. Vertical separation of concerns itemizes application's
   intent to be composable, and horizontal separation of concern
   reduces complexity by decoupling network-specific aspects from
   application, as shown in Figure 1.

2.1. Intent modeling

   In the ID/Locator splitted network such as ICN, application is only
   required to handle whom to communicate, but not how to communicate.
   Given this network, this draft adopts the MDE for API to be modeled
   at two different levels of abstraction. Network Independent Model
   (NIM) and Network Specific Model (NSM). When we define a network
   independent model and a network mechanism dependent model, one can
   find intent of network application. An intent is concern of
   application and an application can have multiple intent. For
   instance, an application can have intent to communicate with
   endpoints and demand reliable transmission. To enable the network
   application over the network, intent injection from NIM to NSM are
   needed. For example, if voice call application requires secure
   communication channel and certain quality of service, its intent can
   be carried in various ways such as IPSec and jitter control.



Hur                    Expires April 27 2015                 [Page 4]


Internet-Draft     Abstracted Network API for ICN         October 2014


2.2. Loosely coupled modeling

   Loosely coupled modeling has several advantages in the network API.
   First of all, it helps to separate concerns between application and
   network layer. Because separation of concerns in horizontal manner
   is to present integrated way to use underlying network, despite the
   network might include certain networking mechanisms (e.g., protocol,
   delivery types). It helps to realize applications' various
   communication intents over the heterogeneous network mechanisms.
   Second, loosely coupled relation reduces the dependency. Also, it
   makes possible to communicate between applications regardless the
   lower-level component and its implementation. For example, when
   applications retrieve Named Data Object, loosely coupled API is
   required in different kinds of architectures (e.g., ICN, CCN).
   Similarly, by performing the dynamic association between
   communication intent and network mechanism, both sides can be
   independent.































Hur                    Expires April 27 2015                 [Page 5]


Internet-Draft     Abstracted Network API for ICN         October 2014


     +=======================================================+

     | Network Independent Model                    		|

     | +----------+   +----------+         +----------+  	|

     | | Intent 1 |   | Intent 2 |   ...   | Intent N |  	|

     | +----------+   +----------+         +----------+   	|

     +=========================|=============================+

     Intent Injection         |

     +=========================@=============================+

     | Network Specific Model                      		|

     | +-------------+ +-------------+      +-------------+  	|

     | | Mechanism 1 | | Mechanism 2 | ... | Mechanism N |	|

     | +-------------+ +-------------+      +-------------+  	|

     |              |  		|          /         		|

     |             +----------------------+          		|

     |             | Network Architecture |          		|

     |            +----------------------+          		|

     +=======================================================+

                             Network API modeling

                                  Figure 1.

   3. IPlug and DSocket API

   This draft proposes iPlug and dSocket as an abstracted API model.
   The iPlug API takes charge of application-specific capabilities.
   Application needs functionalities such as flow control,
   authentication, which is supported by iPlug. The dSocket is a cut-
   off point of separation and hold responsibilities that network
   should handle, such as congestion control, multipath, multihoming.



Hur                    Expires April 27 2015                 [Page 6]


Internet-Draft     Abstracted Network API for ICN         October 2014


   In Figure 2, relation of API components is described. At first,
   application binds unique ID to iPlug. The plug-in and plug-out
   behavior help dynamic association between iPlug and dSocket. When
   detailed metadata of dSockets are delivered to applications, and
   then dSocket notifies the status to dSocket Manager to inform their
   relation change. Then, the iPlug can plug into the dSocket to inject
   application's intent, and plug out of the dSocket. Detailed
   procedures of each API are described in the following.

                     		+-------------------+

                     		|     Application   |---+

                    		+-------------------+    |

                     		|       Extension   |    |BIND

     +----------------+ FIND    +-------------------+    |

     |	  dSocket     |<--------|        iPlug      |<--+

     |    Manager     |     	+===================+

     +----------------+           	     | PLUGIN

       		^                   	     | PLUGOUT

       		| REGISTER       +===================+

       		----------------|       dSocket      |

                     		 +-------------------+

                     		|        Domain      |

                     		 +-------------------+

                             Components of API



                                  Figure 2.






Hur                    Expires April 27 2015                 [Page 7]


Internet-Draft     Abstracted Network API for ICN         October 2014


3.1. Key operations

   The abstracted network API has main operations for dynamic convergence.
The sequences and states of each operations are described in the folloing.  

         iPlug						    dSocket

            |---+  					|

            |   | BIND NAME                    		|

IDENTIFIED  |<--+                           		|

            |                                 		|

            |--------------	PLUG IN	  ------------->| PLUGIN-RECEIVED

PLUGGED IN  |                          			| PRESENTED

            |                            		|

            |-------------	PLUG OUT  ------------->| PLUGOUT-RECEIVED

PLUGGED OUT |                             		| DEPRESENTED

            |                            		|





   4. Analysis

   TBD



   5. Security Considerations

   TBD



   6. IANA Considerations

   TBD




Hur                    Expires April 27 2015                 [Page 8]


Internet-Draft     Abstracted Network API for ICN         October 2014


   7. References

7.1. Normative References

7.2. Informative References

   [ICNRG charter]  http://irtf.org/icnrg



   [ICN Challenges] D.Kutscher, S. Eum, K. Pentikousis, I. Psaras, D.
             Corujo, D. Saucez, T. Schmidt, and M. Waehlisch, "ICN
             Research Challenges ", draft-kutscher-icnrg-challenges-02,
             February 2014.

   [RFC 6920]S. Farrell, C. Dannewitz, P. Hallam-Baker, D. Kutscher,
             and B. Ohlman, "Naming Things with Hashes." [Online].
             Available: https://tools.ietf.org/html/rfc6920. [Accessed:
             24-Oct-2014].

   [Mosko]   M. Mosko, "CCNx 1.0 Protocol Introduction," Apr. 2014.

   [NETINF] Scalable and Adaptable Internet Solutions (SAIL), "D.B.1:
             The Network of Information: Architecture and applications",
             available at: http://www.sail-project.eu/deliverables/,
             2011

   [CLICK]  "The Click Modular Router Project." [Online]. Available:
             http://read.cs.ucla.edu/click/. [Accessed: 12-Jun-2014].

   [Morin]  B. Morin, F. Fleurey, N. Bencomo, J.-M. Jezequel, A.
             Solberg, V. Dehlen, and G. Blair, "An Aspect-Oriented and
             Model-Driven Approach for Managing Dynamic Variability,"
             in Model Driven Engineering Languages and Systems, K.
             Czarnecki, I. Ober, J.-M. Bruel, A. Uhl, and M. Volter,
             Eds. Springer Berlin Heidelberg, 2008, pp. 782-796.

   [Moreira] A. Moreira, A. Rashid, and J. Araujo, "Multi-dimensional
             separation of concerns in requirements engineering," in
             13th IEEE International Conference on Requirements
             Engineering, 2005. Proceedings, 2005, pp. 285-296.

   [Fielding]R. T. Fielding, "Architectural Styles and the Design of
             Network-based Software Architectures," University of
             California, Irvine, 2000.




Hur                    Expires April 27 2015                 [Page 9]


Internet-Draft     Abstracted Network API for ICN         October 2014


A.1. Authors' Addresses

   Cinyoung Hur
   ETRI
   218 Gajeong-ro, Yuseong-gu, Daejeon, Korea

   Email: cyhur@etri.re.kr


   JongHwan Kim
   ETRI
   218 Gajeong-ro, Yuseong-gu, Daejeon, Korea

   Email: ditto@etri.re.kr


   Heeyoung Jung
   ETRI
   218 Gajeong-ro, Yuseong-gu, Daejeon, Korea

   Email: hyjung@etri.re.kr


   Jeesook Eun
   ETRI
   218 Gajeong-ro, Yuseong-gu, Daejeon, Korea

   Email: jseun@etri.re.kr


   Woojik Chun
   Hankuk University of Foreign Strudies
   81, Oedae-ro, Mohyeon-myeon, Cheoin-gu, Yongin-si, Gyeonggi-do, Korea

   Email: woojikchun@gmail.com













Hur                    Expires April 27 2015                [Page 10]