Three billion – that is the estimated number of cell phones in the world by the end of 2010. That number excludes other types of access technologies and deployed sensors. The average performance of a cell phone processor is 100 MIPS and communication is at 200 kbps. However one calculates it, three billion cell phones pack in an enormous amount of computing power, memory space, and energy that can be shared in a collaborative way; in a manner that is representative of distributed computing, albeit in a different paradigm. Often referred to as opportunistic computing, this concept actually meshes well with the phenomenon of social networking that has taken the Internet world by storm.
Before we decipher opportunistic computing, let us start by looking at emerging technology applications. LAN, WAN, and CAN are acronyms that we use as part of our language. Add one more, BAN, for Body Area Network, is a network of inter-communicating sensors and mobile devices that are wearable or implanted in the human body in order to monitor vital parameters and transmit the information to a ‘home base station’ and in turn to a hospital. Is it not a set of applications that can heuristically, or through a defined method, assess the lifestyle of a human being? Imagine the volume and kinds of data that can be collected, thereby leading to various business applications including personal care, medical insurance, medical drug research, and so on? One could also include retail data that helps understand buying patterns, hence, consumer behavior and associated market research.
The world is brimming with cell phones, static and mobile sensors, and vehicles with sensing and computing resources. Along with device capabilities, the access technologies available are Wi-Fi, Bluetooth, Wi-MAX, cellular, RFID, and NFC. Stepping back, we can see the opportunity of ‘unlimited’ pair-wise contacts. Opportunistic computing exploits the communication between a pair of devices enabling possible sharing of content, resources, and services. If we take into account the numbers mentioned earlier on the performance of a cell phone processor (100 MIPS) and communication speed (200 kbps), then exploiting the opportunistic contacts can offer the potential to perform at approximately one quadrillion processing tasks and a data exchange in the order of petabytes per second; undoubtedly, a stupendous amount of power. While we have the network infrastructure and computing power, it is up to application scenarios we draw to exploit the existing and ever evolving infrastructure.
So, to reiterate, opportunistic computing is essentially a distributed computing paradigm of a wired network with challenges of intermittent connectivity and delay tolerance. In this paradigm, all pervasive and available communication opportunities are exploited to provide computing services to meet application needs by leveraging available computing resources that are available in the reachable environment.
Challenges of Opportunistic Computing
Getting a bit more specific, if two devices need to perform a collaborative task, they need to know each other’s resources and each other’s shareable services. This specificity at a high-level opens up yet another challenge of trusted collaboration unlike traditional security solutions that have a centralized authority to certify the trustworthiness. The approach will be different in the sense that it requires ‘on the fly’ authentication with ‘any devices’ that can come in the vicinity of another device making use of resources, though the complexity may be eased if it is within an enterprise network. Creating a distributed computing environment where devices could be ‘alien’, can come and go in the vicinity, poses an unstable network and has been a significant area of research.
Primary Challenges of Opportunistic Computing
They are of three types:
* Connectivity: Connectivity would be intermittent due to lack of prior knowledge, location, time, and bandwidth of any contacts. This situation is an area for exploration in terms of routing methods at higher layers, as well as a different way of design of middleware to hide the lower layer complexity.
* Delay Tolerance: While delay tolerance network is one of key focus in distributed computing, in opportunistic computing, a relook is necessary in terms of caching mechanisms and methods of remote service execution as in service discovery, execution, and management.
* Heterogeneity: There is a plethora of devices with many different kind of access methods at different radio frequencies and inter-operability will pose challenges for exploiting opportunistic computing applications.
The paradigm we are envisioning leverages opportunistic computing infrastructure and exploits the social networking application era. We see that the business model is moving towards user centricity from network centricity. As said earlier, imagine the amount of computing power, memory, energy, and storage capacity at hand and leveraging it for social networking applications.
* Middleware: Middleware services need to manage data, services, resources, and more importantly trust, security, and privacy. Middleware will have to manage the concept of reputation of the device, akin to human behavior that looks for reputation before collaborating with another human. So, middleware will have to embed and maintain the users’ social behavior to increase the efficiency of security. General services as in information acquisition and dissemination, message handling, and resource management are an interesting challenge to overcome in a heterogeneous environment. Another area of research is to bring in fault tolerant concept in an intermittent connectivity situation.
* Information management: Given that a device can be both a producer and consumer at a fast pace when in contact, fundamental issues will be, what to store, where to store, and how to acquire relevant information with minimal delays and retry.
* Context awareness: Context is very relevant for searching the network, given that devices would be in transient community and an element of temporary trust establishment is required. Researchers do propose ‘social cache’ with a logical collective view of device in a given social group. An effective way of using social cache is an area of research that is actively pursued in the industry.
* Resource Management: Primarily three resources are being focused on to manage in opportunistic computing. 1) Available bandwidth and associated time window, 2) memory and buffer space within the device, and 3) energy management as to how to minimize the data transfer and utilize the local available memory.
* Economic Model: The question is why one would be good enough to share one’s available resources with others, when every resource is critical in a device. However, in a rational world of community, specifically in social networking, the expectation is that participants co-operate and this characteristic becomes important to evolve a viable economic model in the electronic social network.
* Applications: Many critical applications areas can benefit from opportunistic computing that can be a challenge to the traditional network or within the existing state-of-the-art network infrastructure.
* Crisis Management: Unplanned, disruptive events can be managed by opportunistic computing leveraging the available network infrastructure and crisis management applications deployed in all devices as a mandatory service.
* Intelligent Transport System: Vehicular ad-hoc networks can be exploited to increase traffic efficiency and safety through collaborative communication between devices in the near vicinity and transported to back-haul traffic management carriers. Other applications in association with location based systems and entertainment offerings can also prove viable businesses.
Opportunistic computing is bound to become a reality, given the current growth in the variety of devices and the rate at which they are getting deployed, be they cellular phones, end devices with short range communications, or M2M devices in a static or dynamic world of sensor network or ad-hoc network.
It cannot be denied that we would require more reliable, secure, and delay-tolerant computing infrastructure upon which the opportunistic computing paradigm can be implemented. The solution is not ready yet, but it will be. For opportunistic computing primarily exploits human social behavior to build an electronic social device network for a more effective pervasive computing.