an architectural framework for supporting distributed object based routing

26
An Architectural Framework for Supporting Distributed Object Based Routing Dhavy Gantsou Department of Computer Science University of Valenciennes France [email protected] SIGAda 2002, D. Gantsou

Upload: ata

Post on 16-Mar-2016

28 views

Category:

Documents


0 download

DESCRIPTION

An Architectural Framework for Supporting Distributed Object Based Routing. Dhavy Gantsou Department of Computer Science University of Valenciennes France [email protected] SIGAda 2002, D. Gantsou. Basic networking terminology and concepts: Protocol ?. In general - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: An Architectural Framework for Supporting Distributed Object Based Routing

An Architectural Framework for Supporting Distributed Object

Based Routing

Dhavy Gantsou

Department of Computer ScienceUniversity of Valenciennes

[email protected]

SIGAda 2002, D. Gantsou

Page 2: An Architectural Framework for Supporting Distributed Object Based Routing

Basic networking terminology and concepts:

Protocol ?

In general A set of rules that govern all activity involving two or more entities that exchange messages in order to accomplish a task

SIGAda 2002, D. Gantsou

Page 3: An Architectural Framework for Supporting Distributed Object Based Routing

Basic networking terminology and concepts:

Routing protocol ? Activity = transmitting data (packets) from a host (sender) to a remote host (receiver).

Task = routing

Communicating entities = software components of hosts and devices performing routing (routers ).

SIGAda 2002, D. Gantsou

Page 4: An Architectural Framework for Supporting Distributed Object Based Routing

Basic networking terminology and concepts:

Routing ? Route computing. Involves:

• Exchange of update messages (routing tables) only between neighboring routers • Use of received routing tables to dynamically determine the best path that a packet should

take to reach its destination.

SIGAda 2002, D. Gantsou

Page 5: An Architectural Framework for Supporting Distributed Object Based Routing

Basic networking terminology and concepts:

Routing ? Route computing. Requires :

• Coherent route maintenance (route insertion,

change, and deletion), may be periodic • Real-time inter-router communication. Receiving update messages at wrong time

leads to instabilities

SIGAda 2002, D. Gantsou

Page 6: An Architectural Framework for Supporting Distributed Object Based Routing

R3

R5 R4

R2

R7R1

R6

Basic networking terminology and concepts:Routing ?

Page 7: An Architectural Framework for Supporting Distributed Object Based Routing

Basic networking terminology and concepts: Routing ? cont.

Route lookup

•Forwarding packets received on an input network interface to an appropriate output interface for transmission across the

Internet.

SIGAda 2002, D. Gantsou

Page 8: An Architectural Framework for Supporting Distributed Object Based Routing

Basic networking terminology and concepts:

Routing protocols issues Implement multiple algorithms that :• execute concurrently• interact to achieve a common goal

Require real-time communication

SIGAda 2002, D. Gantsou

Page 9: An Architectural Framework for Supporting Distributed Object Based Routing

Basic networking terminology and concepts: networking domain

specific issues Co-existence of two alternative data representation, due to exchanges of data among hosts having different byte-ordering. Packets loss implying retransmission Data error involving retransmission Retransmission requiring timer management Varying and complicated message formats, Asynchronous communication

SIGAda 2002, D. Gantsou

Page 10: An Architectural Framework for Supporting Distributed Object Based Routing

Basic networking terminology and concepts: Concluding remark

Given the issues that they raise, routing protocols

belong to the domain of large-scale, real-time applications

How to implement routing software ?

SIGAda 2002, D. Gantsou

Page 11: An Architectural Framework for Supporting Distributed Object Based Routing

Routing software implementation: Designs

Conventional (monolithic)

Distributed object based

A poor choice of technology can make the implementation tedious and difficult

SIGAda 2002, D. Gantsou

Page 12: An Architectural Framework for Supporting Distributed Object Based Routing

Conventional design

For single processor targets

Uses C and C++

Extensive use of operating system features for implementing real-time functionality

Widely used by network designers May be for historical and business reasons

SIGAda 2002, D. Gantsou

Page 13: An Architectural Framework for Supporting Distributed Object Based Routing

Conventional design cont.

Needs specific procedures for performing:• network byte-ordering• mapping between the logical view and

realistic messages

Not suitable for the implementation of next generation Internet’s architecture

SIGAda 2002, D. Gantsou

Page 14: An Architectural Framework for Supporting Distributed Object Based Routing

Ada95 technology based Prototype Uses GLADE features to perform data

representation operations Consists on four major classes:

• Router_Class

• Shared_Object

• Service_Manager

• OSPF_Router

SIGAda 2002, D. Gantsou

Page 15: An Architectural Framework for Supporting Distributed Object Based Routing

Ada95 technology based Prototype

Router_Class : An abstract (virtual) class specifying the behavior of communicating entities (routers)

Subclasses derived from Router_Class must provide real methods (operations) performing the functionality of the routers

SIGAda 2002, D. Gantsou

Page 16: An Architectural Framework for Supporting Distributed Object Based Routing

Class Router_ClassWith common, common_types;package Router_Class is

pragma Remote_Types ;type Router_Class is abstract tagged limited private ;

