Scalable, high concurrency spime management

    Joe Armstrong's Slides, ERLANG eXchange 2008, by oreillygmtWe have become accustomed to the increase in power of the available hardware platforms. The past 40 years of Moore’s law’s self-fulfilling prophecy, through the efforts of competing teams working towards the common goal of producing new generations of processors, have been an unparalleled success in the history of technological achievements. Looking at the apparently smoothly upward-swinging interpolated curve of the power of successive processors easily hides the struggle, the difficulties, and the sheer effort required in adapting to new technologies in materials science, fabrication methods, architectures, and programming paradigms. There were periods of relative calm, between more radical changes, while one particular technology rules and is exploited to its maximum potential. One of these periods was represented by the exponential increase in the clock speeds, and transistor counts of the processors, which at the end of the ’90s were a sure indicator of things to come. The maxim to programmers to “waste transistors” in that era of abundance, represented a then correct attitude of tasks that were deemed achievable through brute force, if not today, then certainly upon the timely arrival of the next generation of platforms, compatible with the applications, and the architectures of the past.

    Then, for unavoidable reasons of thermodynamics—as the energy density of processors became such that their surface temperature was projected to become higher than that of a furnace, then of the Sun maybe—, something had to give, and the relentless increase of the clock speed was it. The new generations of processors introduced in the first decade of the third millennium barely change clock speeds, and the fulfill Moore’s promise through the parallelism of multiple processor cores. We have spoken recently with Roberto Ostinelli, CTO of WideTag, and asked him what this change meant to him, and the goals of OpenSpime.

    “Nowadays”, commented Roberto “we have already experienced a consistent shift in hardware trends, moving from single CPU to multiple core machines. This in necessary as single CPU speeds have inevitably leveled out. Yesterday’s exponential growth of single CPUs has often made programmers loosely think about hardware implications, counting on the abundance of processor resources and RAM availability. Today, especially in intensive applications such as the ones in the IoT field, we are experiencing a whole new programming paradigm that multiple core machines and system architectures require. You can’t pretend to exploit the massively distributed systems that represent the leading edge applications of today programming without a change of mentality foremost, but also the adoption of new algorithms, and new programming languages. The shift from single to multiple core and the need for fault tolerant, distributed and scalable systems will have to be undertaken by concrete efforts in software optimization and programming techniques in order to fully unleash the power of new hardware solutions and to satisfy the forecoming requirements of IoT.”

    WideTag’s goal is to provide tools, and platforms for an effective implementation of vast sensor networks that constitute the forthcoming Internet Of Things. These platforms have to provide their users, the new generations of programmers, who are ready to take advantage of these networks, with an effective set of tools. “There is no perfect universal programming language: you normally wouldn’t want to program desktop applications in the same language you program SOA applications, for instance. Each of them lives in its own ecosystem of applications. This seems obvious, but programming-language wars are more common than one may think, and it is not rare to see languages being adopted with ‘religious’ faith motivations, or programmers’ availability, more than real evaluation of requirements.

    erlang logo. www.erlang.orgWe have decided to use Erlang, one among a series of interesting languages which also include Haskell, to implement the platform with high concurrency for spime communications which we call WideSpime.” added Roberto. “WideSpime takes advantage of the concurrency, scalability and fault tolerance that Erlang provides for distributing processes over variable-granularity architectures. We see it as an ideal environment for the development, and deployment of very scalable, and extremely robust applications.”

    WideSpime, available in the spring of 2009, is going to be supplied through a flexible SaaS (Software as a Service) model by WideTag, Inc. to its Enterprise customers, who want to take advantage of its features of high concurrency, large scalability, and robustness.

    Awareness Is The Key To Spimes

    The word we use to describe the components of smart sensor networks, spime, has been invented by Bruce Sterling, and it is the contraction of ’space’ and ‘time’, to signify that the object knows where it is, and when it is. Most frequently this is achieved through a GPS (Global Positioning System) module, which is very precise, but can also be done via triangulation of the signals of cell towers, or, simply the object can be stationary, and told its location once and for all. In order to call it a spime, a Category 1 spime as we say, the object also has to have memory, communication capabilities, and a sensor, which it will use to learn something about the world that surrounds it. The values of the particular data stream that the sensor captures will be communicated for aggregation, or visualization, and temporarily stored in the memory module of the spime if the communication with the Internet cloud is not available. We often use the example of a simple GPS car navigator as a Category 0 spime, since lacking a sensor, it is depicting the route calculated in a world of its own, happily guiding you in an eventual ditch that has been dug across the road during the night, as it is known to have happened to drivers excessively trusting its orders.


    An other way to describe the role of the sensor in a spime is that it makes the object aware of the world around it. This awareness is the key. And there are more and more objects, and systems formed by them, whose value greatly derives from this awareness, and the object’s capability of building on it, acting on it.

    An additional standard example of a Category 1 spime is your mobile phone. Even the most rudimentary phone has a sensor for telling you, or at least to itself, the strength of the electromagnetic signals that it uses to communicate, as it dynamically adjusts the power of emission to keep the conversation or the data flow going. (Those who believe that mobile phone’s emissions can be dangerous at close range are especially frightened by the increased power the phone will use when the coverage is bad and it will still strive to connect.)

    New objects are acquiring the full complement of spime characteristics and behavior at an increased pace, and with it the awareness of their surroundings and the behavior modes which are a consequence of this awareness. Take the latest digital photo camera models, which after incorporating face recognition modules, which optimized the focusing of the shots, now have started to include the recognition of facial expressions. The Samsung NV100HD has smile detection, and blink detection among others. What does this mean? It means that when you press the button on the shutter, there will be something like an internal dialog in the machine going like this: “Hey, the guy wants to take a picture! Let’s see, we are in full automatic mode again. Ok… so let’s set the exposure, the timing, adjust the focus, oh looka there’s a face… alright, so let’s focus on the face! Oh, no! The fool pressed the button when she was blinking! Didn’t he see that? Well, no problem: why don’t we actually take a series of photos distanced a few 1/100th of a second, so the blink will be over. He’ll not even realize, and will be much happier.” The photo camera, being aware of the world of people, and facial expressions, smiles, and blinks, makes the final decision of when to shoot the photo, around the approximate moment when we actually press the button.

    New active safety systems in cars go even further. As described in a recent article in the Economist, “Stopping in a hurry”, the latest automatic braking systems, like those in Volvo’s XC60, will alert you if you have to break to avoid a collision, having monitored the rapidly decreasing distance between your car and the one in front of you, and attend that you press the braking pedal. They will check if you press strongly enough, adding some further braking as needed if you appear to be too timid, or even deciding to brake on their own, if you totally ignore the initial alert. The machine checks not only the outside world, but, if we consider the driver to be part of the system, it is actually introspective, in the sense that it optimizes the performance of its various subsystems, in order to achieve its intended goal.

    (photo by Mazintosh)

    Welcome to OpenSpime

    OpenSpime is a project of WideTag, Inc., a technology infrastructure company providing innovative solutions for an Open Internet of Things. Our open source technology empowers individuals, corporations, and governments to better understand their environment, through the use of a new generation of location-aware sensor networks.

    CO2 concept video

    CONFERENCEs

    These are some of the events around the world where we spoke about OpenSpime. Recent Events with openspime
    Are you organizing a conference, where you want to invite us? Just let us know!.

    URLs

    Categories