联系InfoSphere Streams和OpenMI时对水利模型联系的设计模式的一些考虑
从《时序计算通用模型接口 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时对水利模型联系的设计模式的一些考虑的更多相关文章
- servlet的生命周期与运行时的线程模型
第 14 章 生命周期 注意 讲一下servlet的生命周期与运行时的线程模型,对了解servlet的运行原理有所帮助,这样才能避免一些有冲突的设计. 如果你不满足以下任一条件,请继续阅读,否则请跳过 ...
- iOS彩票项目--第七天,初次读取json数据、KVC转模型技巧、运行时字典转模型以及初步对显示网页的操作并且跟踪标签
一.初次读取json数据 二.KVC转模型技巧,这里的技巧主要解决的是字典中的key 与 模型中有的属性对应不起来的时候 的解决办法 <方法1> <方法2>运行时字典转模型,运 ...
- vs2013在使用ef6时,创建模型向导过程中,四种模型方式缺少2种
下载eftool,并安装 https://download.microsoft.com/download/2/C/F/2CF7AFAB-4068-4DAB-88C6-CEFD770FAECD/EFTo ...
- Spring MVC 返回视图时添加的模型数据------POJO
POJO(Plain Old Java Objects)简单的Java对象,实际就是普通JavaBeans,是为了避免和EJB混淆所创造的简称. 使用POJO名称是为了避免和 EJB混淆起来, 而且简 ...
- 运行SPL Streams debugger(sdb)的两种方法
You can use the SPL Streams Debugger in InfoSphere® Streams Studio to help you debug your SPL applic ...
- 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 ...
- Streams Studio配置Build options
Defining build options You can change the build options of the internal builder for building an SPL ...
- Java 9 揭秘(17. Reactive Streams)
Tips 做一个终身学习的人. 在本章中,主要介绍以下内容: 什么是流(stream) 响应式流(Reactive Streams)的倡议是什么,以及规范和Java API 响应式流在JDK 中的AP ...
- 简介Kafka Streams
本文从以下几个方面介绍Kafka Streams: 一. Kafka Streams 背景 二. Kafka Streams 架构 三. Kafka Streams 并行模型 四. Kafka Str ...
随机推荐
- Hadoop 安装 (4) SSH无密码验证配置
验证SSH 和 RSYNC 已经安装好了 Master 生成密码对以及对于 Slave 的无密码登录. 见:http://www.cnblogs.com/xia520pi/archive/2012/0 ...
- ubuntu下nvm,node以及npm的安装与使用
一:安装nvm 首先下载nvm,这里我们需要使用git,如果没有安装git,可以使用 sudo apt-get install git 来安装 git clone https://github.com ...
- Oracle如何禁止并行
PURPOSE ------- To explain how to disable Parallel Execution on Session/System level SCOPE &am ...
- "Classifying plankton with deep neural networks" notes
cross entropy loss is not quite the same as optimizing classification accuracy. Althougth the two ar ...
- action接收到来自jsp页面的请求时出现中文乱码问题处理方法
写JSP程序时,在Servlet中取请求参数时出现了乱码,当然,这种乱码问题再简单不过了.由于在JSP中使用了GBK作用页面的编码,那么提交的中文信息自然也会被按着GBK进行编码,为%xx格式的GBK ...
- System V 机制(转)
引言 UNIX 内核管理的进程自主地操作,从而产生更稳定的系统.然而,每个开发人员最终都会遇到这样的情况,即其中一组进程需要与另一组进程通信,也许是为了交换数据或发送命令.这种通信称为进程间通信(In ...
- 提交(post)xml文件给指定url的2种方法
原文:提交(post)xml文件给指定url的2种方法 1 这段代码是在网上搜到的,拿来共享,项目正好要用到.其中的data你只需要传递一个xml字符串就可以 protected string ...
- ASP.NET缓存中Cache过期的三种策略
原文:ASP.NET缓存中Cache过期的三种策略 我们在页面上添加三个按钮并双击按钮创建事件处理方法,三个按钮使用不同的过期策略添加ASP.NET缓存. <asp:Button ID=&quo ...
- css案例学习之id要唯一
ID有两个的后果 <html> <head> <title>ID选择器</title> <style type="text/css&qu ...
- jQuery粘性跟随滚动条滚动的导航栏源代码下载
jQuery粘性跟随滚动条滚动的导航栏源代码下载 作者:网页模板 大小:0.005MB 点击次数:3494 发布时间:2014-03-07 12:55 分享到:0 特效介绍 jQuery粘性跟随滚动条 ...