eXaNetworks Technology Backgrounder
THE CHALLENGE:
Digital Socialization of Photography Outpaces Capacity to Support Demand; Applications, Storage and Transport All Need New Infrastructure
THE RESULTS:
Distributed Processing/Storage Enables New Models of Enhanced Image Sharing: eXaNetworks Provides Direct Access to Desktop Displays
via Opt-In Sharing Networks for Photos and Other Graphic Content
After seven years and nearly one million lines of code, eXaNetworks has reached its mission objective: make photosharing profitable. To achieve this goal, the Company developed a set of compelling and competitive technologies and services for photo sharing using advanced methods for transport, distributed storage and viewing. In the process, eXaNetworks invented a new method to publish images direct to the desktop, thus creating a new paradigm for the display of shared photos and branded content.
BACKGROUND
Before digital photography, silver-halide photographic film was the primary media for recording events in still images. In early 2000, digital photography began to overtake film in popularity. This rapidly shifting, digitally inspired consumer economy saw a change in how people take and share photographs. Almost overnight, the film-based traditional consumer photofinishing industry virtually collapsed. On line photosharing and photofinishing –- which until 2004 had been more a less or technological novelty –- was still encumbered by low-speed Internet connections, expensive DRAM memory and the valuable time users must spend learning and using this new model, often with less than satisfactory results. Most consumers of casual digital photography have never used commercial photofinishing for their images and rely more and more on file sharing and local printing.
Over the following few years, rapidly diminishing cost of systems and memory were countered by larger image sizes as megapixels mistakenly became the standard measure of quality and value – even for people who rarely took anything more than 4x5 snapshots. Today with consumer broadband, upload times remain substantially longer than download.
Earlier attempts at online photofinishing were modeled after the traditional mail-order film processing business. The belief was that users would send select images to a photofinishing site and buy one or more prints of each. Then they'd share the prints with others. (Flash drives and cheap digital memory sticks have helped some retail photofinishers but haven't replaced the online model.) Now, photosharing means uploading full-resolution images to a central repository, sending e-mails to recipients and letting the recipient decide which photos to view online and later print out, if any.
eXaNetworks foresaw the rise in photosharing in social networking systems (Facebook, Flickr, etc.) and increases in hi-res camera capabilities - including four megapixel camera phones. The Company understood early that the model for photosharing would collapse without distributed storage. Sharing sites have been forced to limit file size when just a few years earlier they were begging for larger photos to gain market share in the nascent digital enlargement services segment.
But while sharing is popular, web photofinishing profits remains elusive as home printing and online viewing remains the preferred method. Until now.
THE COMPANY
ExaNetworks began developing a solution for the problems first identified in 2004. Today, those problems are still with us as online photofinishing is rarely profitable – compared to the traditional photofinishing market of the late 1990s. The Company focused its development efforts on methods of distributed storage and shared processing for the network, allowing higher speed uploads and targeted distribution of images without creating a centralized solution hosting redundant images, thus saving precious storage resources.
More significant than mere photosharing on the web, eXaNetworks also opens a new online destination for images –- the desktop itself –- via remote access to the user's desktop wallpaper as well as screen savers to display select photos, albums and other digital images –- including branded content.
ExaNetworks technology allows faster, greater access to more images, better control of the image by the creator, and multiple access points via e-mail, web and stand-alone viewers.
TECHNOLOGY & ARCHITECTURE
eXaNetworks develops and licenses technology for enhanced Internet and web-based image and photo sharing and printing solutions. The Company's primary product, eXaPhoto, offers all the convenience and functions of existing web-album solutions for end-users without the disadvantages for the hosting companies. Instead of storing full-size images directly on the server, the eXaPhoto sharing system only stores small-size, low-resolution copies of the original image which, while suitable for online viewing, only occupies a fraction of the storage space required by the original images, typically in the order of 1/30th or smaller.
eXaNetworks' distributed image-sharing technology offers a set of stand-alone yet integrated, desktop utilities which serve as an interface to the Company's patent-pending, distributed client/server, image-sharing network infrastructure. The system lets creators “publish” their content directly to the remote Windows desktops of “subscribers” on the Internet. Beyond photographic images, any JPEG file format content, including related metadata or commercial content, can be shared over this permission-based, publish/subscribe network model.
COMPONENTS
Web Server
The web server itself is a collection of five (5) web services built using SOAP based on Microsoft .NET 3.5 and C#. The web services handle all aspects of publishing, viewing, administration, command polling, and community servicing and are exposed as self-documenting APIs, thus allowing easy integration with 3rd party applications. The web server uses XML for all communication with external clients and servers. The web server utilizes an Object Relationship Mapper (ORM) and database framework from Xtensive.com, LLC. This ORM provides an abstraction layer between the application and the RDBMS, allowing customers to utilize different database servers.
eXaPhoto Agent
The PC-based, eXaPhoto Agent is a very-simple applet provides the background photo scaling and transferring service for the photo retailer or OEM. It is itself accessible via COM. Having a simple, programming interface to this key resource makes integration of 3rd party desktop applications very straightforward. The eXaPhoto Agent is written entirely in C++ and is packaged in its own Microsoft merge module to make integration with the 3rd party’s own application installation effortless.
eXaPhoto Publisher
The PC-based eXaPhoto Publisher and QuickLoader applications are written using Microsoft .NET 2.0 and C#. The Company has also developed a COM object. eXaPublisherCOM that encapsulates some of the key web services API on the client side so that a desktop developer would not have to make web services calls directly. The Mac OS version of the Publisher and its agent is written using Objective-C and Cocoa. The product is available as a small, 4MB download over the Internet or available on CD (Customer of OEM, Labs).
RDBMS
The back-end database of eXaPhoto uses Microsoft SQL, though any RDBMS would work. The ORM and database framework makes easy any move to a proprietary or open standards database. While the database used by eXaPhoto is private to our system, the data itself is freely accessible in real-time using the database engine. Furthermore, by using the eXaPhoto web services APIs, third-party developers or integrators can extend the metadata for any object in the eXaPhoto database. These objects include users, groups, albums, images, and comments. While the system and the eXaPhoto Agent are designed for handling photos, the system’s web services has support for a generic file type. This extensibility could be applied to other file types such as those used by music or video.
Viewers
Web Viewer. The viewer is available on any Internet browser from any platform, including cHTML (compact) browser from smartphones. The Company has built basic viewers for mobile phones, Linux/PHP viewers, ASP.NET viewers, and a MS Pocket PC viewer.
Wallpaper Viewer. The Company’s wallpaper viewer is a C++, low-overhead, resident program. It is an updated version of the eXaPhoto agent and is called B-Viewer. It can receive pictures from publishers that have been accepted by a given viewer, and then displays these photos as wallpaper and/or screen savers in a managed sequence. The desktop screen of the subscriber’s computer becomes the host for these pictures, which can be displayed upon receipt without additional user interaction. The viewer has full control over what images are displayed, stored or deleted. Photos appear when the user is disengaged from the computer, instantly transforming the system into a desktop digital picture frame.
After the viewer has agreed to subscribe to the pictures, images or albums can be sent anytime by a given publisher, with the current picture collection displayed as wallpaper (and/or screen saver) on the Subscriber's machine. Visit http://www.b-viewer.com/
HOW IT WORKS FOR PHOTOFINISHING
When an image is requested, the server-based system gathers the needed picture directly from the originator using a small transponder application running in the background on the end-user’s computer.
The server then stores the full-size images for a short while, typically a few days or at least until the print order is fulfilled, allowing quick processing if the image is requested more than once. The image is then simply deleted from the server, reclaiming the storage space.
This process guarantees much lower storage and bandwidth requirements as full-size images are only transferred as needed. Moreover the system can be configured and deployed in such a way that the creator's transponder sends the full-size picture directly to the photofinishing lab, bypassing the web-album server altogether and further reducing its bandwidth requirements. From the end-user's perspective, printing pictures using eXaPhoto is more convenient as only a fraction of the data is transmitted upfront making the process much quicker than existing solutions.
INTEGRATION
eXaNetworks can easily co-exist with a customer's existing photosharing infrastructure and their existing user experience. Because eXaNetworks uses industry standard web services with a richly featured API for publishing (and much simpler API for viewing), integration with existing customer sites can be accomplished easily. One scenario would be to simply add another option on the photo sharing web page of the customer with a link to allow for eXaPhoto-based publishing and sharing services, much like how some existing sites support simple HTTP-based image uploading and a richer Java or ActiveX-based clients. The customer's existing user account system would drive eXaPhoto's permissions-based system. As for viewing images, this is supported through both XML and URL links, providing a unified viewing experience. eXaPhoto also supports a much lighter weight publishing option based on e-mail, and MMS, as well. Either eXaNetworks or providers can host the solution For integration with an existing client's infrastructure, the key components are publishing, sharing and viewing. Publishing is accomplished from a client application, either heavy as a full-featured application, or light as a small applet like COM or Java, or even an existing client like e-mail, browser, or mobile device (MMS). All sharing functions are entirely web services-based or via e-mail, and finally viewing is handled via web services or URL links. eXaPhoto's existing web-based viewers can also be used which employ XSL to provide a consistent user experience for the customer. For OEM customers desiring to offer photosharing to their users, eXaNetworks works with technical and marketing staff to integrate offerings into their systems. eXaNetworks' systems are designed to host the service on behalf of the customer, providing customer branded e-mails and web-based viewing and photosharing. The eXaPhoto system can support OEM-specific branding in the database, image storing, e-mail and web branding via customer e-mail templates, XSL, and database tables. If a customer prefers to host the service themselves, the Company can assist in installing the back-end services on the customer's premises. eXaNetworks recommends customers have web services expertise and have at least some existing experience with Microsoft's server technologies for routine maintenance. eXaNetworks can provide training, technical support, and ongoing maintenance support as needed. SCALABILITY AND PERFORMANCE From the very beginning, eXaPhoto development focused on the scalability and redundancy concerns of potential clients with their many millions of users. The eXaPhoto agents connect to load balanced web services servers in a very "lazy" manner. Like most parameters of the system, the polling interval is dynamically configurable. A typical web services server hosts four or more instances of the application--depending on host memory and CPU. Multiple instances are fully load-balanced as are web servers for viewing. Storage requirements are minimal and can be scaled as necessary. Even under extreme loads, database performance excels because the ORM provides a persistent cache to frequently used data in local memory for each web services instance. This greatly improves performance while maintaining excellent response times for users. HARDWARE
eXaNetworks runs its platform on dual Intel Eon multi-core Low Voltage servers/blades processors. For an independent install, minimum systems configurations would include: a web server hosting the Image store; a database engine instance, like MS SQL 2005or better; at least a single web services instance; and a web viewer instance. A single server running two virtual servers or two dedicated servers can easily handle the different server instances required to get the eXaPhoto back-end services running. The minimal system requirements for each server, physical or virtual, is 1GB RAM, 250MB hard disk running Windows 2003 Server.
INTELLECTUAL PROPERTY
The Company filed U.S. provisional patent No. 61/152,186 Digital Media Sharing System in a Distributed Storage Architecture on Feb.10, 2009; U.S. Utility Patent Application No. 12/703,621 Digital Media Sharing System in a Distributed Data Storage Architecture on Feb. 10, 2010; and PCT Patent Application No. PCT/US10/24180 Digital Media Sharing System in a Distributed Data Storage Architecture on Feb. 12, 2010. eXaNetworks employs Perkins Corie as its patent attorney.