Experience has shown us that traditional enterprise software is monolithic, static and extremely expensive to own. We believe there should be a new way of building, integrating, and maintaining software systems that is simpler, more flexible, more efficient, and more sustainable.
Our exclusive technology tackles the problem of expensive enterprise software head-on. Rather than skirting around the issue like everyone else does, and concentrating on things like programming techniques and agile methodologies, we take a radically different approach.
On the other hand, we realize that no matter how experienced and knowledgeable we are, we will never be able to build all the solutions ourselves. The only way to come up with solutions to all the problems is to bring the great minds of the world together to challenge each other intellectually and collectively people will innovate and create powerful solutions. What we can do is offer a unified, enabling platform that empowers, supports, and encourages a community of users to share their knowledge and creations that others can leverage to build new solutions.
As James Bertrand once said, “Once we rid ourselves of traditional thinking, we can get on with creating the future.”
Recall our discussion of glue code as pieces of software logic with tabs and holes. Now think of pieces of software logic with no tabs and holes, and yet they are still able to share data with one another. Unlike the puzzle pieces of traditional monolithic apps, our pieces are free to be deployed, individually or together, across threads, processes, servers, networks and clouds, and still work together seamlessly as one. Then consider the processing of data within applications. The glue code approach “sucks” data into the logic within each puzzle piece where it's only available to other puzzle pieces to which it is directly connected to, or as an API or web-service as a single access point. This is where our approach differs once again. We separate data from processing. We flow data “across” the logic that works on the data. The orchestration of where data flows is not constrained by where the logic is physically running. So when we create an application, we are really specifying what logic we need and how data flows between that logic.
We call our small, single-purpose programs “Xenodes”. Programming of Xenodes is done exactly as you code any other programs today, using your favourite tools, techniques and testing cycles, and open standards. The difference is now you can accomplish the same tasks by writing a lot less code. Don’t confuse Xenodes with the typical “adapters” or “connectors”, as a Xenode can be any independent program or service you can design and build. Now, a solution (which we call a "Xenoflow") is created by orchestrating Xenodes. The process of orchestrating Xenodes should not be confused with the “visual programming” that's common in integration and BPM tools. When you orchestrate Xenodes, you are simply specifying the data flows among Xenodes within your system. The business logic for handling data resides within each of the Xenodes. This design is what we call the "micronization" of software, and with it, software can work like lego and a true event-driven enterprise can then be realized.
Any Xenode that is created isopen sourced, and over time we expect users building Xenodes and Xenoflows to share them with the rest of the community so that within the library there will be apps and solutions for every task imaginable. We believe that once the culture of sharing and a global library of re-usable assets are established, the process of building and maintaining custom software will become simple, practical, and sustainable.
With this new paradigm, the current belief that "building custom software is time consuming and expensive to maintain" is no longer true!