Archive

Archive for the ‘Computers’ Category

Contextual Storage

July 28th, 2009 No comments

Let’s start this discussion with the concept of Efficiency, according to Webster:

1: the quality or degree of being efficient.
2 a
: efficient operation b (1): effective operation as measured by a comparison of production with cost (as in energy, time, and money) (2): the ratio of the useful energy delivered by a dynamic system to the energy supplied to it.

Generally speaking, the second definition, specifically b (1), is the one that makes the most sense for this purpose” an “effective operation as measured by a comparison of production with cost,” and in our case the cost would be Time.

Data Storage has always been measured in this fashion (with respect to energy, time and cost) and certainly for most normal applications, such as randomly accessing information, or perhaps optimizations for specific tasks, the existing technologies have been quite effective, however in Artificial Intelligence, or even just trying to access information in a contextually relevant manner, these current technologies are just not “good enough.” Indeed, even if our “index” for the information is organized in an efficient manner relative to the purpose (through the use of a database for instance), the information actually being stored on the physical media is not being store efficiently (this is mitigated in most modern databases by pre-allocating chunks of physical space on the media and making sure the blocks are de-fragmented). Nevertheless, this does not guarantee that the data being stored is physically located in the same place… in fact it is quite possible that the information, even though the files are not logically fragmented, are scattered across multiple physical disks. Therefore, even if our technology does a lot to make sure it is performing as well as it possibly can, there still are inefficiencies that exist.

When we begin to add the concept of contextually relevant information, most data storage systems require a lot of pre-preperation (often taking weeks of an architects time) to design and implement a data architecture in a database that has been configured correctly to achieve any sort of performance with respect to contextual information. Optimally, what we need are physical storage media that are “context-aware” in how they store the information.

Thesis: In order to achieve greater performance and a closer approximation on how the human brain stores, retrieves and categorizes contextual data, we must change how our hardware stores that information.

If we can build contextually aware hardware storage media, for instance, one that understands that two pieces of information are contextually relavant to one another, and can physically store them next to one another, and if we can devise a way to continuously store contextual information in such a manner, then we can eliminate much of the media lag time that exists when trying to retrieve that information.

The Human Brain spends much of its time remembering information. If the Brain had to retrieve information scattered from many different physical locations, the shear effort of assembling that information would mean it would take us minutes to form the simplest thought! Therefore, the Brain must store information that is relavant to a central concept in a physically relevant manner. The Brain also spends another portion of concious time tagging information that it sees during the concious hours and storing that information in short-term memory, then at night, when we are asleep, it attempts to sort that information against the currently “filed” contextual information stored in long-term memory, and then file it contextually and physically wherever it is relevant.

I believe that we must have a physical storage technology that mimicks this behavior if we are ever to have a storage capability that is useful in Artificial Intelligence research. Implement this method of storage with SCM storage media, and we truly will be one step closer to a technology that works for the contextually relevant constructs instead of against it.

The applications of such a technology would go far beyond advancing research into Artifical Intelligence (which may truly never be fully realized), for instance, search engines could utilize this technology to create very fast contextual query systems, or perhaps make content management not only a software-efficient endeavor but a hardware one as well, allowing for very fast searh and retrieval of archival media, and the list could go on… This technology would take less energy, reducing the power cost relative to today’s data retrieval systems by orders of magnitude.

