Title: MarketNet Directory Services MDS
1MarketNet Directory Services (MDS)
- Weibin Zhao
- Henning Schulzrinne
- Department of Computer Science
- Columbia University
2Background
- Directory Services
- lookup/mapping white page, yellow page
- reverse lookup/mapping DNS (domain name vs. IP)
- attribute-based lookup/mapping LDAP, SLP
- Components
- client
- server
- database
- protocol
3MDS Market-based Directory Services
- Design Goals
- survivability adjust gracefully to service
dynamic change and resource loss - dynamic update price advertisement
- scale to large systems
- Some Critical Issues
- data organization, distribution, replication
- access control
- scalability
4MDS Design
- Approaches
- use existing directory services as building
block SLP - low-cost, widely accepted, reuse for other
systems - enhance reliability and scalability
- Out contributions
- define scheme for interaction of SLP directory
servers - Mesh-enhanced Service Location Protocol (mSLP)
- standalone and integrated implementation Java
- Internet draft being considered for RFC
5Architecture
Service
Application
User Agent
Service Agent
Query
Registration
Interaction
Directory Agent
Directory Agent
6Service Registration
- Service Description
- URL
- attributes-value pairs can be in different
languages - service type lpr, bank
- service scope Columbia-CS, Amazon
- Service Registration
- lifetime
- full or incremental registration
- Service Deregistration
- deregister whole service or individual attributes
7Service Query
- Query Service Type
- list available service types in given scope
- Query Service URL
- given attribute description, find matched URLs
- Query Attributes
- list all or part attributes for given URL or
service type
8Directory Agent (DA) Discovery
- Active Discovery
- multicast special service query
- service-type directory-agent
- Passive Discovery
- listen to DA multicast advertisement
- Other Methods
- Static configuration
- DHCP
9DA Interaction
- Peering DA Architecture
- peer DAs share service scopes
- more than one DA for each scope
- peer DAs maintain same data for common scopes
- Two Issues
- group membership management
- data exchange management
10DA Set Membership Management
- Learning of New Peers
- DA multicast, static configuration, DHCP
- exchange common peer list (CPL) with peers
- forward DA advertisement
- send unsolicited DA advertisement to peer
- Keeping Peer Relationship
- keep-alive message
- Removal of Peers
- peer shut-down
- keep-alive timeout (peer failure, network
separation)
11Data Exchange Management
- Initial Data Exchange
- pull model download data from new peers
- optimize data download
- Forward New Service Registration
- push model
- one-hop forwarding full mesh connection
(a)
(a,c)
(c)
DA1 (a,b)
DA3 (a,c)
DA2 (b,c)
(a,b)
(a,c)
(b,c)
(a,c)
DA4 (a,b,c)
SA
(a,b)
(c)
12Protocol Design
- Mesh-Control Message (MeshCtrl)
- peering connection notification
(Pconn_Notification) - common peer notification (Cpeer_Notification)
- get requested data (Get_Rdata)
- requested data end (Rdata_End)
- keep alive (Keep_Alive)
- Mesh-Forwarding Extension (MeshFwd)
- Action-ID Rqst_Forward, No_Forward
- SA registration timestamp
13Message Flows
(1) DAAdvert
DA1
DA2
(2) create a peering connection
(3) Pconn_Notification MeshCtrl
(4) unsolicited DAAdvert
(5) Cpeer_Notification MeshCtrl
(5) Cpeer_Notification MeshCtrl
(6) Get_Rdata MeshCtrl
(7) requested data in SrvReg(s)
(8) Rdata_End MeshCtrl
(6) Get_Rdata MeshCtrl
(7) requested data in SrvReg(s)
(8) Rdata_End MeshCtrl
(9) forward SrvReg/SrvDeReg(s)
(9) forward SrvReg/SrvDeReg(s)
(10) Keep_Alive MeshCtrl(s)
(10) Keep_Alive MeshCtrl(s)
14Demo
- Survivability in case of failure
- DA crash
- network separation
- peer DAs handle DA failure (keep-alive timeout)
- client (SA/UA) handle DA failure (response
timeout) - Optimize data download scheme
- Forward new service registration
15Conclusions
- MDS
- a robust distributed directory services
- serve general purpose or customized applications
- fully implemented in Java, open source software
- submitted Internet draft to standardize protocol
- Future work
- advance mSLP to RFC
- Thank you!