从《时序计算通用模型接口 OpenMI开发技术及应用》一书中的第一章的对接口要求描述,我想到InfoSphere streams的流数据处理模式刚好可以满足这种模型/数据之间对接的需求。

   

  如上图1-2和1-4所示的模型连接情景,可将之以InfoSphere Streams中的设计模式处理。从需求的角度来说,如书中1.2.4所述,OpenMI定义的标准接口具有三方面的功能(需求).(i)模型定义:允许其他连接组件找到这个模型模拟量值(quantities)交换的数据及模拟量所在的位置;(ii)配置:为了特定目标连接两个模型时可定义所交换的内容(iii)运行时操作:使得模型在运行时能接收或提供数据。第一个需求中我理解为从平台构建模型并将模型纳入运行维护范围的需求,如InfoSphere中构建Operator一般;第二个需求要求定制模型间交换的内容,这就相当于InfoSphere中的Operator之间的数据连接,可以定制其数据类型、数据连接的走向(数据两端是哪两个operator);第三个需求我理解为模型间可以运行时交换数据,并可与人进行一定程度的交互,在InfoSphere中就体现为流数据应用在SPS中运行的状态,操作者可以从SPS中控制整个SPA的运行状态以及运行方式。

  讨论完功能需求相似的程度,接下来就是设计模式的问题:

  首先就是标准化的问题,如SPL一般,我们设计数据类型,将模型(包括其计算内核【可能由不同语言和不同人开发编写】、作为adapter的中间件【负责将计算内核的接口重新包装为平台接口】)看作是SPL中的operator,模型间的联系看作是operator之间的输入输出端口【包括将计算内核的数据转化为平台数据格式的模块】,这些都需要提供标准接口才能做到类似SPS的管理系统的集中管理和分析以及它们之间的通信。

  这样一来,对于构建各个模型间的协同关系并使其共同工作的设计难度会有所下降,甚至可以支持如InfoSphere中Streams Studio的图形化设计和图形化topology反馈和运行状况监控,应该也满足项目的需求。开发人员所需要做的就是“自己定制operator“(【可以用已有的类似SPL的语言进行简单的定制,也可以使用别的语言实现内核,并如同InfoSphere支持的C++编写原生Operator一样进行开发和包装】)或是使用我们设计的Toolkit里的标准Operator【即已经包装好的模型】进行模型构建、连接。

  而在总体的平台监控上我们亦可以借鉴SPS的工作方式,和其模块设计方式,监控方式等。

  发现这个水利工程其实很多应用需求和流数据的情景很相像,如需要历史数据分析时我们还可以引入Window的概念等。

  其实也不知道这样的想法的可行性如何,毕竟InfoSphere Streams是IBM的大牛们进过几年的开发才有的产品。

--------------------------------------------------------------------------------------------------------------

  请务必保留本文出处 http://www.cnblogs.com/lanyun0520/p/5254393.html

联系InfoSphere Streams和OpenMI时对水利模型联系的设计模式的一些考虑的更多相关文章

  1. servlet的生命周期与运行时的线程模型

    第 14 章 生命周期 注意 讲一下servlet的生命周期与运行时的线程模型,对了解servlet的运行原理有所帮助,这样才能避免一些有冲突的设计. 如果你不满足以下任一条件,请继续阅读,否则请跳过 ...

  2. iOS彩票项目--第七天,初次读取json数据、KVC转模型技巧、运行时字典转模型以及初步对显示网页的操作并且跟踪标签

    一.初次读取json数据 二.KVC转模型技巧,这里的技巧主要解决的是字典中的key 与 模型中有的属性对应不起来的时候 的解决办法 <方法1> <方法2>运行时字典转模型,运 ...

  3. vs2013在使用ef6时,创建模型向导过程中,四种模型方式缺少2种

    下载eftool,并安装 https://download.microsoft.com/download/2/C/F/2CF7AFAB-4068-4DAB-88C6-CEFD770FAECD/EFTo ...

  4. Spring MVC 返回视图时添加的模型数据------POJO

    POJO(Plain Old Java Objects)简单的Java对象,实际就是普通JavaBeans,是为了避免和EJB混淆所创造的简称. 使用POJO名称是为了避免和 EJB混淆起来, 而且简 ...

  5. 运行SPL Streams debugger(sdb)的两种方法

    You can use the SPL Streams Debugger in InfoSphere® Streams Studio to help you debug your SPL applic ...

  6. One SQL to Rule Them All – an Efficient and Syntactically Idiomatic Approach to Management of Streams and Tables(中英双语)

    文章标题 One SQL to Rule Them All – an Efficient and Syntactically Idiomatic Approach to Management of S ...

  7. Streams Studio配置Build options

    Defining build options You can change the build options of the internal builder for building an SPL ...

  8. Java 9 揭秘(17. Reactive Streams)

    Tips 做一个终身学习的人. 在本章中,主要介绍以下内容: 什么是流(stream) 响应式流(Reactive Streams)的倡议是什么,以及规范和Java API 响应式流在JDK 中的AP ...

  9. 简介Kafka Streams

    本文从以下几个方面介绍Kafka Streams: 一. Kafka Streams 背景 二. Kafka Streams 架构 三. Kafka Streams 并行模型 四. Kafka Str ...

随机推荐

  1. css系列教程--overflow min/maxheight content

    outline:这只轮廓样式,与border类似.写法参考border. overflow/overflow-x/overflow-y:visible/hidden/scroll/auto/no-di ...

  2. Zepto.js touch模块深入分析 解决手机点击事件

    源码: // Zepto.js // (c) 2010-2015 Thomas Fuchs // Zepto.js may be freely distributed under the MIT li ...

  3. jQuery Tags Input Plugin 插件的使用

    一个jquery开发的标签功能加强插件,可以生成或删除标签,还能对输入重复标签进行检查,和JQuery autocomplete插件配合实现自动完成功能. 官网:http://xoxco.com/pr ...

  4. Oracle的分页查询语句优化

    Oracle的分页查询语句基本上可以按照本文给出的格式来进行套用. (一)   分页查询格式: SELECT * FROM  ( SELECT A.*, ROWNUM RN  FROM (SELECT ...

  5. 自定义代码块移植,将Xcode中自定义的代码块导出发送到另一台mac

    在终端输入 cd /users/xiefan/library/developer/xcode/userdata/codeSnippets xiefan是我的用户名,记得换成自己的用户名 进入CodeS ...

  6. Linux修改Shell命令提示符及颜色

    Linux修改Shell命令提示符及颜色 1. Linux登录过程中加载配置文件顺序: /etc/profile → /etc/profile.d/*.sh → ~/.bash_profile → ~ ...

  7. [Linked List]Linked List Cycle,Linked List Cycle II

    一.Linked List Cycle Total Accepted: 85115 Total Submissions: 232388 Difficulty: Medium Given a linke ...

  8. C语言_double_精度的谜团

    double-long long 和0的比较,double和double之间比较

  9. bootstrap简章

    系统整理一遍bootstrap 的东西 1/  设置页面为H5文档类型 <!DOCTYPE html> <html lang="zh-CN"> ... &l ...

  10. PYthon成长之路第一篇(1)__字符串初识

    今天一起走进python的代码世界,一起领悟python的魅力 在很多学习python的书中都会以 print  “Hello,world!” 这样的而一个程序为开始,那么其中的 hello,worl ...