Course Overview
Introduction
Data in Wireless Cellular Systems
Data in Wireless Local Area Networks
Internet Protocols
TCP over Wireless Link
Ad-Hoc Networks, Sensor Networks
Services and Service Discovery
System Support for Mobile Applications

Services
Many other standardized and non-standardized services exist. Mobile computers will need to find out about the existence of these services to provide a complete computing environment to the end-user:
directory services: X.500, LDAP
e-mail services: POP, IMAP
other Internet services: FTP, HTTP, NNTP, DHCP
non-standardized services: printers, e-commerce servers, file storage, …..
Often, find servers in “neighborhood”, which changes over time
Configure device to use these servers automatically

Service Location Protocol (RFC 2165)
Clients find Servers by type and desired attributes
Services advertise themselves
Provide “scopes” to organize services, using arbitrary policies
Provide low-cost administration and effortless extension to new services
Provide decentralized and (after creation) self-administered availability
Compatibility with browsers, existing applications, and services (using URLs)

SLP Agent Model

SLP Protocol Characteristics
Distributed and self-managing, with numerous service agents
compatible with other administrative protocols and mobile networking protocols
string-based (reduced parser complexity)
easily implemented
uses existing standards where possible
expressive query grammar (LDAP v3 query syntax)
Scalability a prime motivation, given expected explosion of network services

Service Location Discovery Framework
User Agents (UAs) intercede for applications
Service Agents (SAs) intercede for services
UAs and SAs on nearby networks can communicate
Larger deployments use Directory Agents (DAs) transparently

Service Handles: URLs
Standardized way to access a large variety of network resources
General form of URLs: <scheme>:<scheme_specific_part>
Often, URLs something like: scheme://host:port/opaque
Some examples:
nfs://slag.eng.sun.com/src/slp
service:http://www.research.sun.com/
service:lpr://motels.eng.sun.com/MPK15-214

Service Requests
A UA requests a service
by type, possibly with a naming_authority
from a particular scope
by predicate (a boolean query based on service attributes)
Example:
service type = service:printer:lpr
scope list = Engineering, Marketing
predicate = (&(location-description = Printer Room)                (duplex-mode = duplex))
Representation: <service-type[.na],scope,[query]>

Service Request Examples
<nfs, default, (content=slp-src)> returns only NFS servers whose content attribute have value slp-src
<http.sun, research, homepage> returns all “homepages” within scope “research”
<lpr, local, postscript> uses reserved value “local” for the scope and only returns printers registered with the keyword postscript

SLP: Finding Directory Agents
There are four ways to find Directory Agents
listening for directory agent advertisements
multicast/broadcast request for small installations
request option 78 from DHCP
manual configuration
So even in worst case (manual configuration), user does not need to configure each service manually, only SLP

SLP: Other Messages
Service Acknowledge
Attribute Request
Attribute Reply
DA Advertisement

SLP Example: Finding a Printer

SLP Example: Mobile Computer Setup

SLP: Scalability
Small installation: no need for DA, local broadcasts
Large installations:
replicate multiple DAs
fault tolerance
load sharing
requires some form of “reliable broadcast”
scopes
operator-defined
use DHCP to configure SLP agents with non-default scopes, using SLP Service Scope Option (79)
Very large installations: misses protocol for DA-DA interactions

SLP Status
Standardized in RFC 2165
Products start to appear (Novell, Apple, Cisco, …)
Intel interested in SLP v2 as basis for their “Wired for Management” OEM initiative
Specified as part of the MCNRS (Mobile Network Computer Reference Specification)
Salutation Consortium has adopted SLP for service device discovery

JINI Connection Technology
Three basic trends:
end user is system administrator
computers disappear
the one computer is everywhere
Vision: When you walk up to an interaction device that is part of a system employing Jini technology, all of its services are as available to you as if they were on your own computer--and services include not only software but hardware devices as well, including disk drives, DVD players, VCRs, printers, scanners, digital cameras, and almost anything else you could imagine that passes information  in and out. Adding a new device to a system employing Jini technology is simply plugging it in.

JINI Requirements
Jini connection technology requires a few things:
an infrastructure which operates as a dynamically distributed system
a common language and implementation that enables low-overhead communication between distributed objects
a lookup service (which identifies objects that supply those services)
an add-in protocol which is implemented on each device -- the discovery/join protocol
a subtract-out mechanism -- providing resilience when a device is unplugged -- which is called leasing

JINI Overview

JINI Discovery

JINI Discovery Process

JINI Join

JINI Lookup

JINI Service Invocation