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. 使用HTML5视频事件示例

    <!DOCTYPE html > <html > <head> <title>Video events example</title> &l ...

  2. maven多环境部署

    1.首先在maven的pom.xml文件中添加profiles标签,然后分别添加3个不同环境的profile, 本例中添加了dev.test.product三个环境,这个可以根据自己的需要添加和减少. ...

  3. RSA的公钥、私钥

    一.举个例子 1.发消息 用对方的公钥给对方发消息 2.发公告 发公告的时候,用自己的私钥形成签名! 二.加密和签名 RSA的公钥.私钥是互相对应的,RSA会生成两个密钥,你可以把任何一个用于公钥,然 ...

  4. Spring Security 入门(1-1)Spring Security是什么?

    1.Spring Security是什么? Spring Security 是一个安全框架,前身是 Acegi Security , 能够为 Spring企业应用系统提供声明式的安全访问控制. Spr ...

  5. SpringCloud的配置管理:Spring Cloud Config

    演示如何使用ConfigServer提供统一的参数配置服务 ###################################################################一.概 ...

  6. asp.net(C#)实现功能强大的时间日期处理类完整实例

    作者:smartsmile2012 字体:[增加 减小] 类型:转载 时间:2016-06-30我要评论 这篇文章主要介绍了asp.net(C#)实现功能强大的时间日期处理类,封装了针对日期与时间的各 ...

  7. R语言学习 第九篇:plyr包

    在数据分析中,整理数据的本质可以归纳为:对数据进行分割(Split),然后应用(Apply)某些处理函数,最后将结果重新组合(Combine)成所需的格式返回,简单描述为:Split - Apply ...

  8. idea中使用svn,忽略本地修改的指定的文件

    1.打开version control 2.可以查看目前忽略的文件 3.配置要忽略的文件 4.可以用通配符忽略匹配的文件 还有第二种方法,那就是: 在svn提交的界面,如果是没有加入到version- ...

  9. devops基本流程

    概要 源代码管理: 工具:Subversion (SVN) Concurrent Version System (CVS) Git SCCS Revision control systems Bitb ...

  10. java 连接mysql

    目前还沉浸在java自动化测试中不能自拔! 自动化过程中免不了要从数据库取值与期望值比较,目前我项目刚开始就需要用到了. 下面我把操作过程写下来: 我的项目框架是java+maven+testNG,所 ...