Um Middleware em C++ : modernizando a interface de modelos de cultivos codificados em Fortran - Vargas, Felipe de (2017)
Crop models have been used with great success worldwide to increase farm incomes and reduce production costs and the human resources needed to analyze and make complex decisions. But it is becoming increasingly difficult to expand and improve these models because of their complexity, making it a hard and expensive task. Most of the models are / have been developed in Fortran, a language that has limitations on integration in interoperability, data visualization and coupling of models. The DSSAT-CSM is a decision support system developed to facilitate the application of crop models in a systematic approach in agronomic research composed of more than 42 models. This work aims to create two middlewares in C ++ for models developed in Fortran. A middleware that allows the complete removal of dependencies with text files, both for input and output, allowing integration of Fortran with other programming languages. To prove the efficiency of the middleware, an R package called RsimpleCrop was developed using the generic model called SimpleCrop. OR is responsible for performing the acquisition of the input data and passes it as parameter to the middleware, which will keep the data memory for use of the model, after the completion of the execution, the model returns to the middleware the results that will be returned For the package allowing the user to manipulate them as R objects. The other middleware developed has the goal of managing the input data by storing them in memory, through generic functions that are configured at runtime and the outputs generated by the DSSAT-CSM, allowing the user to format outputs at runtime, removing all manipulation of Fortran files, thereby reducing the amount of system calls to manipulate files. It also allows new input and output formats, such as Json, CSV, among others. It also allows the integration of DSSAT-CSM with information systems, other forms of visualization of the data, facilitate the coupling with other models