Ontap
Encyclopedia
The onTap framework is a free service-oriented
Service-oriented architecture
In software engineering, a Service-Oriented Architecture is a set of principles and methodologies for designing and developing software in the form of interoperable services. These services are well-defined business functionalities that are built as software components that can be reused for...

 and "full stack" web application framework
Web application framework
A web application framework is a software framework that is designed to support the development of dynamic websites, web applications and web services. The framework aims to alleviate the overhead associated with common activities performed in Web development...

 for ColdFusion.

In addition to providing an MVC
Model-view-controller
Model–view–controller is a software architecture, currently considered an architectural pattern used in software engineering. The pattern isolates "domain logic" from the user interface , permitting independent development, testing and maintenance of each .Model View Controller...

 controller like most other ColdFusion frameworks, it also includes an array of API
Application programming interface
An application programming interface is a source code based specification intended to be used as an interface by software components to communicate with each other...

s for rapid application development
Rapid application development
Rapid application development is a software development methodology that uses minimal planning in favor of rapid prototyping. The "planning" of software developed using RAD is interleaved with writing the software itself...

, including e-mail
E-mail
Electronic mail, commonly known as email or e-mail, is a method of exchanging digital messages from an author to one or more recipients. Modern email operates across the Internet or other computer networks. Some early email systems required that the author and the recipient both be online at the...

, HTML
HTML
HyperText Markup Language is the predominant markup language for web pages. HTML elements are the basic building-blocks of webpages....

 templating
Template processor
A template processor is software or a software component that is designed to combine one or moretemplates with a data model to produceone or more result documents...

 (and associated DHTML widgets such as Section 508
Computer accessibility
In human-computer interaction, computer accessibility refers to the accessibility of a computer system to all people, regardless of disability or severity of impairment...

 compliant tabsets
Tab (GUI)
In the area of graphical user interfaces , a tabbed document interface is one that allows multiple documents to be contained within a single window, using tabs as a navigational widget for switching between sets of documents...

), AJAX
Ajax (programming)
Ajax is a group of interrelated web development methods used on the client-side to create asynchronous web applications...

, application branding and customization, form management and i18n internationalization features.

License

The onTap framework is distributed using the OpenBSD
OpenBSD
OpenBSD is a Unix-like computer operating system descended from Berkeley Software Distribution , a Unix derivative developed at the University of California, Berkeley. It was forked from NetBSD by project leader Theo de Raadt in late 1995...

 license.

Several of the early versions of the framework (prior to version 2.0) were released under the Lesser GPL. The LGPL had been chosen specifically for the purpose of allowing commercial software to be written using the framework as a starting-point. The OpenBSD license was later adopted for its even less restrictive terms, allowing commercial projects based on the framework to encrypt their own proprietary source code (which was not allowed by the LGPL).

Philosophy

The onTap framework has several key goals:
  • Speed and improve rapid application development
    Rapid application development
    Rapid application development is a software development methodology that uses minimal planning in favor of rapid prototyping. The "planning" of software developed using RAD is interleaved with writing the software itself...

     (RAD) by simplifying common or tedious web development tasks as well as providing convenient methods of accomplishing very complex tasks such as and/or keyword search filtering (this example is from the object-relational mapping
    Object-relational mapping
    Object-relational mapping in computer software is a programming technique for converting data between incompatible type systems in object-oriented programming languages. This creates, in effect, a "virtual object database" that can be used from within the programming language...

     (ORM) tool which has split into a separate project called DataFaucet ORM). The use of syntactic sugar
    Syntactic sugar
    Syntactic sugar is a computer science term that refers to syntax within a programming language that is designed to make things easier to read or to express....

     is a primary method of achieving this goal.
  • Enable better integration and collaboration between separate applications provided by different authors via a service-oriented architecture
    Service-oriented architecture
    In software engineering, a Service-Oriented Architecture is a set of principles and methodologies for designing and developing software in the form of interoperable services. These services are well-defined business functionalities that are built as software components that can be reused for...

     (SOA). The long-term goal is a software ecosystem similar to add-ons for the Mozilla Firefox
    Mozilla Firefox
    Mozilla Firefox is a free and open source web browser descended from the Mozilla Application Suite and managed by Mozilla Corporation. , Firefox is the second most widely used browser, with approximately 25% of worldwide usage share of web browsers...

     browser in which plugin applications can be one-click installed via the existing browser-based interface.
  • Enable easier customization of Software as a service
    Software as a Service
    Software as a service , sometimes referred to as "on-demand software," is a software delivery model in which software and its associated data are hosted centrally and are typically accessed by users using a thin client, normally using a web browser over the Internet.SaaS has become a common...

     (SaaS) applications by separating client customizations into their own directory structures thereby reducing conflicts between potentially incompatible customization requests. This is being described as a virtual private application (VPA) as an analogy to the web hosting term virtual private server
    Virtual private server
    Virtual private server is a term used by internet hosting services to refer to a virtual machine. The term is used for emphasizing that the virtual machine, although running in software on the same physical computer as other customers' virtual machines, is functionally equivalent to a separate...

     (VPS).


These goals are similar to and overlap the intent of agile software development
Agile software development
Agile software development is a group of software development methodologies based on iterative and incremental development, where requirements and solutions evolve through collaboration between self-organizing, cross-functional teams...

 methodologies or the Agile Manifesto seeking a "lightweight" method of software development that can produce versatile working software very quickly.

To meet the objective of simplifying and improving the RAD process, the framework's core principles include Convention over Configuration
Convention over Configuration
Convention over configuration is a software design paradigm which seeks to decrease the number of decisions that developers need to make, gaining simplicity, but not necessarily losing flexibility....

 (CoC) and Don't Repeat Yourself
