ppt - Carleton University's CANARIE Directed Research Program

advertisement

Enabling User Control of CA*net 4

Lightpath Cross-Connect Devices:

A Service Oriented Architecture and

Distributed Coordination-based

Approach

Wade Hong

Carleton University

May 26, 2003

Service Oriented Architecture

• a service is a service is a service

• comprised of interactions between three distinct actors

– provider (service)

– registry (broker)

– requestor (client)

• actor role interactions

– publishing information about a service

– locating which services are available

– binding to services

Provider

• considered the owner of the service

• network accessible software asset

• by definition

– service has a description

– concrete implementation encapsulating its behaviour

• description of the service and how to access it is published to a registry

• e.g.: software agent controlling a network element

Registry

• manages repositories of information regarding available services

• typical information

– descriptions of the services

– details regarding how to bind to or access the services

• e.g.: Jini lookup service

Requestor

• consumer of a service

• discovers and invokes services from one or more providers

• obtains service descriptions from a registry through a specialized set of APIs

• binding

– uses the service description to send a message to the provider directly or indirectly

• e.g.: bulk transfer grid application requesting endto-end lightpath

Taxonomy of Coordination

Models

(from Cabri et al. 2000)

Generative Communication

• communication occurs via a tuple space

• tuples and antituples are generated and submitted to the tuple space

• originates from Linda, a high level coordination paradigm for parallel computing (Gelernter 1985)

Space-based Programming

• views an application as a set of processes coordinated through the flow of objects into and out of one or more Spaces

• Space

– shared, network accessible repository of objects used by distributed processes for object storage and exchange

– distributed persistent (transient) shared memory

– blackboard or working memory model

Space-based Programming

• processes (requestors and providers)

– perform simple write, read and take operations utilizing value-matching lookup

– interact indirectly and asynchronously through a Space

– are loosely coupled spatially and temporally

• applications tend to be more flexible, scalable and reliable

• easier to build

• Javaspaces is a Jini service which implements a space-based communications model

Software Architecture

• use Jini technology to build a scalable service oriented multi-agent framework

• construct a Jini community of services around one or more CA*net 4 Lightpath cross-connect device

• modular approach

– develop and construct one Jini community

– replicate for additional devices

• Jini communities interact using Javaspaces as the communications substrate

Multi-Agent Architecture

• trend in computing is towards more ubiquitous, interconnected computer systems

– agent software paradigm is a strong candidate for exploiting the potential of such systems

• multiple interacting autonomous intelligent processes

• key behaviours

– autonomy

– inter-agent communication

• collective behaviour is emergent

– “the whole is greater than the sum of the parts”

Definition of an Agent

“An agent is a computer system that is situated in some environment , and that is capable of autonomous action in this environment in order to meet its design objective”

(Wooldridge and Jennings 1995)

The End of Protocols

“……. agents as a replacement for hard-to-provision protocols is one of the most practical uses. With the widespread use of Java and the newer Jini technology, mobile agents should become the major way of deploying new services in the years ahead. This change will mark the beginning of the end of the Internet as a world of protocols and the beginning of the era of the agent-based Internet.”

(Bill Joy 2000)

The Agents

Core Agents

1) Optical Network Element agent

2) LightSpan agent

3) Cross Connect agent

4) Event agents

5) Network Element agent

6) Lightpath agent

7) Routing agent

8) Switching agent

9) Lightpath Service agent

Optical Network Element Agent

• CA*net 4 Lightpath device is key element for which services are to be exposed

• physical device is not yet Jini capable

• situated autonomous software agent as a Jini surrogate

Optical Network Element Agent

• upon instantiation, the ONE agent discovers one or more Jini lookup services to register a set of services

– proxies for the services are published to the lookup service

– services are then part of the respective Jini community

– registration is a lease and must be renewed continually

(self healing)

ONE Services

• initial ONE services

– partitioning service

• an authorized client can partition the switching fabric of the

CA*net 4 Lightpath cross-connect device

• persistent state information regarding ownership of ports and

STS channels at a port is maintained by the ONE agent

– cross connect service

• creates or deletes a cross connection between ports and STS channels

• service interfaces to the ONS15454 via the craft interface using

TL1 or UNI-C (UVA)

ONE Services

• initial ONE services

– status service

• provides state information about the CA*net 4 Lightpath device

• information includes performance and alarm information, ownership of ports and STS channels at a port

Optical Network Element Agent

Optical Network Element Agent

• a Jini community may include several ONE agents

– each with ONE agent will have its own instances of the partitioning, cross connect and status service

Optical Network Element Agent

LightSpan Agent

• agent responsible for handling the advertisement of available lightspans

• definition

– a span is the optical segment which connects any two

ONEs

– a lightspan is a sub channel of the span

– if a lightspan is not cross connected across the ONE, the resource is considered available

– the resource is typically available only to the ascribed owner

LightSpan Agent

• upon instantiation, determines the free lightspans for all the ONEs within a Jini community

– uses the status services for the respective ONEs

• policies needed to determine which and when lightspans are advertised

– initially all free lightspans will be advertised

