Categories

Abonnement

Leave This Blank:Leave This Blank Too:Do Not Change This:

Your email:

Author

Malte Reißig

Hi, welcome to my blog. Usually i write about my work here as i am allowed to wonder about knowledge representation, information, language, visualization. Besides that i do offer various software and development related services (mikromedia.de). I like to dig through the history of personal computing, "design", methods of self-education and i could describe myself as a "programming Morozov" if that comparison wouldn't be ridiculously disproportional and presumptuous.

Nonetheless i do post stuff here which i would like to note down publicly and i do annotate my posts from (level 1) "taking all the vital left overs" up to "five course menus" (level 5) in the hope to save you some time.

You are very welcome to subscribe for some (rare) updates or if you want to get in touch with me online
@topmalte.

DeepaMehta 4 Plugin Development: Apps in a network

A vital left-over: I don’t see that many reasons why one who can understand basic english, has access to a PC, has access to the web and time for engaging in some trial & error could not design, install and ship a situational app right now. Here are four thoughts for conceiving new networked apps.

1. Think of your application and its functionality as lots of small services integrated with many others in a network. Integrating other plugins services is as easy as injecting them into your Plugin implementation. Thus, try to build upon (and, if necessary, challenge and contribute to) existing semantics within the network of plugins wherever possible.

2. Likewise so, split up your application in more than one plugin, divide them by feature set or architecture level (client, server). Distinct plugins here mean variability and thus we actively increase the possibilities for everyone in the community.

3. Start think agile when writing new applications with type definitions. It’s a “data tree” ready to grow and ready to change in the future but now to plant. Structures and data will most probably evolve and change, may it be through the users themselves or through your new conception of the application. The migration machinery of deepamehta4 supports this at any time, don’t worry to much in advance.

4. The standard dm4-webclient allows you and your users to interactively and draft such “data trees”. You can use the dm4-webclient to share, edit and compose the terms your application is made. Make sure your users have heard of this type-building language as it is the same for plugin developers and users and may facilitate communications in your project.

It is fair to say that the type building vocabulary in deepamehta4, along with its basic terms, graphics and UI, were conceived to bridge and challenge the gap between software developers (as designers) and users (as mainly design addressees). I know that many have tried this before but that doesn’t mean it’s not worth trying to go further here in 2015. Lots of people work with the web and may have already built an app. So, who knows if with deepamehta4 things and ideas get together more easily. By today, except maybe for software security, i don’t see many reasons left why users could not start trying to design, install and ship their own situational apps based on DeepaMehta 4 or dmx. Read on to learn how to make use of existing plugins and type definitions in your software application.

Re-using type definitions and building networked apps

Re-using existing type definition from available modules fosters integrated data. To build up a semantic network of applications across your personal destop/maptop not only identifiers (and identifying keys in your data model) are important but also the re-use of existing type definitions. Some examples for most commonly used types by applications are

All of these plugins listed here are part of the DM 4 Standard Distribution and already available. For integrating your application with apps, joining concepts of various plugins is essential.

To be able to join (or let us say: re-use, reference) other type definitions in your application you need to make sure to include the bundles-symbolic name first, and you do so in your plugin.properties file in a line like the following:

This configuration tells dm4-core (PluginManager) to make sure that the notes, tags and acl-plugin (those with these three bundle-identifiers) are loaded and available in the system when your plugins migration is run. So, this line is a pre-requisite to reference other plugins types in one of your imperative or declarative migration.