You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 3 Next »

Now, adding new features to my application is done by adding a few entries into a navigation list, (probably) writing some new rules and localizing some keys. That's it. For most of the stuff I get asked for, it takes more time to write the commit messages to my version control system than it does to actually implement the requested changes. The day I decide I revamp my interface I need to change about five templates and adjust one CSS file and I'm done. - Paraphrased from a post by Anjo Krank

What developer wouldn't want this kind of power at their fingertips?

What is DirectToWeb?

DirectToWeb describes a technology that STILL, some nine years after its introduction, points to a logical future for how data-driven web applications ought to be developed. DirectToWeb is an expert system applied to web applications. "The general architecture of an expert system involves two principal components: a problem dependent set of data declarations called the knowledge base or rule base, and a problem independent (although highly data structure dependent) program which is called the inference engine." http://en.wikipedia.org/wiki/Expert_systems The WebObjects developer that wishes to use DirectToWeb to create his application manipulates the rules in the rule base to result in the desired behaviour. The DirectToWeb frameworks contain the inference engine that is used to determine what rules will be fired.

D2W AS Expert System

As an expert system that has been designed to capture the process of developing a data driven web application, DirectToWeb inherits the advantages and disadvantages of any expert system: http://en.wikipedia.org/wiki/Expert_systems#Advantages_and_disadvantages

Advantages:
  • Provides consistent answers for repetitive decisions, processes and tasks
    • The normal WO developer's tasks involve programming similarly functioning components that are created to perform common set of repetitive tasks on entities. D2W allows the developer to leverages the similarities and pulls out the common tasks (for example: query, list, inspect, edit, select, confirm) to put them in their own templates and apply them to your entities (defined by the EOModel).
  • Holds and maintains significant levels of information
    • The D2W rules system knows the tasks that you will want to use in a typical application for a typical entity. It also knows when you need the behaviour for a given component to be different from the default because you have told it so.
  • Encourages organizations to clarify the logic of their decision-making
    • Once the organization determines their business rules, the developer has a logical way to codify those rules into the rule base. D2W uses "rule models" that are edited using a specific tool for the job. Once the codified behaviour is observed in the application, the business logic can be verified by the organization and quickly changed if it is incorrect.
  • Never "forgets" to ask a question, as a human mind
    • Once the rules are established, the rules are always considered to determine the "correct" behaviour for the given situation.
Disadvantages:
  • Lacks common sense needed in some decision making
    • Not a severe shortcoming for WebObjects developer since the practical range of UI options for a finite set of data types is also finite
  • Cannot make creative responses as human expert would in unusual circumstances
    • The development of a website doesn't often present unusual circumstances and when it does, traditional completely customized component-based WO development is always available as an option.
  • Domain experts not always able to explain their logic and reasoning
    • This is not likely true of the process of developing WebObjects applications
  • Errors may occur in the knowledge base, and lead to wrong decisions
    • This is true of any application! You have to test and correct errors.
  • Cannot adapt to changing environments, unless knowledge base is changed
    • This is true of any WebObjects application, but based on Anjo's description at the top of this page, the scope of the work to change a D2W application is potentially much less.

Historical Context of D2W

  • No labels