The day when RAM became a computer
What is the Raspberry Pi COM module and what will it offer us?
Today Raspberry Pi foundation announced a Raspberry Pi computer module or COM for short - a.k.a computer on module. It has a shape of SODIMM RAM but it's not a RAM and it's not designed to be connected to any computer or laptop. 7th of April will be the day when RAM became a computer ;) So what actually is a COM and what it can offer for us?
What Raspberry Pi COM is all about?
A COM is a very small form-factor PCB that integrates all computer components like CPU and RAM but lacks typical connectors like USB, HDMI or GPIO pins. Such computer-on-module is intended for use with a compatible baseboard or carrier board. The baseboard has a slot for the COM, it connects to it connectors and use them to do something meaningful - like wire all I2C, SPI, GPIO connectors to a complicated robotic arm in a factory. The COM maker doesn't have to worry about specific carrier board design, and the carrier board designer doesn't have to worry about COM board design (until they stay compatible to some written down design). The factory can also upgrade one part to a newer model without the need to upgrade everything and so on.
Raspberry Pi COM on its own isn't much usable. You need a carrier board. The foundation has a development carrier board to start with, but that will give features similar to classical Raspberry Pi (although more GPIO). The real features and benefits of Raspberry Pi COM will be noticeable when custom carrier boards will be released by third party companies and developers. Like a home automation board handling a set of sensors and automatics already wired on the baseboard with long durability plugs.
COM standard is popular in the industry, just look at linuxgizmos.com for news about many such boards. Note that other COMs even when shaped like a SODIMM won't be compatible with Raspberry Pi COM (unless stated as such). For example:
What Raspberry Pi COM is NOT about?
Among comments there are questions about SATA connector. BCM2835 SoC used in Raspberry Pi doesn't offer SATA support, not does it have PCIe support. That means you won't get native SATA with the COM module. There may be some chips that can provide SATA over USB or alike, but at the moment I can't see a solution for fast and efficient HDD/SSD support on Raspberry Pi COM. eMMC module can be much efficient than SD cards (in terms of random I/O read/write operations) but that also depends on eMMC module used and SoC capabilities. A HDD connected to my Raspberry Pi USB port achieved transfer rates of 22-25MB/s (while hitting max of around 36 MB/s on a laptop USB). It ought to be enough for a simple HTTP server. When you will try to play with databases, dynamic websites and other server services you will hit CPU and RAM limitations much quicker than storage limitations. Use different single-board-computers or x86 PC/Nettops for more demanding tasks. If you want a cool website on a Raspberry Pi server you could use a static pages generator that dynamically generates static HTML pages based on your content managed by that generator (like a desktop PC application generating static pages and sending them via Git or directly via FTP/SFTP to Raspberry Pi). Github Pages can be/are managed like so.
Stacking two Raspberry Pi COMs won't give you double powers. But you can imaging such baseboard running two independent Raspberry Pi COM modules. To use two computers at the same time as cluster for computation you would need to write/use a distributed application that can perform calculations in parallel on different computers (like over a network or other common communication interface).