Real Time Platform
ODOS (Operational Distributed Object System) is an object oriented middleware and development platform for real-time data-centric distributed systems.
With ODOS you can build entire systems composed by various micro-systems and services. It is fast, lightweight and flexible, built entirely by Missionware using plain .NET technology stack without any external/3rd party dependency. ODOS promotes a domain oriented development approach and clean architecture. It provides:
- Well structured object modeling
- Context-aware object graph transactions and event dissemination
- Service orchestration
- High level components for rich User Interfaces
- Components for easy 3rd party system integration
What applications can be built with ODOS?
With ODOS you can build any application, from the next generation internet applications to large enterprise wide systems with advanced human machine interfaces and interactions with machines and AI. By mastering ODOS platform someone is ready to build even the most demanding applications. ODOS will give you the jump start you need to speed up time-to-market. However, even though you can build almost anything, applications that fully exploit ODOS features are the ones that need large data in real time at any system node; applications that require advanced visualizations and integrations with 3rd party systems.
Real time in memory transactions and synchronization
ODOS at its core is a real time in memory transactional engine and push-based synchronization system. The system performs in memory transactions with optimistic locking at the server level and immediate synchronization of data to the subscribed clients’ cache. Using online transaction processing a system module can continuously process any new data change and perform in real time any needed calculation or algorithm execution. This unique feature can provide calculation of metadata, such as risk factors and alerts, analytics processing, notification generation, command execution, etc. Additionally data filtering can provide fine grained design on the exact entities and changes that are synchronized to the clients.
With ODOS, it is easy to build a multi-service / multi-agent architecture to isolate the system components into different processes, in the same or in separate machines, that perform separated tasks improving modularity and making the application easier to understand, develop and test. These services are orchestrated by the platform.
Domain Driven Design
ODOS is built on top of the concepts and best practices of Domain Driven Design so as to build a conceptual object oriented model (a ubiquitous language/vocabulary between engineers and domain experts) that addresses a particular domain problem in an agile and evolving way. It also provides domain integrity schema rules such as mandatory, reverse reference association, cascaded deletion/nullification, composition child and other. It also provides data validation rules. Additionally custom integrity and data validation rules, as well as special business rules, can be easily implemented and plugged into the system.
ODOS contains an extensible integration engine (GEE – Gateway Extensibility Engine) to support rapid and robust 3rd party system integration. By providing easy integration ODOS can be used for data integration and fusion at the entity and field level. ODOS supports integration by polling requests as well as by communicating with push-based services. We have already built ready to use gateways for industry standard protocols, such as OPC and SNMP. ODOS can be used to integrate with any data source; Web Services and APIs, devices and sensors, 3rd party SDKs, standard protocols (Modbus, MQTT, AMQP, etc.) in a structured object oriented way. We have used GEE to integrate with SCADA, VMS and other high level operational systems.
Reactive Design/Event Sourcing
ODOS is reactive by design, meaning that the server continuously sends events and changes to the connected clients and agents, enabling reactive application development. The modules can subscribe to server events and perform real time visualizations (and animations), data processing and reactions to changes. Additionally, by using OOQL (Object Oriented Query Language), one can build live collections and react on events on these.
ODOS provides an advanced and extensible UI binding engine so as 3rd party rendering and visualizations libraries can be easily plugged providing real time visualization. We have already built bindings for various libraries, such as 2D diagramming and charts, form based data presentations components, GIS engine and even with a 3D game engine so as to build 3D worlds, simulations and real time 3D representations.
Rapid Application Development
ODOS has been designed and built with the ease of development in mind providing a robust infrastructure and multiple components so as to minimize the development effort of building distributed, multi-service, multi-user applications and let the user focus on Business Logic and User Interface. The programming paradigm is very easy to learn because it follows the standard concepts of object oriented programming and the .NET framework. The interaction with the platform is minimal. The platform provides also ready to use graphical components for fast development of rich data interfaces.
Real time business intelligence
By providing online transaction processing, enterprise application/ information integration and advanced visualizations a user can build real time business intelligence applications tailor made for his needs.