首先: 我是EMF世界的新手。我完成了本书“Model driven software engineering in practice”,现在我想在项目中应用它:
我“元建模”我的项目并实现了一些OCL约束,因此它就像一个语义数据库模式。
我不明白的是,我如何实现业务逻辑?这是否可以通过OCL约束和模型转换实现?如果我用henshin实现一切,那将是非常过分的。
我想将我的模型用作“后端”。客户端可以通过REST访问模型的某些部分。我有什么可能做到这一点?
谢谢你, Laurens的
答案 0 :(得分:1)
如果您使用的是EMF,则可能需要使用Eclipse OCL或Dresden OCL。
(作为主要的Eclipse OCL作者,我可以回答Eclipse OCL。也许德累斯顿OCL作者可能会给你一个替代答案。)
Eclipse OCL提供了一个基于Xtext的OCLinEcore编辑器,允许您将OCL作为EA注释嵌入到Ecore模型中,从而实现业务逻辑。您也可以选择将嵌入式OCL genmodelled作为直接Java代码而不是解释为OCL。请参阅Eclipse OCL发行版附带的OCL文档中的OCL教程。
或者,您可以使用基于Xtext的完整OCL编辑器将OCL维护为元模型的补充文档。目前没有针对此方法生成直接Java代码,您需要安排将Complete OCL文档导入到正在使用的应用程序中。
我是M2M的热心支持者所以我建议使用M2M,Henshin,如果这是你最喜欢的,定义你的转换只需要OCL或Java来充实一些每类查询。 EMF提供了良好的隔离,因此EMF应用程序可以基本上不了解用于实现EOperations的技术。
答案 1 :(得分:0)
如前所述,OCLinEcore是基于Xtext的。 Xtext现在完全支持语言服务器协议,这意味着您可以将模型保存在服务器上并通过REST,Json-RPC甚至websockets与之交互。 来自xtext的人最近想出了Sprotty,这是一个
基于网络的图表框架
这对您来说可能很有意思,因为它演示了如何使用model server
。 Here也是关于sprotty和Xtext LSP架构的一些幻灯片。 Sprotty的目标是浏览器中的图表支持,但我认为服务器架构可能会让您入门,即使您不需要前端或编辑器。
答案 2 :(得分:0)
您可能需要查看我们的EMF Rest工具https://som-research.uoc.edu/tools/emf-rest/
我们暂时没有更新它,但它可以作为你可以构建的一个例子