Welcome to the Embedlets project
This project was started by a small group of Embedded Java developers who began wondering why one of the world's most powerful technologies was being adopted much slower than expected. It was determined that one reason for this was that Embedded Java developers need to be reasonably proficient in both Embedded Systems style programming and Computer Science/Enterprise style programming and that developers who have competencies in both of these very rigorous disciplines are relatively rare. It was finally decided that since this group collectively had strong expertise in both of these areas that it was in a good position to develop a technology, and to form an open source community around this technology, that could be used to bring the very diverse Embedded Systems world and the Computer Science/Enterprise world together.
The purpose of the Embedlets open source community is to provide a place where Embedded Systems developers of all types and Computer Science/Enterprise developers can meet in order to figure out ways to bring these areas together. It is our opinion that before the projection of 'billions of embedded systems being attached to the internet' can come true that these traditionally separate areas must be synthesized. This community realizes that there is going to need to be much 'hand holding' on both sides throughout this process but we firmly believe that this is all part of the adventure!
Embedlets are Java™ based embedded system software components which contain platform-independent embedded logic. Embedlets are designed to run inside of an Embedlet Container in a manner which is similar to Servlets running inside of a Servlet Container or Enterprise Java Beans running inside of an EJB container.
The Embedlet Specification is the document which defines precisely how Embedlets and Embedlet Containers should function and this specification is designed to be implemented using any technology that is capable of realizing it.
JAPL - the Java Abstract Peripheral Library
The purpose of the JAPL is to allow Embedded Java code to be compiled against a standard library of Abstract Peripherals. The incentive for creating a library like this is that even though most microcontroller and computer system peripherals are very similar, the specific details of how these peripherals are accessed is quite diverse.
For example, the 8 bit wide I/O port is a very common peripheral but the way that the data direction for each bit is configured, and the manner in which the port itself is accessed, is usually different across systems. Even Java based embedded systems like TINI and JStamp encapsulate their I/O ports in proprietary classes. JAPL solves this problem for the application developer by defining one generic interface for each chip/peripheral type. One way to view this is that each JAPL peripheral type is designed to do for the class of peripherals it is associated with what JDBC does for databases.
Outpost - the Embedlets reference implementation
Outpost is the reference implementation of the Embedlet Specification and it consists of an Embedlet Container and a library of Embedlets which have been designed for allowing a company's enterprise system to monitor and control all of the company's internal processes.