The idea is something like a Request Broker, but with some additional functionality, such as:
- Hosting 3rd-party add-ins, which will most likely run as their own applications (a discussion of the reasoning behind this to come eventually)
- Serving up a unified method of communication for external processes to call methods in the add-ins, and otherwise communication with them (as well as for the add-ins to communicate with each other)
- Running/monitoring arbitrary external processes, with the ability to monitor (and notify about)...
- Database connectivity
- File system availability
- Network availability
- Memory usage
- etc.
- Running in tandem on multiple servers, and successfully negotiating operations
- Load balancing tasks between multiple servers
- Gracefully handling clustered environments, such as NLB/ACE, and a methodology to easily extend to other methods of clustering
- Provide a tiered caching mechanism for 3rd-party add-ins
- Task scheduling
- etc.?
Things to hash out before proceeding:
- Where will we store persistent information (database, file, configurable?)
- How will our processes communicate with each other (.NET Remoting, WCF, other?)
- How will we handle database access, and what databases can/will we support?
- How will we handle logging?
- What will the 3rd party add-ins look like?
No comments:
Post a Comment