procedure Update (Router : Access router_Class; Message : Common.Message_Type) is abstract ; private

type Router_Class is abstract tagged limited null record ;end Router_Class ;

SIGAda 2002, D. Gantsou

Page 17: An Architectural Framework for Supporting Distributed Object Based Routing

Ada95 technology based Prototype

Shared_Object : A class implementing concurrent query and/or modify methods that are inherent to the OSPF DR (designated router) concept.

A single member of a set of OSPF routers, which is elected by its neighbors to serve as central point of contact for routing information exchange

SIGAda 2002, D. Gantsou

Page 18: An Architectural Framework for Supporting Distributed Object Based Routing

Class Shared_ObjectGenerictype For_Multiple_Inheritence is tagged limited private ;

package Virtual_DR ispragma Shared_Passive ;type Shared_Object is new For_Multiple_Inheritence with private ;

procedure Insert (DR : Access Shared_Object ; Msg : Common.Message_Type; Where: Natural ) ; private

type Shared_Object is new For_Multiple_Inheritence with null record ;end Virtual_DR ;

SIGAda 2002, D. Gantsou

Page 19: An Architectural Framework for Supporting Distributed Object Based Routing

package body Virtual_DR is

protected Acces_Control is

private end protected Acces_Control ; protected body Acces_Control is

end protected Acces_Control ;

procedure Insert (DR : Access Shared_Object ; Msg : Common.Message_Type; Where: Natural ) is

end Insert ;

end Virtual_DR ;

SIGAda 2002, D. Gantsou

Page 20: An Architectural Framework for Supporting Distributed Object Based Routing

Ada95 technology based Prototype

Service_Manager : provides methods that enable:• to register distributed objects

• clients (objects requiring services) to find and retrieve references of distributed objects providing remote services (server)

SIGAda 2002, D. Gantsou

Page 21: An Architectural Framework for Supporting Distributed Object Based Routing

Class Service_ManagerWith Router_Class, Common;package Service_Manager is Pragma Remote_Call_Interface ; type Router_Class_Ref is Access all Router_Class. Router_Class’Class ;

type Remote_Router_Reference is record

Router_Ref: Router_Class_Ref ; Router_Id : Common.Address ; end record ;

procedure Registry (Router : Access Router_Class_Ref; Router_ID: Common.Address ; Host : Common.Host_Name) ; function Give_Router_Reference(Key : Natural) return Router_Class_Ref ;

end Service_Manager ;

SIGAda 2002, D. Gantsou

Page 22: An Architectural Framework for Supporting Distributed Object Based Routing

package body Service_Manager isprotected Synchro_Ref_Acces is

procedure Registry (Router : Access Router_Class_Ref; Router_ID: Common.Address ; Host : Common.Host_Name) ; function Give_Router_Reference(Key : Natural) return Router_Class_Ref ; private Router_Reference : Router_Reference_List ; end Synchro_Ref_Acces ; protected body Synchro_Ref_Acces is procedure Registry (Router : Access Router_Class_Ref; Router_ID: Common.Address ; Host : Common.Host_Name) is end Synchro_Ref_Acces ; procedure Registry (Router : Access Router_Class_Ref; Router_ID: Common.Address ; Host : Common.Host_Name) is begin Synchro_Ref_Acces.Registry(Router, Router_ID,Host) ; end Service_Manager ; SIGAda 2002, D. Gantsou

Page 23: An Architectural Framework for Supporting Distributed Object Based Routing

Ada95 technology based Prototype

Ospf_Router : a class implementing methods that perform the functionality of a router running the Open Shortest Path First(OSPF) protocol.

• Provides methods that perform :- basic routing functionality- OSPF specific services such as the designated

router concept (Class Shared_Object) • Must inherit methods from Router_Class and Shared_Object (multiple inheritance )

SIGAda 2002, D. Gantsou

Page 24: An Architectural Framework for Supporting Distributed Object Based Routing

Class OSPF_RouterWith Router_Class, Virtual_DR , …;package OSPF_Router is Pragma Remote_Types ; type OSPF_Router is new Router_Class.Router_Class with record

end record ; package VDR is new Virtual_DR (OSPF_Router) ; type DR is new VDR.Shared_Object with null record ;

procedure Update (Router : Access OSPF_Router ; Message : Common.Message_Type) ;

end OSPF_Router ;

SIGAda 2002, D. Gantsou

Page 25: An Architectural Framework for Supporting Distributed Object Based Routing

With Ada.Real_Time, Service_Manager, …;package body OSPF_Router is

Local_Router : Aliased OSPF_Router ; Local_DR : Aliased DR ; package VDR is new Virtual_DR (OSPF_Router) ; type DR is new VDR.Shared_Object with null record ;

procedure Update (Router : Access OSPF_Router ; Message : Common.Message_Type) is

begin Insert.(Local_DR’Acces, Message, Hash(Service_Manager.Give_Router_Reference(Message.Source_Message))) ; end Update ; declare begin Service_Manager.Registry(Local_Router’Access, Host_ID ,Host_Name) ; end OSPF_Router ; SIGAda 2002, D. Gantsou

Page 26: An Architectural Framework for Supporting Distributed Object Based Routing

??

SIGAda 2002, D. Gantsou