– periodic monitoring of ONEs

– notification of lightpath teardown Space events

– evolutionary process

LightSpan Agent

LightSpan Agent

• a Space is used for publishing lightspan availability

• a lightspan object representing a span is written into the CA*Net 4 Lightpath Space

– a Jini Entry object

– matchable fields are public

– with a specified lease period

LightSpan Agent

LightSpan Object

public class LightSpan implements Entry

{ public String OriginatingAS; public String OriginatingONE; public String OriginatingSlot; public String OriginatingPort; public String OriginatingSTSChannel; public String DestinationAS; public String DestinationONE; public String DestinationSlot; public String DestinationPort; public String DestinationSTSChannel; public String Bandwidth; // e.g. STS-24 public String Owner; public String Group;

} public String Status; // public String Direction; // e.g. 2-way public Integer SubLeasePeriod; // e.g. 10080

(min) public String Subdivisable; // e.g. Yes

……………

Cross Connect Agent

• performs the task of creating and deleting cross connects on member ONEs

– between a port and a port, a port and an STS channel on a port, or an STS channel on a port and an STS channel on a port

• interacts directly with the CA*net 4 Lightpath Space

– template matches for create and delete cross connect objects intended for the member ONEs

• locates the ONE cross connect service and through its proxy initiates the cross connect action

Cross Connect Agent

Cross Connect Objects

public class CreateCrossConnect implements Entry

{

} public String AS; public String ONE; public String OriginatingSlot; public String OriginatingPort; public String OriginatingSTSChannel; public String DestinationSlot; public String DestinationPort; public String DestinationSTSChannel; public String Bandwidth; // e.g. STS-24 public String Owner; public String Group; public String Status; // public String Direction; // e.g. 2-way public Integer SubLeasePeriod; // e.g. 10080 (min)

………..

public class DeleteCrossConnect implements Entry

{

} public String AS; public String ONE; public String OriginatingSlot; public String OriginatingPort; public String OriginatingSTSChannel; public String DestinationSlot; public String DestinationPort; public String DestinationSTSChannel; public String Bandwidth; // e.g. STS-24 public String Owner; public String Group; public String Status; // public String Direction; // e.g. 2-way public Integer SubLeasePeriod; // e.g. 10080 (min)

………..

Cross Connect Agent

• transactionable methods

– groups a number of cross connect actions as a transaction

– two phase commit

– creating and removing an end-to-end lightpath as a single transaction is important

• ensures reliability and consistency

– capability will be evolved as the agent is developed

Network Element Agent

• interacts with active network devices such as routers or switches

– typically, edge devices at the ingress and egress of the requested lightpath

• upon instantiation, the NE agent discovers one or more Jini lookup services to register a set of services

Network Element Agent

• initial NE services

– ASPATH service

• for a router NE between the end host and the CA*net 4

Lightpath cross connect device, this service returns the current

BGP ASPATH between a given source and destination AS

• provides network path topology

– Re-routing service

• permits an authorized client to modify the routing of traffic across the router or layer 3 device

• typically, this will involve injection of a static route

• the new route is the end-to-end lightpath bypass

Network Element Agent

• initial NE services

– VLAN service

• for a L2 switch NE between the end host and the CA*net 4

Lightpath cross connect device

• Reconfigures the L2 switch to place the respective ports on the same 802.1p/q VLAN

– status service

• provides state information about the edge network element devices

• information includes port configuration, performance and alarm information

Network Element Agent

Network Element Agent

• use ssh or telnet over the LAN interface to connect to the NE

• end users connected to established lightpaths in two ways

– directly

• host to host

• single hop end-to-end lightpath

• NE not required and ORANs are transparent

– indirectly

• through edge Linux routers (Zebra)

• ORANs in this scenario are also transparent

Lightpath Agent

• transient agent created by the Lightpath Services agent

– lightpath creation or deletion request conveyed through a Lightpath

Provisioning or Deprovisioning Request entry in the CA*net 4

Lightpath Space

• instance of a lightpath agent is created to act on behalf of each grid-based application

• interacts with the CA*net 4 Lightpath Space to locate and construct an end-to-end lightpath

• similar in behaviour to the end-to-end co-reservation agent in

GARA (Globus Architecture for Reservation and Allocation)

LightPath Agent

Lightpath Agent

• searches the CA*net 4 Lightpath Space with template matching to locate lightspan objects which can be concatenated together to construct an end-to-end lightpath

– matches may have varying granularity satisfying given constraints such as bandwidth, period of availability, etc

• creates a set of cross connect objects and groups them into one atomic transaction

– if the transactions succeed, the respective cross connect objects and lightspan objects removed from the Space

• the end-to-end lightpath is now provisioned!

Lightpath Agent

Lightpath Agent

• however, to utilize the end-to-end lightpath, traffic must be rerouted across it

– creates routing or switch request entries and injects them into the

CA*net 4 Lightpath Space

– two requests, one for each terminus form a transaction

• when the application completes, the resources can be released

• deprovisioning entails writing a set of delete cross connect objects into the CA*net 4 Lightpath Space and grouping as a single atomic transaction

