About HotForestGreen
What is HotForestGreen?
HotForestGreen is an “internet of things” developer framework.
It can be used to create things like Automated Homes, Smart spaces and Real Time Collaboration Software.
It is created with several purposes in mind, including:
- To reduce the threshold to build Smart Spaces, Distributed Applications and “Internet of Things” things – By making and keeping it as simple as possible.
- To run on low budget, low power machines – Like 150 euro Android phones, 100 euro Android Tablets and 200 euro Netbooks (prices based on price levels of August 1, 2011)
- To serve both tinkerers and professionals – By offering a system that offers you all the things for your basic needs and that can be scaled up to multiple Servers on multiple systems over multiple networks, using load balancing and automated processes to re-wire communication when Servers drop out.
When did the project start?
The project started at May 1st, 2011 and ran in the weekends and evening hours.
Why am I developing this?
There are three reasons:
- Simplest, best, kick ass – I want to be able to use the simplest possible and the best, lightweight, high performance, kick-ass framework to build small, large and scalable distributed systems.
- Dead simple to build complex, scalable stuff - I want to make it dead simple to build those complex, small, large and scalable distributed systems.
- What I need is not there yet – And that is why I started building HotForestGreen.
How does it help you?
- Off the shelf solutions for you basic needs - HotForestGreen makes things easier by providing a set of “off the shelf” solutions to:
- Distributed Systems – Create small- and large scale Distributed Systems using local networks and the internet
- Data – Retrieve and store data (on remote locations)
- Remote Objects – Send and update Remote Objects within Application Clusters
- WebSockets – Use HTML 5 or just the WebSocket Protocol to communicate to devices
- Simple Webserver - Allow you to serve web pages and Flash Content – for instance to offer a Web Based Remote Control to your users – via a built in Simple WebServer.
- Multiple Servers/Load Balancing/Redundancy - Support an “unlimited” number of Servers to balance the workload (especially handy when using less powerful Servers) and add redundancy to backup and deal with drop outs when a Server crashes
- Multiple devices – Work on and with multiple devices, including Netbooks, Android phones and Android tablets
- Multiple layers of security – Protect the data and the system from hijacking by Trusted Relationships via Shared Keys and the use of encrypted data streams via Secured Socket Layers.
- Open source and free for non-commercial use – So you can use the code base, add your own stuff if you are not happy with my work, and expand on it and use it to play and freely experiment with to your hearts delight.
- Multiple platforms – So you can build it in the language you choose. Currently I am developing the framework in:
- C# – For Windows based solutions
- Java – To run on Android, Linux and Mac OS
- Flash – For Web Based user interfaces and that extra bit of eye candy
- JavaScript – If you need something that simply runs in your web browser. (Only Chrome supports WebSockets for now – August 2011)
What is it for?
- Distributed systems – Are systems with two or more “smart parts” working together. Think of:
- Automated homes – Where rooms are governed by individual systems like a Netbook or an ARM-based device or
- Distributed applications – Where people work together on the same things or the same data from different locations and different machines, updating and adding to each others work
- Smart Spaces – Which are houses, rooms and locations able to interact with the people and events happening within the range of their sensors.
- “Internet of things” – Based on smart objects which communicate to each other and respond to specific signals including:
- Sensors – Including RFID, heat, movement, pressure and states of doors and windows (open/ closed)
- Devices – Including stuff that opens and closes doors, changes lighting and temperature, display information and wakes you up in the morning
- Storage – To retain information.
- RAD / Agile software development - To build stuff quickly, when you need real time (distributed) systems, data from databases and send data from one place to another
- Android, Windows, Mac, Linux and the Web – Due to the availability of code for C# (September 2011), JavaScript (September 2011), Java (October 2011) and Flash (October 2011).
- Tinkering – You can build small projects and play with Real Time systems with very little effort,
- Heavy duty stuff – Utilizing the full spectrum of Clustering, Load Balancing, SSL/encrypted connections and fall back scenarios when Servers drop out or crash.
What will it run on?
- Wintel, Linux and Mac – The three main Operating Systems
- Android – For phones, tablets and low budget ARM based computers
How much does it need?
- Light weight/low cost ARM devices – HotForestGreen is developed to run as a full Server on low cost, low memory ARM bases devices like the Archos/Arnova 100 euro tablets and the 25 USD Raspberry Pi computer.
- Netbooks – For more heavy work while still keeping budgets limited, you can use 200 euro Netbooks
- Limited to no additional installs needed – HotForestGreen is developed to run completely out of the box. While it will need the Java Virtual Machine and .NET 3.0 or higher, you do not need to install extra software to make the Client or Server run.
What is the current status?
HotForestGreen is still in closed Alpha and currently developed in C#, with a HTML/WebSocket based test environment.
When will it be released as Open Source?
The first release date is currently (August 2011) set at September 1st.
What will be released?
- September 1, 2011 – First release, demos
- A C# based Libary for you to use and build on – containing:
- A HotForestGreen Socket Server – Supporting Sockets, WebSockets, and HTTP requests
- A HotForestGreen Client – Using Sockets and working with Remote Objects
- A Transparent Data Access Layer solution – Allowing you to access and alter data in one or more databases without the need of writing any additional code
- A basic user authentication system – To support solutions requiring user logins
- Several security layers – Including SSL connections, implementation of several Trust Levels and Secured and Hidden SandBoxes
- A JavaScript based Client – containing:
- Base classes to connect to SandBoxes and create Remote Objects – Allowing you to build Real Time HotForestGreen applications with a minimum of coding required
- Precooked event models – To deal with updates in Remote Objects
- Several demos – including:
- JavaScript Chat – Showing a simple real-time internaction model with Remote Objects
- Synchronized Screen Color Demo - Simultaneously changing the color of screens on all machines to the color selected on any of each.
- Synchronized Browsers Demo – Browsing and scrolling on any and all browsers on any and all connected computers, leading to all others to follow
- October 1, 2011 – Java and Flash release, Remote Proxies for Arduino and XBee, more demos
- A Java Based library – mirroring the exact same parts as the C# library, for:
- Android – Using the Android SDK
- Windows, Mac OSX and Linux – Allowing for a broader implementation, including ARM based machines
- A Flash based library – Containing only the HotForestGreen Client
- Remote Proxies for Arduino and XBee – To make DIY electronics and sensoring easier, we will provide Remote Proxies and local Drivers for Arduino and XBee that will allow you to get started immediately and read and set data simultaniously from any place, application and device you choose – as if you are directly speaking with the devices itself.
- More demos – including:
- The Smart Home - Using electronics and sensors to register open and closed doors and windows, switch lights on and off and to register temperature, light and movement.
Who is HotForestGreen?
HotForestGreen is currently Peter Kaptein.
Hopefully this team will grow as the project evolves.
Will it remain to be called HotForestGreen?
I do not know yet. For now it is the working title.
What can you contribute?
Once the libraries are Open Sourced in Public Domain you can create your own variations on the Client / Server technology in the language and/or platform of your choice: Python, PhP, C++, Objective C, Cocoa, iPhone, iPad, Windows Phones and whatever else there is.
The more choice there is in the what, how and by whom, the better.
Be the first to start a conversation