![]() |
![]() |
![]() |
The Sage libraries are our flagship product. They contain a robust and powerful object oriented simulation framework, written to an open architecture in C# for .net. They are ideal for those wishing to add simulation capabilities to a broader application or suite.
Many vendors will say their products are object oriented...
...But if you don't have full visibility into them, or you can't subclass them or leverage polymorhism in your designs, you're still probably making compromises.
Many vendors will say their products are open architected...
...But if you can't architect your simulation subsystem by composing elements of libraries as needed, like any of your other subsystems, you're still probably making compromises.
Executive |
|
The executive is the component responsible for managing pending requested events, and serving them to the appropriate recipients at the correct time and in the proper sequence. Its commencement of event service marks the start of a simulation, and when it stops serving events, the simulation is complete. The executive is represented through an interface, and there are two implementations that can be created by the ExecFactory. One is full-featured, the other is blazing fast. The user chooses the desired implementation in their call to ExecFactory. |
|
![]() | Executive - multiple types of events w/ and w/o synchronization. Events can be rescinded by man criteria. Innovative queued multi-threading model allows simple state management in the calling stack frame, simple time-spanning process representation. |
![]() | All events are synchronous. This executive is 5 to 20 times faster than the full-featured implementation. |
Major Subsystems | |
![]() |
Multidimensional resource taxonomy (persistent/transient and
atomic/integral) with zero-flooring, or unlimited negative
resource availability (useful for schedule generation.) - simple implementation of multi-resource, multi-conditional acquisition/release. - any object can be treated as a resource. |
![]() |
Dual implementations - Full-featured, with table driven, two-phase commit, state transition handlers, state entry & exit handlers, and much more. Simple enum-based implementation, also with robust event model. Wide choice of events fired before, during and after each transition |
![]() | Container for simulation object, warning & error handlers, & many available services. Supports dependency injection of our services and yours. |
Secondary Subsystems | |
![]() | Multi-channel performance-tunable random subsystem w/ (replaceable) mersenne twister RNG. |
![]() | distributions (including full-custom) and post-run analysis tools. |
![]() | Define legs, routes, vehicles, cargo, intersection rules, manage route selection. |
![]() |
Smart Property Bag - run-time programmable object hierarchies. Tuple spaces - multidimensional intra-object communication via bulletin boards. |
![]() | class-internal xml persistence mechanism - goes beyond .net's xml persistence. |
![]() | multiprocessor-aware subsystems that adapt to improve performance. |