– routing or switch entries to delete the injected route or teardown the created VLAN are injected into the CA*net 4 Lightpath Space

Lightpath Agent

• may also monitor events on behalf of the gridbased application and forwards them to the application

– listens for specific remote events in the CA*net 4

Lightpath Space

Routing Agent

• performs the task of adding, modifying or deleting routes on respective NEs

• retrieves the routing request entry from the

CA*net 4 Lightpath Space

– locates the the re-routing service for the NE

– performs the re-routing

– may be performed as part of a transaction

Routing Agent

Switching Agent

• performs the task of creating or deleting VLANs on respective NEs

• retrieves the switch request entry from the CA*net 4

Lightpath Space

– locates the the VLAN service for the NE

– performs the switching

– may be performed as part of a transaction

Switching Agent

Event Agents

• source of events or alarms of interest

– CA*net 4 Lightpath cross connect devices and connected edge devices

• a set of agents is envisaged to interact with the status service of the ONEs and the NEs

– more can be added as required

• inserts remote event entries into the CA*net 4

Lightpath Space

Event Agents

Event Agents

• other agents will be notified of the event if it had registered interest

– a lightpath agent for example, will want to be notified if an end-to-end lightpath is down

• events of interest will be identified as the realization of this architecture evolves

– in parallel the status service for the ONE and the NEs will evolve

Lightpath Service Agent

• a grid service instance created by the Lightpath Grid

Service factory

• recursively behaves as a factory to create a corresponding

Lightpath agent

• intermediary between the external Grid Services façade and the internal Jini/Javaspace implementation

• similar to the Double Agent in Cisco’s Scalable

Infrastructure (SI)

– speaks protocol (grid services) and speaks Space

Lightpath Service Agent

• conveys a lightpath provisioning request by writing a

Lightpath Provisioning Request entry into the CA*net 4

Lightpath Space

– similarly, a Lightpath Deprovisioning Request to teardown the lightpath

• transient service created with a specified lifetime

– assume that the grid service minimum acceptable lifetime upon creation is greater than the requested lease duration

Lightpath Grid Service

• a factory which creates instances of Lightpath Service

Agents upon invocation from Grid appplications

• simple factory hosted on a J2EE or SunOne environment

• assume that the grid service location is well known

Lightpath Grid Service

1)

2)

3)

4)

5)

The Grid app sends a request to create a Lightpath Service Agent

Lightpath Service Agent is created by Lightpath Grid Service

Grid app communicates with the

Lightpath Service Agent via returned GSR

Lightpath Agent instance is created by the Lightpath Service

Agent

Lightpath Service Agent and

Lightpath Agent communicate through CA*net 4 Lightpath

Space

Lightpath Grid Services

• example of a request

<element name=''lightpathProvisioningRequest''>

<complexType>

<sequence>

<element ref=''requestorID''/>

<element ref=''sourceAddress''/>

<element ref=''destinationAddress''/>

<element ref=''bandwidthRequest''/>

<element ref=''leaseDurationRequest''/>

</sequence>

</complexType>

</element>

InterSpace Peering

• consider the scenario of an end-to-end lightpath across multiple national R&E networks

– a requested lightpath terminates with endpoints in both domains

– the originating Lightpath agent does not have visibility into the adjacent Lightpath Space

– assuming agreements and policies are in place, it may be feasible to advertise lightspan entries from one

Space to another

InterSpace Peering

InterSpace Peering

• InterSpace Agent

– intermediary between Lightpath Spaces

– re-advertise lightspan objects from one Space to another

– copies entries intended for the adjacent Space from the current Space, eg cross connect objects

– similar to the Betweener Agent in Cisco’s SI

• Peering Lightpath Agent

– recast requests which may not be recognized due to ownership attributes as originating from a surrogate

Global Lightpath Space

Partitioning Tool

• Graphical tool to allow operator to retrieve assets it owns and to reassign ownership

– Java Swing application designed to interact with the partitioning service and the status service of an ONE agent

– permits an authorized user to partition an ONE by ports and STS channels at a port

– Recursive delegation

• national, regional, institutional, departmental

Development Methodology

• adopting an agile development process based on some core principles of XP

• small team

• paired programming in parallel

– 2 teams (Carleton U, U of Alberta)

• code simply and elegantly, test often, release frequently, and add functionality and complexity incrementally

• incremental design

Development Team

Core Development Team

Wade Hong (Carleton U, Technical Lead)

Jim Carleton (Carleton U)

Bryan Caron (UofA)

William Burris (UofA)

Technical Consultant

Shikharesh Majumdar (Carleton U)

Potential Collaborations

• Collaborating with MonALISA (Monitoring Agents in a

Large Integrated Services Architecture), an agent-based realtime network monitoring system using JINI/Javaspaces for emerging Grids - Harvey Newman, Caltech

• Peering Agents for OIXes such as StarLight - Oliver Yu,

UIC

• Developing a UNI-C client interface to the ONS15454 -

Malathi Veeraraghavan, UofVirginia

Thank You

xiong@physics.carleton.ca

Download