Large-scale Edge Services: 1 million lines of code, 1 million devices, 1 week Anthony Joseph Computing power has been growing rapidly while cost, size, and power utilization have all been declining, with the result being the proliferation of inexpensive, yet powerful novel edge devices, such as Personal Digital Assistants, SmartPhones, and sensor motes. These novel devices do not operate in isolation, rather they leverage new communication networks (e.g., WiFi, GSM, Bluetooth, etc.) to share data and access services. As a concrete grand challenge, I propose that we enable a one million lines of code service/application to be developed and deployed to one million edge devices in one week's time. A problem of this scale cannot be solved with today's communications protocols and infrastructure, application development environments, and deployment and management tools. The last two areas are primarily the domain and focus of distributed systems research, however there are important differences that must be considered (e.g., power, computational/communications limitations, fragility, etc.) in designing the environments and tools. There are many sub-challenges to this problem, including: - Cross-layer and cross-network services: services vertically spanning the protocol stack and horizontally spanning access/backbone networks - Endpoint-mobility: moving live services across edge devices - Service-mobility: moving live services across access networks - Personal-mobility: network-/device-independent identifiers - Automated, dynamic service composition New edge devices introduce new opportunities for interesting services. However, there are further services opportunities when the devices are combined with communications infrastructure that spans multiple access and backbone networks. We envision such services as ``Potentially Any Network Services'' (PANS) that can be accessed across diverse networks. There are limited commercial instances of these services (e.g., Google Voice Search by Phone and Google SMS Search by Phone work on small edge devices). Even more interesting are the opportunities for service-level mobility (e.g., a multi-function wireless communications edge device that lets a user switch an active phone call from GSM to a VOIP over IEEE 802.11), and endpoint-level mobility (e.g., a user being able to switch an active phone call from a GSM handset to a VOIP desk phone). There are many challenges associated with PANS, service-mobility, and endpoint-mobility. Many are centered around the infrastructure, specifically, the lack of cross-network infrastructure services, such as network/device independent naming, personal location services, data/control transcoders, and communication protocol adapters. Addressing these challenges will require close collaboration between multiple layers of the protocol stack, and across network boundaries. For example, while the infrastructure itself can (and already is in some cases) be leveraged to ``track'' users’ activities and locations, such capability does not exist in a cross network fashion. Consider a user with a PDA phone who moves from outside (where GPS-based tracking can be used) to indoors (where WiFi fingerprinting or other indoor tracking can be used). The challenge lies not only in providing a single location interface to an application on the device, but also in providing the same information to services in other networks. Clearly, there are also important privacy and security implications that need to be enumerated, considered, and addressed. Novel services also introduce other challenges. In particular, a user with multiple devices shouldn't have to worry about individual identifiers, devices, and networks. Instead, they should have an ``identity'' that spans the devices and networks providing universal endpoint access for people and services across diverse networks. Consider the situation today, where a user may have multiple e-mail addresses, home/work/cellular telephone numbers, a Blackberry, etc. Which identifier/network should be used to reach the user? Who decides, the recipient or the person trying to reach them? People naturally move across device endpoints and networks, and their identities should also follow, in a form of ``Personal Mobility'', where the person is the endpoint, not the device. Rapid service development and deployment will require support for reusable, composable components. Monolithic, one-time services should be replaced by componentized, extensible services. Furthermore, given the rapid growth in new types of edge devices/sensors, networks (e.g., WiMAX, UWB, satellite, etc.), the composition process should be automated as much as possible. By automating the process, new endpoints and networks can be fully supported and integrated when they are turned on. Furthermore, enhancements/upgrades in components would automatically be made available to all users of those components. Many of the enabling technologies for large-scale services at the edge exist, however the challenge is what is missing: the necessary intra- and inter-network communications protocols and services infrastructure for enabling the rapid easy development and deployment of these novel, innovative, composable services and new edge devices.