NexJ Logo

Application layers and the Model Description Language

Enterprise applications are full of both functional and technical complexity. 

Model layers

We break enterprise applications design and implementation into the following layers:

  • Presentation
  • Business Model
  • Persistence
  • Security
  • Integration
  • Resources
  • Deployment

Model Description Language


Designs are declared in Models with the Model Description Language. It is conceptually similar to how WSDL (Web Services Description Language) describes web services, but instead it describes designs for entire enterprise applications. It works well with source code control and large teams since it is just XML. It includes concepts for business logic, integration, persistence, presentation, security, testing, and deployment designs. The language is declarative - accelerating development by describing what the application will do, rather than how - and it fully documents the system design while reflecting exactly what is in production.

<Class description="Agents are best described as NLU (Natural Language Understanding) modules determining intent and entities.">
   <Attributes>
      <Attribute name="name" type="string"/>
      <Attribute name="description" type="string"/>
      <Attribute name="type" type="string"/>
      <Attribute name="icon" type="string"/>
      <Attribute collection="true" name="intents" reverse="agent" type="bot:Intent"/>
      <Attribute name="clientToken" type="string" value="(@ nlpStrategy clientToken)"/>
      <Attribute name="devToken" type="string" value="(@ nlpStrategy developerToken)&#10;"/>
      <Attribute collection="true" name="conversations" reverse="agent" type="bot:Conversation"/>
      <Attribute name="nlpStrategy" reverse="agent" type="bot:NLP"/>
      <Attribute collection="true" name="sources" reverse="agent" type="bot:Source"/>
   </Attributes>
</Class>

A sample declaration of a Class element