Can't find what you need?

Development of Application-Database Interconnectivity

Development of Application-Database Interconnectivity



The customer is a Finnish company “3D Render”. They facilitate the decision-making process of actors in the construction industry through advanced visualization solutions and complete service packages built around them. Depending on a situation, visualization solutions might include pictures, animations or 3D real-time models.


The customer had a FLEX application which operates with data stored in M-Files vault. M-Files is an object oriented database, which supports nesting, inheritance and some other kinds of relations between objects.

ScienceSoft task was to establish seamless application-database interconnectivity between FLEX and Vault data. The main requirements included:

Flexibility. Framework should be flexible, developer friendly and easy to understand. Complying with this requirement ensure minimal efforts for system support and modification.

Security. FLEX Client – Data transfer and all communications between Client and Vault should be secured by running the following conditions.

Content Encryption. Data leaks during message interception must be avoided.

Authentication. Client part of the application should clearly identify validity of the response, coming from the right server. It would eliminate message interception.

Data Integrity. Received data must be full and unchanged during message transmit.

Confidentiality. Information should be accessible only to the authorized users.

Groups and Roles security model. Users' rights management in the system should be clearly defined.

Performance. The system should support work of multiple users at the same time. Thus, performance, i.e. response time, memory usage, server side CPU usage etc. is very important for system to operate quickly and correctly.


After the analysis of the requirements, ScienceSoft team proposed the following solution:

FLEXVault interoperability is organized via WCF Service, which is connected to Vault and provides a set of methods required by FLEX client.

WS Security is used to satisfy security requirements. It provides efficient flexibility to process all customer’s requirements. X.509 certificates ensure that server is valid. UserName authentication is used to ensure client validity. It means that Username and Password have to be included in each request to Server.

A flexible ACL-Records model is implemented to manage user permissions to access the data. Groups and Roles security model simplifies access management.

During the implementation of items listed above, we encountered several issues. The most serious were the following:

  • According to Flex issue tracking system, FLEX Builder cannot generate a proxy if WCF service uses certificates to authenticate itself. To tackle this issue ScienceSoft team generated proxy with certificates support.
  • MFPAPI, a managed API for working with M-Files Vault, has some serious architectural faults that prevented implementation of some features demanded by the customer. As we discovered during the development process, there is no API for cache control. This means that cached data loaded once do not reload until the connection is closed. Reopening connection, in turn, is a time consuming operation. The approach without cache control was not applicable, because Vault could be edited from M-Files viewer provided with M-Files System and long object's lifetime could provide inconsistency between Data in Vault and data in MFPAPI cache. We investigated MFPAPI caching mechanism and proposed a new approach. We designed a new flexible API. Implementation of this API will be the next step of our collaboration with the customer.


ScienceSoft has successfully implemented the required functionality and proposed next steps in collaboration. The customer received a framework, which provided interoperability of FLEX and M-Files Vault according all requested features.

Technologies and Tools

C#, WCF, M-Files, XML, FLEX, .NET.

Need help with a similar project?

Drop us a line, and our rep will contact you within 30 minutes to arrange an initial discussion.

More Case Studies