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 ...
随机推荐
- Linq GroupJoin
static void Main(string[] args) { List<Person> persons = new List<Person> { }, }, }; Lis ...
- python flask框架 数据库的使用
#coding:utf8 from flask import Flask from flask_sqlalchemy import SQLAlchemy app = Flask(__name__) # ...
- RTKLIB源码解析(一)——单点定位(pntpos.c)
RTKLIB源码解析(一)--单点定位(pntpos.c) 标签: GNSS RTKLIB 单点定位 [TOC] pntpos int pntpos (const obsd_t *obs, int n ...
- 图片处理之 Base64
网页上的图片资源如果采用 http 形式的 url 的话都会额外发送一次请求,网页发送的 http 请求次数越多,会造成页面加载速度越慢.而采用Base64格式的编码,将图片转化为字符串后,图片文件会 ...
- cuda小白基础教程
一直很想做cuda-GPU编程,很早就将CUDA9.0安装好了,后面就没怎么管它,忙别的去了.敲黑板,划重点,我科研还是很努力的,可是很多人看不见罢了.之前一直在使用粒子方法进行流体模拟,计算时间极其 ...
- [LeetCode] Image Smoother 图片平滑器
Given a 2D integer matrix M representing the gray scale of an image, you need to design a smoother t ...
- 解决:GitHub 远程端添加了 README.md 文件后,本地 push 代码时出现错误
一.错误描述 To github.com:compassblog/PythonExercise.git ! [rejected] master -> master (fetch first) e ...
- servlet与ajax数据交换(json格式)
JSON数据格式: JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式. 易于人阅读和编写.同时也易于机器解析和生成. 它基于的一个子集. JSON采用完全独 ...
- [JLOI 2015]装备购买
Description 脸哥最近在玩一款神奇的游戏,这个游戏里有 n 件装备,每件装备有 m 个属性,用向量zi(aj ,.....,am) 表示 (1 <= i <= n; 1 < ...
- [NOI 2009]变换序列
Description 题库链接 对于 \(N\) 个整数 \(0, 1, \cdots, N-1\) ,一个变换序列 \(T\) 可以将 \(i\) 变成 \(T_i\) ,其中 \(T_i \in ...