Resoa (Rest Service Oriented Architecture) is an open source framework for development and operating of service oriented internet applications within a computer grid. It puts focus on performance, high availability and scalability. Application services are developed in Java language, communication is based on HTTP/Rest and JSON.
Resoa defines three components, which, when installed on several machines, create a computing grid.
*Resoa Nodes: Nodes are the container for Java Business Services. Services are aggregated to domains before being deployed on several nodes.
*Resoa Rest: Rest servers provide a http interface for invoking Java services beside acting as a convenient HTTP Server for static content. Communication mainly happens by AJAX/JSON.
*Resoa Controller: Controllers maintain the grid topology; they manage the communication between all components and control the deployment configuration of nodes and web applications. Furthermore, they act as a central instance for a grid-wide session and permission management.
Principles of development
* The design of the business model happens in XSD. The JAXB generated Java source code is the base of the business services development.
* Resoa provides a Javascript source code generator for all JAXB compiled classes, providing helpful functions for the web interface development like automatic form filling and integrated JSON object de-/serialization.
* There is no interface implementation restriction for service development, the Resoa framework identifies valid services by examining class function arguments only.
* There is no need designing and maintaining a separated model for data persistence, Resoa offers an integrated, grid synchronized BTREE based database, resolving object relations into several ACID storage transactions, using JSON for object serialization.
Deployment and runtime management
* A Resoa grid is formed by at least one Controller, one Node and one Rest Server. The design of the topology happens by folder / file structure.
* Resoa provides a tool, which generates all runtime information, a grid component needs for start up. This tool also generates encrypted license files, which ensure a secure grid communication over internet.
* Every grid component tries to connect to a Controller on start-up and receives all relevant deployment information. Controllers can update this information during runtime, a re-start of the component is not required. Rest Server and nodes maintain connections among each other as well, if the deployment configuration demands this.
* If a node goes offline, all web/rest requests will be routed to another randomized selected node, serving the required business domain. When a new node joins the grid, it automatically connects to those Rest servers and nodes, where the deployment configuration demands a linkage to.
The development of Resoa has its origin in 2003 enrooted to exchange trading systems.
The intention was to define a software architecture, which is able to analyse real-time streams from world-wide exchanges and generate signals for automated trading and risk management. The daily analysed volume was several gigabytes, additionally there was the requirement of historic time series integration. This all had to happen for thousands of securities, with a signal generation time of less than 500 milliseconds.
A small team of developers from Germany and Russia, with a many years experience within the brokerage branch, faced this challenge on a private basis. A lot of existing open source solutions has been examined and some expedient looking ideas were finally discarded by fundamental re-designs. It soon became obvious, that the main task is to unify a service oriented software architecture with the emerging ideas of grid/cloud computing. As this is a generic topic also for a lot of other business cases, there was the decision in 2008, to create a generic open source framework for software development and runtime management. End of July 2009 Resoa initially went public with the release 0.9.1.
* Website of the project
* framework used for the REST Interface

Comments (2)
1. 14-04-2012 15:37
(still in London, returning today Stockholm was nice, wheisd I got to see more of it)@Chris Thanks. I am glad this is not a default. I am guessing it is a holdover from a previous install method. noapic is so opteron time. acpi is well, acpi. Kind of hard to have modern hardware without it.@Jeff (snark noted and points added well played!) Not saying acpi isn't an aweful mess nor am I saying its the greatest thing since sliced bread. Its probably somewhere between these two. This said, its sort of hard to have modern hardware function in a complete/correct manner without acpi. That is, it is a necessary element. Not necessarily evil, but necessary. The evil portion is open to debate, and I thing from what I am hearing, the folks you've heard things from would definitely fall on the lets stick a stake through its heart side. This said, it was the only case I'd ever really seen of a substantial windows advantage over linux. This advantage was mitigated (and then some) when the correct booting options were used for Linux. Go figure. All this said, I think the end user is happier now than before. This is what matters.@everyone-else: Keep your eyes open for strangeness on the boot command line. Simpler (and more verbose) is almost always a better choice.
2. 17-04-2012 04:31
Hi FelipiYou could call () every time you change smtnohieg, however that would be quite slow and might make your game lag.Instead you could use an, right now, undocumented function called SetNodes.For example you can (false,myTower.bounds,true);This will set all nodes (if no colliders are there) in that area (myTower.bounds) to unwalkable (false, first parameter) and it will use FullPhysicsCheck (true, last parameter), which means it will check if the area is free from obstacles first instead of just setting the area to unwalkable whatever what. If you use FullPhysicsCheck, make sure that the tower isn't instantiated yet, otherwise the script will find the tower and think that the area is still unwalkable.You can find the full syntax in the AstarPath.cs script (haven't written a page for it yet).PS: Remember that you need to do a repath for all units when you have changed smtnohieg, they don't do that automatically.

Write Comment

Code:* Code
I wish to be contacted by email regarding additional comments

< Prev   Next >