Oliver's ObjectScape

hauptseite | bilder | software | verschiedenes | über mich | kontakt


home | pictures | software | miscellaneous | about me | contact







   


development | articles | link collection | blog 


Open-Source Work




Janet




Janet (Java network) is a platform for distributed cooperative agents where agent load is balanced  automatically. It is written entirely in Java using RMI and XML. Janet consists of two layers. The first layer is called Janet.CAS  (Cooperative Agent System), which provides a platform for distributed agents serving  user-defined applications. The second layer is called Janet.ADÉ (Automatic Distributed  Execution). It is based on Janet.CAS and carries out automatic agent load balancing and agent  load sharing. Janet.CAS can be used as is without Janet.ADÉ. In this case agent load is not  balanced in the network.




Bits & Pieces





STIters

STIters is a little library that adds Smalltalk-style collection iterators to Kotlin. STIters was started as some little initial Kotlin programming exercise. Meanwhile it has become partially obsolete as Kotlin has its own standard library now named stdlib that provides many of the collection iterators found in STIters. Nevertheless, STIters contains some useful iterators in addition and fixes some problems with iterators in stdlib as included in the Kotlin plugin 0.1.2090 or earlier (see KT-1859).





Corporate Work




This section describes application-independent and company-independent tools or frameworks that were developed while employed as an internal employee. The rights of the respective software are therefore with the applicable employers. For that reason only general ideas are explained and no source code is provided.




Tuple-space oriented hierarchical calculation framework




A framework was developed for the calculation of LGDs (loss given defaults) for a bank as a general purpose framework for the calculation of business figures. This framework is not about number crunching but about decomposing extensive formulas into manageable parts as nodes in a tree. A typical application domain is calculation of business key figures (such as ratings, loss given defaults, expected losses, etc.) where often extensive formulas are evaluated while iterating over collections of inter-connected model objects. The framework defines an interface for calculation objects (which make up the nodes in the calculation tree) and for result objects. Result objects are stored in a result space that is conceptually similar to a Linda-style tuple space (but not distributed). The result object is only calculated if it cannot be found in the result space. Using this approach to decouple calculation objects and result objects, the order in which result objects are calculated by the calculation objects is arbitrary at compile-time leading to greater flexibility at development-time.





SAP-to-Java Mapping Framework





This framework is on top of SAP Java Connector (SAP JCo) that makes calling a SAP remote function module from Java using SAP JCo a lot less effortful and straight-forward. In the same way as hibernate is a high-level framework on top of a simple API such as JDBC, the SAP-to-Java Mapping Framework is a high-level framework on top of SAP JCo. It transparently carries out the assembly and disassembly between SAP records and Java objects using a declarative approach with XML mapping files (similar approach as with hibernate hbm.xml files).