To get straight to the point: 1.5 will be a developers release. We intent to move to 2.0 as soon as possible after 1.5. The reason we do release 1.5 is because the internals of BIMserver have drastically changed. When you are a BIMserver developer you should definitely have a look at this.
There are two drastic changes we made in the upcoming 1.5 release: lower EMF usage and using Maven for plugins.
From the beginning we used EMF as the core of BIMserver. EMF is what made BIMserver. It was the technology that made it possible to have the network IFC STEP structure on one side and database objects on the other. Back in 2008 when we started this was a revolution. EMF brought (and brings) flexibility for developers. The metamodel of IFC lowered the threshold for modern developers to develop applications with IFC fast and reliable. The use of this EMF technology also had some downsides. The most notorious one it the high use of RAM memory of the server it is running on. The main goal of BIMserver was and is to innovate the industry by providing a stable and reliable base to develop on. We always felt EMF was an important asset to provide developers with a flexible environment. However, in recent releases the interface API of BIMserver became more flexible, the client side libraries more professional and the internal structure of BIMserver more plugin based. BIMserver developers didn’t use the server side EMF as much anymore as they used to do and the burden of high memory requirements started to weigh on users. This is why we decided to phase out the EMF. This is done in parallel with an increased plugin infrastructure (more on that in the next paragraph). In 1.5 there will be new serializers that directly get data from the database, without keeping it in memory using EMF. The old serializers will also still be in there. Same goas for deserializers and some plugins like ‘basic merging’. In the 2.0 release EMF will be out of (server side) BIMserver completely. The 1.5 release is a release to show developers how the can (and should) change their plugins.
Maven for plugins
As you know, BIMserver is a plugin based framework. Basically every features is a tweakable plugin. You should be able to run BIMserver without any plugin, or just a minimal set. Plugins have their own release cycle and numbering. Often plugin updates are released more often than BIMserver releases. Since the number of plugins and their releases has always been ‘uncluttered’ the process of updating plugins was most efficient by copying a new file into a directory. However, in recent time the number of plugins and releases has drastically increased. This calls for a new plugin infrastructure with higher requirements. We chose to use the Maven framework for this. In the 1.5 release all plugins will be available in Maven Central. When you download the BIMserver release there will be no plugins in there. During the setup process you can choose to install some basic plugins from the online repository. After installation, the full list of available plugins can be listed from Maven central and BIMserver admins can install them by simply clicking a button in a running BIMserver. Maven central keeps track of compatibility between plugin releases and BIMserver releases to make sure you don’t install an incompatible plugin. An extra setting in BIMserver makes it possible to have untested plugins also appear in the list. We are very enthusiastic about this new framework and encourage plugin developers to have a look at the 1.5 release and migrate their plugins to Maven as well. The BIMserver development team has resources available to help and support developers with this migration process.
All in all there are some big changes coming ahead. As we made clear, the 1.5 is mainly a developers release to migrate to 2.0. This doesn’t mean you can’t use it. The performance increase of 1.5 is huge and we are sure many of you will like it a lot. At this moment we are starting to feel comfortable with the development and are slowly moving towards testing. As you know we are proud on our enterprise stability testing and won’t release until we have a clear picture of the stability of the 1.5 release. We can’t wait to release it and get your feedback!
Some screenshots of the (in development) plugin pages: