Framework Enabling the Interoperability of FLEX and M-Files Vault

Framework Enabling the Interoperability of FLEX and M-Files Vault

Industry
Construction
Technologies
.NET

Summary

A Finnish company providing advanced visualization solutions for the construction industry had a FLEX application operating on data stored in an M-Files vault. INNERLUXES established seamless application-database interconnectivity between FLEX and the vault, building a flexible, secure framework that met all requested interoperability, security, data-integrity, and performance requirements.

About the Client

The Client is a Finnish company that facilitates decision-making for actors in the construction industry through advanced visualization solutions and complete service packages built around them. Depending on the situation, these solutions can include images, animations, or 3D real-time models.

The Challenge

The Client had a FLEX application operating on data stored in an M-Files vault. M-Files is an object-oriented database that supports nesting, inheritance, and other relations between objects. INNERLUXES's task was to establish seamless application-database interconnectivity between FLEX and the vault data. The main requirements included:

  • Flexibility. The framework should be flexible, developer-friendly, and easy to understand, ensuring minimal effort for support and modification.
  • Security. Data transfer and all communications between the FLEX client and the vault should be secured.
  • Content encryption. Data leaks during message interception must be avoided.
  • Authentication. The application should verify the validity of the response to ensure it comes from the correct server, preventing interception.
  • Data integrity. Received data must be complete and unchanged during transmission.
  • Confidentiality. Information should be accessible only to authorized users.
  • Groups and roles security model. Users' rights management should be clearly defined.
  • Performance. The system should support multiple concurrent users, so response time, memory usage, and server-side CPU usage are all important.

The Solution

After analyzing the requirements, INNERLUXES proposed the following solution:

FLEX–vault interoperability is organized via a WCF service connected to the vault, providing a set of methods required by the FLEX client. WS-Security is used to satisfy the security requirements: X.509 certificates ensure the server is valid, and username authentication ensures client validity — meaning a username and password must be included in each request. A flexible ACL-Records model manages user permissions, and a groups-and-roles security model simplifies access management.

During implementation, the team encountered several issues, the most serious being:

  • Per the FLEX issue-tracking system, FLEX Builder cannot generate a proxy when the WCF service uses certificates to authenticate itself. To tackle this, INNERLUXES generated a proxy with certificate support.
  • MFPAPI — a managed API for working with the M-Files vault — has architectural faults that prevented some requested features. There is no API for cache control, so data loaded once does not reload until the connection is closed, and reopening the connection is time-consuming. Since the vault could be edited from the M-Files viewer, a long object lifetime could cause inconsistency between vault data and the MFPAPI cache. INNERLUXES investigated the MFPAPI caching mechanism and designed a new, flexible API — whose implementation was set as the next step of the collaboration.

The Results

  • INNERLUXES successfully implemented the required functionality and proposed next steps for the collaboration.
  • The Client received a framework that provided interoperability of FLEX and the M-Files vault according to all requested features.

Technologies and Tools

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