There are several papers that exist that are relevant to this subject12345, while all of these propose great software strategies for dealing with contextual data they all rely heavily on pre-existing physical media systems and try to solve the problem through software means alone (however, perhaps the best solution I have seen, and one that is a good mitigation for contextual data, is the one presented by the paper written by Gokul Soundararajan, et. al., which deals with the situation by implementing a contex-aware pre-fetch algorithm on the server… a novel idea, but one that adds yet another layer on top of the physical media (however this is useful for distributed data), and therefore another hit on performance relative to localized (non-distributed) data.

Hopefully in the near future, a truly context-aware physical storage media will be devised and implemented as I believe this is the only way we are going to achieve good performance for the kind of data we are amassing as a society, not forgetting the applications in many other areas.

  1. See A Context Based Data Management System for Pervasive Computing Collaborative Applications, by Sharat Khungar and Jukka Riekki []
  2. See A Context Based Storage for Ubiquitous Computing Applications, by Sharat Khungar and Jukka Riekki []
  3. See A Context-based Document System for Wearable Computers, by Kent Lyons, Thad Starner, Lonnie Harvel []
  4. See A Classification Framework for Storage and Retrieval
    of Context
    , by B.I.J. Siljee, I.E. Bosloper, J.A.G. Nijhuis []
  5. See Context-Aware Prefetching at the Storage Server, by Gokul Soundararajan, Madalin Mihailescu, and Cristiana Amzahowever []

Set Your Avatars Free!

April 21st, 2009 No comments

Avatars have always been fascinating to me, and I think perhaps it all started back when I first started creating make-believe characters for made-up stories I used to dream up when I was a child. Of course, I didn’t call them Avatars at the time, but essentially that’s what they were. In fact, a few of my made-up characters were so compelling to me, that I would pull them out of my own made-up universes and stick them into universes created by other people, (for instance, I had this great character called Terces Tamoc that I often mentally re-purposed and shoved into universes like Star Wars, Blade Runner and other great “sci-fi” worlds.”

In short, the concept of an Avatar is nothing new, and neither is the concept of taking an representation of an encapsulated set of core characteristics that we find appealing, and re-using them in worlds we find interesting. The really interesting thing is the fact that many in the virtual worlds space are tackling that very problem: how do you take an Avatar that may exist in say, SecondLife and move it to another world completely?

From what I’ve read so far, it appears that much of this effort is still in it’s very infancy, and, I may be completely wrong here, but the methods that I’ve seen so far for how this data sharing problem is being tackled seems to be centered around traditional point-to-point protocol and data translation between the different worlds (i.e. take an Avatar data object in Second Life, transform it into an Avatar data object in OpenSim, and now you have created a duplicate avatar in OpenSim, effectively moving from one world to the other). In addition to this, I believe there is a movement to “centralize” Avatar data as a service that would allow a virtual world to look up the Avatar information much as you would a LDAP entry.

While, I think these efforts are a logical progression from the business and SOA mind-set, I think perhaps if we take a step back, and take a look at the “ideal” representation of an Avatar, we can start to try and tackle this issue in a more abstract and ultimately more widely applicable method.

To me, an Avatar is a facade that represents me to the virtual world (whichever that world I happen to be in). The Avatar encapsulates everything that is unique about my character. My characters “physical” appearance, what clothes he is wearing, his name, and generally anything else we might consider to be “public.” Additionally, there are aspects of an Avatar that make it functional (generally, the reason we move between worlds is either to play games, explore, or more importantly to buy things). Just like in the real world, I wouldn’t generally carry around cash in my pockets, but I would probably carry an ATM card, or a credit card, and an avatar needs to have a private, secure set of core data that can only be accessed by the original Avatar owner, not even if it is copied.

Obviously, the very security measures incorporated into an Avatar definition is what will ultimately make that definition succeed or fail in general (if you can’t have confidence that anyone who copies your avatar can’t steel your identity with it, then what’s the point of even creating such a thing?).

One way this might be approached would be to have a two-part system. Essentially, what you would have a piece of software on your local computer that is you would use to create your avatar with, in a standardized “Avatar Definition Format,” (it should be sophisticated enough to allow you to graphically design your avatar so it meets your aesthetic needs), and this application also acts as a security vault for financial information, providing a high level of encryption around this core data. The application also allows you to fully define all the common “public” elements described earlier, or even provides a way to randomly generate your avatar (within a set of aesthetically pleasing constraints). The public half of your avatar would be loaded into whatever Virtual World Browser you are using (i.e. Hippo for instance), via a plug-in component that allows the browser to interact with the Avatar Management Application.

When you move from world to world, the virtual world you are in is free to cache the public aspects of the Avatar, but the private data is still local. If a browser connects directly to a world for the first time, the public data for the avatar is uploaded, however if a copy of the avatar exists in the world he is trying to brows to already, the browser needs to compare avatar versions and bring to the users attention and allow him to choose what to do (overwrite, keep server copy, merge, etc.) When a world-to-world transfer is happening, what is sent between the two worlds is an encapsulated piece of data that represents your public Avatar with special unique data that only has meaning to your local browser… this way, if another person copies your avatar, it could be possible for the virtual world (through the specification) to identify an unauthentic use of an avatar and remove it from the system and alert the owner.

When a situation arises where a purchase is necessary (for instance, you want to buy an item in-world, or a fee is required to enter a certain virtual world), then there should be a secure connection created between the browser and the requesting in-world component, much like internet commerce has been done for the past decade, and some visual indication of a secure connection is given to the user. Since the data required to purchase the item is stored within a secured vault in the avatar definition, it would require confirmation and authorization. Additionally, there is nothing preventing the Avatar from being configured to direct payment from a third-party such as PayPal and so on…).

Public Data in the avatar is your “Default Model” that stays with you from world to world, and the particular world you are in can choose to use that default model or give you the choice to attach a local model, overriding certain aspects of the Default Model and inheriting others. No matter what however, the unique link back to the private data is what ultimately ties your server account to your avatar. In this fashion, you could move from a business world where your Default Model is used into a MMOG where an alternate model is attached to your avatar while you are there.

What about inventories? To be honest, I think inventories should be for the most part local to the virtual world (in other words, you can’t take them with you). However, I could foresee the creation of Avatar Attachments that might add capabilities to an avatar (for instance, Grid administrators may need certain tools attached to their avatar for monitoring, or muti-world moderators may need special tools, possibly even custom developed, for their needs, or perhaps for MMOGs, they may allow modding, or the creation of plug-ins that enhance game play, or require mandatory plug-ins to support how they want their world and the avatars within it to function and interact. Obviously, some of these plug-ins are world local, but others could be private, purchased from third-party sources).

I think this model for Avatars allows for a great deal of flexibility, and starts to move us into a model that is closer to how I always perceived Avatars to behave and function. Avatars need to conform to a standardized format and structure; this is the only way to make this sort of thing a reality. Without a standards body taking up the mantle of owner for the definition of an “Avatar Definition Language,” or “Avatar Definition Format,” etc. then none of this will make any difference in the long run.

The Universe… On A Stick?

November 9th, 2008 No comments

Over the last decade and a half, portable memory chips have become commonplace, at first primarily as a way of storing video or pictures on cameras, but eventually the memory technology reached a high enough density and was being produced in large enough quantities that we started to see cross-over technologies such as flash memory sticks that combine USB, micro-controller and flash memory technologies.

Memory read/write speeds along with data transfer rates on USB devices have continued to improve over the years until it has become possible to store full-length movies on the memory stick and actually play them directly from the device.

The iPod Touch and iPhone use flash technologies to replace miniaturized hard drives thus reducing power consumption. In general, an iPod Touch is a very sophisticated memory stick capable (currently) of storing 32 gigabytes of movies, pictures, applications not to mention the operating system the device uses to function.

Truly, flash memory technologies are reaching remarkable densities and performance levels. However this is merely the beginning of the trend.

In the July/September issue of the IBM Journal of Research and Development, several research papers were published discussing a class of memory technologies called Storage Class Memory or (SCM)1. The development of SCM technologies is an effort by companies like IBM to completely replace the hard disk drive by the year 2020. While, there are many challenges to overcome, mainly related to device longevity, the papers were very optimistic at the prospects of overcoming them. I believe that by 2010 we will start to see the first SCM devices appear which will most likely be used to replace flash technologies in the 1-40 gigabyte ranges. However, by 2015 we should start to see 50-150 gigabyte SCM devices start to appear and the first of the laptops making use of them.

Essentially, when we can finally utilize SCM devices in traditional computers such as laptops, desktops and servers, we will have finally broken away from the largest bottleneck to computing performance that currently exists: the Hard Drive. We will finally realize the first “Instant-On” computers and perceived application performance will skyrocket without any other changes to the computing architectures.

At the same time, as SCM devices start to mature, you will start to see SCM Memory Sticks with capacities of 30 to 50 gigabytes and mean-time-before-failure rates in the tens of years. It is quite possible that by 2020 we could see 1+ Terabyte laptop computers and 500 gigabyte memory sticks (can you imagine a 500+ gigabyte iPod?).

About fifteen years ago, I was fascinated by a Sci-Fi television show called Babylon 5, and while there were many futuristic technologies that seemed to be ubiquitous, none more so then the Memory Crystal (for lack of a better term). These things seemed to have the ability to store vast quantities of data and have the ability to access any portion of it almost instantaneously. I believe we are on the road toward making this technology a reality. While “Blue-Ray” DVD’s are the first truly cheap digital recording medium capable of storing a full-length high-definition movie without compression, I believe that by 2015 some entrepreneurial inventor will marry USB 3.0, SCM and some hardware security technologies make SCM Memory Sticks a reality. This literally could be the end of mechanical recording devices like CD’s or DVD’s as literally you could rent several HD movies by paying a small fee for the use of a special memory stick at the movie rental store (which has proprietary security hardwired to prevent copying or tampering2, and also a timer to render the stick inert when the rental time runs out). Imagine taking your rental stick to the movie rental kiosk, plug it in, choose 3 or so movies to rent, pay the kiosk and have them downloaded to your memory stick. At home, you could literally have the playback device be built into your television, or it could be a small HDMI connected play-box device that you insert your stick into.

To be honest, the previous example may not be the best one, considering that greater numbers of people are choosing to download their videos over the Internet or rent them “On Demand” through their cable company, but I think you get the idea.

Regardless, I find a world where there are no more CD’s, DVD’s, or floppy disks (do we even use those anymore?), a fantastic one. Wouldn’t it be great if the future could let us store the universe on a stick?

  1. See Storage-class memory: The next storage system technology by R. F. Freitas and W. W. Wilcke []
  2. For example the IronKey has similar security features. []

Eclectic Wonder is using WP-Gravatar