| Contents | 6 |
|---|
| 1 Introduction | 8 |
|---|
| 1.1 What Is Edge Computing | 9 |
| 1.1.1 Why Do We Need Edge Computing | 9 |
| Push from Cloud Services | 9 |
| Pull from the Internet of Things | 10 |
| Change from a Data Consumer to Producer | 10 |
| 1.1.2 Key Techniques that Enable Edge Computing | 11 |
| VMs and Containers | 11 |
| Software Defined Networking (SDN) | 11 |
| Content Delivery/Distribution Network (CDN) | 11 |
| Cloudlets and Micro Data Centers (MDC) | 12 |
| 1.1.3 Edge Computing Definition | 12 |
| 1.1.4 Edge Computing Benefits | 12 |
| 1.1.5 Edge Computing Systems | 13 |
| 1.2 Overview of the Book | 14 |
| References | 15 |
| 2 EdgeOSH: A Home Operating System for Internet of Everything | 17 |
|---|
| 2.1 Introduction | 17 |
| 2.2 Related Work | 18 |
| 2.3 EdgeOSH: Overview and Design | 19 |
| 2.3.1 Overview | 21 |
| 2.3.2 Design | 22 |
| 2.4 Summary | 23 |
| References | 24 |
| 3 Firework: Data Analytics in Hybrid Cloud-Edge Environment | 25 |
|---|
| 3.1 Introduction | 25 |
| 3.2 System Design | 26 |
| 3.2.1 Terminologies | 27 |
| 3.2.2 Architecture | 28 |
| 3.2.3 Programmability | 31 |
| 3.2.4 Execution Model Comparison | 36 |
| 3.3 Implementation | 36 |
| 3.4 Discussion | 38 |
| 3.5 Summary | 40 |
| References | 40 |
| 4 Distributed Collaborative Execution on the Edges and Its Application on AMBER Alert | 42 |
|---|
| 4.1 Introduction | 43 |
| 4.2 Motivation | 44 |
| 4.2.1 AMBER Alert | 44 |
| Limitations of Edge Devices | 45 |
| Control of the Vehicle Tracking Area | 46 |
| 4.2.2 Distributed Collaborative Execution on the Edge | 47 |
| 4.3 AMBER Alert Assistant | 47 |
| 4.3.1 Application Scenario | 47 |
| 4.3.2 Application Design | 48 |
| Control Center | 48 |
| Task Receiver | 49 |
| Data Processor | 49 |
| 4.3.3 Implementation Details | 49 |
| 4.3.4 Task Scheduling | 51 |
| Distance-Related Diffusion | 52 |
| Location-Direction-Related Diffusion | 53 |
| 4.4 Evaluation | 54 |
| 4.4.1 Experimental Setup | 54 |
| 4.4.2 Collaboration of Local Edge Nodes | 55 |
| 4.4.3 Task Scheduling | 58 |
| 4.5 Related Work | 59 |
| 4.6 Summary | 61 |
| References | 61 |
| 5 Challenges and Opportunities in Edge Computing | 64 |
|---|
| 5.1 Programmability | 64 |
| 5.2 Naming | 65 |
| 5.3 Data Abstraction | 66 |
| 5.4 Service Management | 68 |
| 5.5 Privacy and Security | 69 |
| 5.6 Application Distribution | 70 |
| 5.7 Scheduling Strategies | 71 |
| 5.8 Business Model | 72 |
| 5.9 Optimization Metrics | 72 |
| 5.10 Summary | 74 |
| References | 75 |
| 6 Existing Edge Computing Tools | 76 |
|---|
| 6.1 What Is Your Role in Edge Computing? | 76 |
| 6.2 Virtualization | 77 |
| 6.2.1 Virtual Machine and Container | 78 |
| 6.2.2 Network Virtualization | 81 |
| 6.3 Resource Management | 83 |
| 6.3.1 Kubernetes and Docker | 84 |
| 6.4 Developing Platforms for Edge Computing | 86 |
| 6.4.1 Edge Analytics | 86 |
| 6.4.2 Development Tools and Platforms | 89 |
| 6.5 Summary | 91 |
| References | 91 |
| 7 Conclusions | 93 |