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
    |-- EmployeeId

  • Use annotation for mark field's identity

Architecture : Describable Command and Identifiable Data的更多相关文章

  1. Applying the Kappa architecture in the telco industry

    https://www.oreilly.com/ideas/applying-the-kappa-architecture-in-the-telco-industry Kappa architectu ...

  2. Chromium Graphics: Compositor Thread Architecture

    Compositor Thread Architecture <jamesr, enne, vangelis, nduca> @chromium.org Goals The main re ...

  3. Cross-Domain Security For Data Vault

    Cross-domain security for data vault is described. At least one database is accessible from a plural ...

  4. Retrieving data from a server

    A system includes a server and a controller embedded in a device. Both the server and the embedded c ...

  5. 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 ...

  6. arcmap Command

    The information in this document is useful if you are trying to programmatically find a built-in com ...

  7. 翻译-In-Stream Big Data Processing 流式大数据处理

    相当长一段时间以来,大数据社区已经普遍认识到了批量数据处理的不足.很多应用都对实时查询和流式处理产生了迫切需求.最近几年,在这个理念的推动下,催生出了一系列解决方案,Twitter Storm,Yah ...

  8. MYSQL报Fatal error encountered during command execution.错误的解决方法

    {MySql.Data.MySqlClient.MySqlException (0x80004005): Fatal error encountered during command executio ...

  9. Basic command and advice for memcached

    Storage Commands set Most common command. Store this data, possibly overwriting any existing data. N ...

随机推荐

  1. 《网络》:设置三个密码:通过console口连接设备,进入特权模式,登录Telnet

    软件:Cisco Packet Tracer Instructor 软件下载链接在上一篇文章中. 内容:通过设置三个密码,熟悉采用Telnet方式配置交换机的方法. 细节说明:计算机的IP地址和交换机 ...

  2. python生成单词壁纸

    1.首先上结果: 其实就是一段简单的代码.加上英语单词表加上几张背景图生成许多类似的图片再设置成桌面背景,十分钟一换.有心的人闲的时候随手就能换换桌面背背单词.最不济也能混个脸熟. 3.上代码 #-* ...

  3. JS 实现MVC的写法

    案例:当select 下拉选择框值变化时,显示其值(不是文本) 常规写法 <h3>JavaScript no MVC</h3>  <div>   <selec ...

  4. YML(2)yml 语法

    YAML 语法 来源:yaml 这个页面提供一个正确的 YAML 语法的基本概述, 它被用来描述一个 playbooks(我们的配置管理语言). 我们使用 YAML 是因为它像 XML 或 JSON ...

  5. OAuth2.0学习(1-9)新浪开放平台微博认证-web应用授权(授权码方式)

    1. 引导需要授权的用户到如下地址: URL 1 https://api.weibo.com/oauth2/authorize?client_id=YOUR_CLIENT_ID&respons ...

  6. jvascript变量提升

    javascript变量提升 首先我们来看两个例子 var a = 1; function test(){ if(!a) var a = 10 alert(a) } test() //结果是10 是不 ...

  7. javascript中的事件类型

    表单事件 submit reset click change focus blur input window事件 load DomContentLoaded readyStatechange unlo ...

  8. 3.3.4 配置Tomcat的<Context>元素 (转)

    本章3.3.2节已经介绍了在Tomcat中发布JavaWeb应用的最快捷的方式,即只需把JavaWeb应用的所有文件复制到<CATALINA_HOME>/webapps目录下即可,Tomc ...

  9. MyBatis(1)——快速入门

    MyBatis 简介 MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为 ...

  10. CentOS在线安装JDK

    一.通过yum命令在线安装jdk 1.查看云端目前支持安装的jdk版本 [root@localhost ~]# yum search java|grep jdk ldapjdk-javadoc.noa ...