Architecture : Describable Command and Identifiable Data
Architecture : Describable Command and Identifiable Data
Description
Terms
Command
A command is a function in a system.
Every command has input data and output data, and the system is able to know the schema of every command input data.- Describable Commands
That means:- System know what commands the system has.
- Commands are describable, the system know the format of input data of a command, and data format returned by the command.
- Identifiable Data
Every field in an input data or an output data is identifiable.
For example, in a system, there are departments and employee.
Data employee has a field department id which references an id of a department data.
Even the department id and employee id are an integers, i.e their data type are same, but the system understand:- department id is different with employee id.
- department id in the employee data is same thing of the department id in the department.
How is the system running
- Main page
We can image the main page like a search page, there is only an text input field provided.- Users can find all commands by input "*".
- Users can input some key words to narrow down candidate commands,
- At end, the user finds a specific command.
- Command pages
When a command is selected, the system will enter a new page denoted as a command page.- First system will get the schema information of input data of the command, and display some fields to get the user to input command arguments.
- The user input these argument and select execute
- The system will invoke the command, and display the return data
Command perception for return data
When the system get an return data, the system can find corresponding commands.
For example:
The system get a list of employee by invoking GetEmployee command, then system knows DeleteEmployee command should present because the DeleteEmployee command's input is an employee id which is provided in the employee list.Command perception for input data
If the GetEmployee command accept an department name as input to query, the system understands the GetDepartment command can help to input the field of department name as the GetDepartment returns department name.
Implementation considerations
Use infer
For example: var employeeId is an employee id. the name of parameter, field and property will help the system to infer the meaning.Use inheritance for different fields with same data type, especially id
For example, we define a class id, and classes DepartmentId and EmployeeId will inherits the class Id.
Id
|-- DepartmentId
|-- EmployeeIdUse annotation for mark field's identity
Architecture : Describable Command and Identifiable Data的更多相关文章
- Applying the Kappa architecture in the telco industry
https://www.oreilly.com/ideas/applying-the-kappa-architecture-in-the-telco-industry Kappa architectu ...
- Chromium Graphics: Compositor Thread Architecture
Compositor Thread Architecture <jamesr, enne, vangelis, nduca> @chromium.org Goals The main re ...
- Cross-Domain Security For Data Vault
Cross-domain security for data vault is described. At least one database is accessible from a plural ...
- Retrieving data from a server
A system includes a server and a controller embedded in a device. Both the server and the embedded c ...
- Recover data from reference electrode via EEGLab 用EEGLab恢复参考电极数据
The data of scanning reference electrode will not show initially. Here is a summary of recovering it ...
- arcmap Command
The information in this document is useful if you are trying to programmatically find a built-in com ...
- 翻译-In-Stream Big Data Processing 流式大数据处理
相当长一段时间以来,大数据社区已经普遍认识到了批量数据处理的不足.很多应用都对实时查询和流式处理产生了迫切需求.最近几年,在这个理念的推动下,催生出了一系列解决方案,Twitter Storm,Yah ...
- MYSQL报Fatal error encountered during command execution.错误的解决方法
{MySql.Data.MySqlClient.MySqlException (0x80004005): Fatal error encountered during command executio ...
- Basic command and advice for memcached
Storage Commands set Most common command. Store this data, possibly overwriting any existing data. N ...
随机推荐
- api-gateway实践(15)3.6JL分支和3.7并行改造需求
一.名称改为"API网关" --哪个地方的名称?二.开发者视图中,API网关显示两个视图. 1. 服务分类视图:支持按照业务分为多个类别,分类方式参照应用服务化的分类:人像比对.自 ...
- ELK学习总结(4-2)关于导入数据
用REST API的_bulk来批量插入,可以达到5到10w条每秒 把数据写进json文件,然后再通过批处理,执行文件插入数据: 1.先定义一定格式的json文件,文件不能过大,过大会报错 2.后用c ...
- 【Vue中的swiper轮播组件】
<template> <swiper :options="swiperOption" ref="mySwiper"> <!-- s ...
- 使用TortoiseSVN打Tag
参考了 https://blog.csdn.net/liuzx32/article/details/9123401. 值得注意的点是: 选择路径的时候,不要先点进去自己建好叶子节点路径再选择该路径,会 ...
- python Josnp(跨域)
python Josnp(跨域) 所谓的跨域就是进行不用域名内的请求,好比如说我在A域名想访问B域名的内容就是一种跨域的行为. 但是在我们浏览器端会有一个同源策略的设置,这个同源策略只对Ajax请求有 ...
- Windows10下的docker安装与入门 (二)使用docker引擎在容器中运行镜像
Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化.容器是完全使用沙箱机制,相互之间不会有任何 ...
- 小技巧-ASP.Net session保存在数据库服务器
引用博客:http://www.cnblogs.com/lykbk/archive/2013/01/13/hf576856868.html web Form 网页是基于HTTP的,它们没有状态, 这意 ...
- delphi 10.1 Berlin 中使用自带的 MD5 校验
uses System.Hash;//要引用这个单元哈 var Digest: TBytes; MD5: THashMD5; MD5Buf: TBytes; params: string; begin ...
- JavaWeb小项目(一)
总结一下前段时间,在学了JSP.Servlet.JavaBean后,配合Tomcat服务器加上MySQl数据库搭的第一个简单网站. 前前后后,在学习了以上说的这些概念知识后,还进一步熟悉了整个搭建的流 ...
- 设计APP时我们该怎么做
不得不承认,手机APP已经渗透到我们的生活中,根据数据统计,人们每天平均有3.9个小时是花费在手机APP的使用上的,可以预见,手机APP正在改变我们的生活.手机APP受到人们的欢迎,很多商家也看到了其 ...