In the last post I mentioned that Sim-OnDemand is a learning by doing initiative in DevPay context. Let me elaborate on Sim-OnDemand a bit. The intended purpose of Sim-OnDemand is as a personal Sim for experimentation, development and testing.
Sim-OnDemand: Personal 3D Virtual World On the Cloud
3D virtual worlds are maturing fast and businesses and organizations are waking up to its potential. Collaboration, Communication, and Prototyping are some of the directions explored. OpenSimulator a rapidly evolving SecondLife(tm) compatible 3D virtual world server has reduced barriers of adoption considerably. The idea of Sim-OnDemand is to reduce the barriers of adoption even further. Sim-OnDemand makes the OpenSim software come alive using the Amazon’s Elastic Computing Cloud(EC2). The synergy of cloud computing with the bandwidth, computing intensive Virtual world software in my opinion are made for each other, just like the Windows-Intel combination that powered the last wave of computing advances.
The emergent nature of 3D virtual world applications underscores the need for personal servers for experimentation, development and testing. The present version of Sim-OnDemand caters exactly to this segment.
Sim-OnDemand is targeted towards non-geek 3D virtual world enthusiasts( like SecondLife power users) that have no inclination or incentive to learn the intricate details of AWS EC2 API just to get the OpenSim working.
Sim-OnDemand Implementation – The AMI
The core of Sim-OnDemand is OpenSim a mono based application. OpenSim supports multiple database backend, viz., SQLite, MySQL, and MS-SQL. Sim-OnDemand is configured such that OpenSim works with MySQL backend. Installing and configuring all the prerequisite software( like mono, mysql, screen etc) and packaging it all as an Amazon Machine Image(AMI) is the first step in the Sim-OnDemand implementation.
In order to make the MySQL database persist, Elastic Block Store(EBS) is used. Custom scripts were developed to initialize the EBS volume ahead of MySQL and OpenSim starts using the volume for storage. Similarly, shutdown scripts are developed to shutdown the OpenSim, and gracefully detach the volume.
Startup parameters are passed on to the EC2 instance via user data run-instances parameter.
Sim-OnDemand Implementation – Launcher Application
The intended audience for Sim-OnDemand is non-geeks with no intent or incentive to learn EC2, I thought it is a good idea to make a launcher for the AMI. With AWS there is no simple and safe method to pass or embed AWS credentials into EC2 AMI itself. A launcher application is one way of shifting the credentials away from the AMI.
The idea behind Sim-OnDemand launcher user interaction design is to keep it minimal and simple. Music player metaphor of Play-Pause-Play is employed to effect the launching, stopping and restarting of the OpenSim ec2 instance.
Sim-OnDemand – Future Features
Sim-OnDemand in its present form is just a proof of the concept. It is a way to validate if there is enough interest in running OpenSimulator on EC2 on an On-Demand basis. Few more features are essential to make it useful. Here is my take on the list. Users and potential users are most welcome to add to the list.
- User Management
- Multiple regions
- Grid Mode
- Ability to attach to to public Sims
- Previewing the latest OpenSim software – hot off the source code repository.
- Ability to run custom applications
- Automatic scaling with load, regions, number of users logged in.
- Integration of OpenSim forge community contributions.
I’ll be blogging about geeky details of the implementation soon. Meanwhile please try out Sim-OnDemand and suggest improvements and features.