Don't repeat yourself
In software engineering, Don't Repeat Yourself is a principle of software development aimed at reducing repetition of information of all kinds, especially useful in multi-tier architectures...

 (DRY). One example of CoC and DRY principles can be found in the framework's form features. The form tools allow programmers to omit most of the code required to create common CRUD forms by relying on the database as the single point of truth for information about the type of data managed by the form. The following are examples of a form as created using the CFML
ColdFusion Markup Language
ColdFusion Markup Language, more commonly known as CFML, is a scripting language for web development that runs on the JVM, the .NET framework, and Google App Engine...

 native cfform tag as compared to using the onTap framework's CoC / DRY concepts for CRUD forms.

Sample Code

The following code sample shows how many ColdFusion forms are written:




select * from tblEvent
where eventid =











required="yes" value="#attributes.eventname#" />
required="yes" value="#attributes.eventdate#" validate="date" />
required="yes" value="#attributes.ticketprice#" validate="numeric" />



The following code sample shows how the same form could be written using the onTap framework's XHTML
XHTML
XHTML is a family of XML markup languages that mirror or extend versions of the widely-used Hypertext Markup Language , the language in which web pages are written....

 template engine in combination with the DataFaucet ORM plugin to speed development. This code anticipates the intent of the code in the previous sample by using a conventional relationship between database columns and form input elements. These two code samples produce an approximately similar result with mostly semantic differences in operation. This supports the philosophy of CoC because the programmer only needs to specify the value of an input element (or its default) or the type of validation (date, numeric, required, etc.) in atypical cases in which the input doesn't mirror the structure of the database.











History

Isaac Dealey began working on a content management system
Content management system
A content management system is a system providing a collection of procedures used to manage work flow in a collaborative environment. These procedures can be manual or computer-based...

 (CMS) in late 1998 following his first ColdFusion job at MCI WorldCom
MCI Inc.
MCI, Inc. is an American telecommunications subsidiary of Verizon Communications that is headquartered in Ashburn, Virginia...

. The CMS transitioned through several names eventually becoming known as Tapestry (not to be confused with the Tapestry
Tapestry (programming)
Apache Tapestry is an open-source component-oriented Java web application framework to implement applications in accordance with the model-view-controller architectural pattern. Tapestry was created by Howard Lewis Ship independently, and was adopted by the Apache Software Foundation as a top-level...

 framework for Java
Java (programming language)
Java is a programming language originally developed by James Gosling at Sun Microsystems and released in 1995 as a core component of Sun Microsystems' Java platform. The language derives much of its syntax from C and C++ but has a simpler object model and fewer low-level facilities...

). Isaac later abandoned the CMS but not before releasing an open source API
Application programming interface
An application programming interface is a source code based specification intended to be used as an interface by software components to communicate with each other...

 for ColdFusion development called the Tapestry Application Programming Interface (TAPI) not to be confused with the Telephony Application Programming Interface
Telephony Application Programming Interface
The Telephony Application Programming Interface is a Microsoft Windows API, which provides computer telephony integration and enables PCs running Microsoft Windows to use telephone services. Different versions of TAPI are available on different versions of Windows...

 (TAPI). The design of this early version focused on use within an existing application and within several months Isaac decided that the system requirements to support this strategy were too limiting. This led to the first release of the onTap framework (a complex clip
Clipping (morphology)
In linguistics, clipping is the word formation process which consists in the reduction of a word to one of its parts . Clipping is also known as "truncation" or "shortening."...

 of "on Tapestry") as an alternative to TAPI in August 2003. In spite of the fact that the name onTap shares pronunciation with a colloquial description of draught beer
Draught beer
Draught beer is beer served from a cask or a pressurised keg.-History of draught:Until Joseph Bramah patented the beer engine in 1785, beer was served directly from the barrel and carried to the customer. The Old English word for carry was dragen which developed into a series of related words,...

 (which is often said to be "on tap"), the name engenders less confusion than either the TAPI acronym or the original CMS' name Tapestry.

Website

Some time between August 2003 and August 2004, an official website for the framework launched at fusiontap.com. In March 2007, Nick Tong and Kola Oyedeji interviewed Isaac for a podcast
Podcast
A podcast is a series of digital media files that are released episodically and often downloaded through web syndication...

 about the framework on the cfFrameworks website. Shortly after the interview, Isaac canceled the website's dedicated hosting service
Dedicated hosting service
A dedicated hosting service, dedicated server, or managed hosting service is a type of Internet hosting in which the client leases an entire server not shared with anyone. This is more flexible than shared hosting, as organizations have full control over the server, including choice of operating...

 for personal reasons and the domain
Domain name
A domain name is an identification string that defines a realm of administrative autonomy, authority, or control in the Internet. Domain names are formed by the rules and procedures of the Domain Name System ....

 was subsequently purchased by domain scalpers. This created confusion in the following months with some people thinking the framework project might have been abandoned.

In December 2007 Isaac submitted the onTap framework and several related projects to the open source development community RIAForge.org, an alternative to SourceForge
SourceForge
SourceForge Enterprise Edition is a collaborative revision control and software development management system. It provides a front-end to a range of software development lifecycle services and integrates with a number of free software / open source software applications .While originally itself...

 specifically for projects based on Adobe
Adobe Systems
Adobe Systems Incorporated is an American computer software company founded in 1982 and headquartered in San Jose, California, United States...

 software platforms.

A new official site is now at http://on.tapogee.com starting in August 2008.

As of 11/7/2011 this URL causes a Site Not Found error. Attempting just http://tapogee.com shows simply "Hello World".

External links

The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK