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. 算法题丨3Sum

    描述 Given an array S of n integers, are there elements a, b, c in S such that a + b + c = 0? Find all ...

  2. springmvc的ModelAttribute注解

    先看一个没有使用@ModelAttribute的Controller方法. @RequestMapping("/save") public String save(User use ...

  3. python入门:python包管理工具pip的安装

    pip 是一个安装和管理 Python 包的工具 , 是 easy_install 的一个替换品. distribute是setuptools的取代(Setuptools包后期不再维护了),pip是e ...

  4. C# Bootstrap table之 分页

    效果如图: 一.声明talbe <div class="container"> <table id="table" class="t ...

  5. Intent 的两种主要使用方法

    首先建立两个activity界面 Activity1如下 public class MainActivity extends AppCompatActivity { private Button bt ...

  6. Html5 监听拦截Android返回键方法详解

    浏览器窗口有一个history对象,用来保存浏览历史. 如果当前窗口先后访问了三个网址,那么history对象就包括三项,history.length属性等于3. history对象提供了一系列方法, ...

  7. eclipse点击包(package)时报错,安装hibernate后点击包报错org/eclipse/jpt/common/utility/exception/ExceptionHandler

    错误描述: 当我们点击包名时,出现如下错误提示.An error has occurred. See error log for more details.org/eclipse/jpt/common ...

  8. Java面试题2--数据类型

    1. Java的数据类型? 2. Java的封装类型? 3. 基本类型和封装类型的区别? 基本类型只能按值传递,而对应的封装类是按引用传递的. 基本类型是在堆栈上创建的,而所有的对象类型都是在堆上创建 ...

  9. 用ECMAScript4 ( ActionScript3) 实现Unity的热更新

    unity热更新是一个经久不衰的话题.除了最常见的lua之外,还有如JSBinding,C#等等.这里介绍一个使用ECMAScript4进行热更新的方案.它吸收了各家的优点,特色很鲜明. 项目地址: ...

  10. kafka知识体系

    最近一直在整理kafka相关资料,以构建自己的知识体系. 主要分为五大方面: Kafka设计与原理分析 Kafka配置分析 Kafka运维手册 Kafka编程开发 kafka源码分析