{'fraction_non_alphanumeric': 0.038605230386052306, 'fraction_numerical': 0.004254877542548776, 'mean_word_length': 4.963490099009901, 'pattern_counts': {'":': 0, '<': 0, '<?xml version=': 0, '>': 0, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
When Cars Meet Distributed Computing: Data Storage as an Example

As cars are ubiquitous they could play a major role in a next generation communication and computation framework. In the last years, the development of vehicle-to-vehicle communication and vehicle-to-infrastructure communication took huge steps forward and therefore gives us the tools to build"mobile computing service"on cars equipped with computation capabilities. Recently, several groups of researchers independently proposed the design of"vehicular clouds"that materializes the concept. In this paper, we introduce a new paradigm of the vehicular clouds, followed by a case study of data storage on top of the proposed cloud. Finally, we present several challenges and opportunities in the intersection of vehicular clouds and distributed computing.


I. INTRODUCTION
Cars today are equipped with a rich set of computing, data storage, communication, and sensor resources in their onboard computer unit. Based on current standards, not only vehicle-to-infrastructure (V2I) but also Vehicle to Vehicle (V2V) communication are supported. Thus, it is believed that cars will play a major role in future Information and Communication Technology systems for supporting applications like smart cities and intelligent traffic systems, e.g., [3], [4], [9].
Recently, several groups of researchers independently proposed the concept of "vehicular clouds" (VC) which brings the mobile cloud model (or edge computing model [11]) to vehicular networks. Eltoweissy et al. were among the first to propose using vehicular clouds (VC) as the backbone of intelligent transportation systems, smart cities, and smart electric power grids [4]. Lee et al. drafted important design principles of building VC on top of Vehicular Ad-hoc NETwork (VANET) and information-centric networking [9]. Dressler et al. [3], [6], [7] discussed how to provide cloud-like computation and networking service over cars in a parking lot. Independently, Olariu et al. also explored how to distribute MapReduce-like computation onto cars in a parking lot, e.g., [5], [2]. Onur et al. proposed Car4ICT, a V2V-based mechanism for providing services from individual cars [1].
Several advantages over the current cloud computing platforms were mentioned: (i) VC allows diverse resources to be pooled and deployed dynamically to serve users with different needs (e.g., on-demand market for computation and communication service from nearby cars), (ii) VC enables autonomy in real-time service sharing and management with lower network latency (if VC is deployed in proximity), and (iii) VC is typically decentralized and peer-to-peer which avoids a single point of failures or market monopoly.
Despite all these efforts, there are still many challenges and open problems. Prior work has discussed issues ranging from networking [9], engineering [12] to security [13]. In this paper, we focus on the issues in the intersection of VC and distributed computing, particularly on issues related to the dynamic and distributed nature of vehicles. To address some of the challenges, we introduce a new paradigm of vehicular cloud, namely Macro-Micro Cloud (MMC), and later discuss how MMC can be used for data storage service. We conclude the paper with exciting challenges and opportunities.

II. MACRO-MICRO CLOUD
Current Limitation: The core mechanism of existing vehicular clouds is as follows (e.g., [1], [9]): (i) A user sends a service request message to a car passing by using V2V or V2I communication; (ii) The request is then forwarded over the communication network to discover a communication path to a vehicle offering the desired service; and (iii) If the user successfully finds a service provider, s/he uses this communication path to exchange service-related data thereafter. Although the mechanism works well for a variety of services as shown in prior works, it is non-trivial to adapt the mechanism for many other services, e.g., long-lasting services tied to a certain geographical area. Due to vehicle mobility, a user needs to find an alternative service provider whenever the current service provider leaves the neighborhood. This causes huge communication overhead and poor quality of service. Recent work [7], [8] addressed the issue by using a cluster of parked cars to connect to the Internet Clouds. Here, we focus on the design that minimizes the reliance on V2I communication and cars may move around. Intuition of MMC: The main goal of Macro-Micro Cloud (MMC) is to reduce the communication complexity and im-prove quality of service for long-lasting location-based services, since such types of services are important to intelligent traffic systems and smart cities, e.g., computation backbone for Internet-of-Things and dynamic traffic routing.
Our design is based on the following observations: (i) for location-based services, nearby cars can coordinate with each other to provide the service more efficiently (compared with an opportunistic approach in recent work like [1]), (ii) hierarchical structure allows us to deploy MMC more flexibly and efficiently, and (iii) some hand-off mechanism is necessary for long-lasting services (to handle the case when there is no available cars in the neighborhood).

Design of MMC:
A key idea behind Macro-Micro Cloud (MMC) is the hierarchical cloud structure. That is, cars form multiple local clusters, namely micro vehicle clouds, and micro clouds behave as special nodes of the macro vehicle cloud (which is similar to Car4ICT [1]). In micro clouds, cars entering a designated region (e.g., an intersection) dynamically join a micro cloud using a membership management protocol. The micro cloud is logically fixed and tied to that region, and the cars belong to the same micro cloud collaborate with other (micro) cloud members to provide services, e.g., continuous monitoring. While individual car may leave and join the designated region in a short period of time, the micro cloud can keep providing its services as other cars or nearby micro clouds in the region can take over the tasks using a suitable hand-off mechanism.
Macro cloud is similar to the concept of Car4ICT [1] in which the cloud consists of individual cars that can discover/use the services using V2V communication. In MMC, we use V2V communication to discover and provision services among micro clouds and individual cars and/or users that access the service using other devices like smart phones and smart watches. The following figure illustrates the design:

Features of MMC:
• The static nature of micro clouds is especially beneficial to the long-lasting services, as a user does not need to repeatedly send service request messages as in [1], [9]. • Coordination among the cars in micro clouds and the hand-off mechanism among micro clouds supports longlasting services despite vehicle mobility.
• Through macro cloud, MMC provides wide-area service discovery and provisioning. • Hierarchical structure makes the deployment flexible. For example, micro clouds at different location may use different hand-off and/or membership management protocols to better accommodate different conditions, e.g., traffic condition, vehicle mobility, services requirements.

Case Study: Data Storage
The types of services that can be efficiently provided by MMC is beyond the scope of this paper. Here we discuss one application: how does MMC provide location-based data storage service? Such service could be useful for storing traffic related data or data generated by Internet-of-Things. MMC uses the following steps to provide the storage service: • Identify the locations that are suitable for deploying micro clouds, e.g., a locations that have enough cars passing by. • Using historical data to build a model to estimate the availability of resource (e.g., storage space and bandwidth) for each micro cloud. • Based on the availability model, calculate the amount of data that can be maintained and stored at each micro cloud at a given period of time. • The final step is to implement storage on suitable micro clouds using a mechanism similar to GeoQuorum [10]. 1

III. CHALLENGES AND OPPORTUNITIES
We categorize the challenges into three groups: • Game theoretical analysis: One of the major issues for vehicular clouds is "why would cars participate"? Intuitively, vehicular cloud is similar to Peer-to-Peer systems like BitTorrent in which users need to contribute in order to use the services. However, such an argument is not sufficient for critical services in intelligent traffic systems, e.g., dynamically routing cars, since in this case, the service is expected to be provided to most cars even if they are not participating. Therefore, we need more rigorous study on the incentive mechanism for forming and participating in vehicular clouds. • Multiplicity of network: Cars have different communication capabilities, e.g., DSRC, Wi-Fi, LTE, millimeter wave, etc. Each of the communication mechanisms has different characteristics. How to use them efficiently for a certain service is an open problem. For example, using fast and low-bandwidth communication for exchanging frequent overhead messages would be beneficial if the service does not have huge overhead. • Incentivized mobility: In many prior works, the algorithm is designed for the worst case, in which cars may move at will. However, it is possible to "guide" cars to move in a desirable way to maximize the performance (either using monetary compensation or rewards on using premium services). It is interesting to explore such an incentive in mobility models, and how it affects performance.