A web appliance framework is acomputer application framework that is advised to abutment the development of activating websites, web applications and web services. The framework aims to allay the aerial associated with accepted activities performed in Web development. For example, abounding frameworks accommodate libraries for database access, templating frameworks and affair management, and they generally advance cipher reuse.1
Sunday, 11 March 2012
History
As the architecture of the World Wide Web was not inherently dynamic, aboriginal hypertext consisted of hand-coded HTML that was appear on web servers. Any modifications to appear pages bare to be performed by the pages' author. To accommodate a activating web folio that reflected user inputs, the Accepted Gateway Interface (CGI) accepted was alien for interfacing alien applications with web servers.2 CGI could abnormally affect server load, though, back anniversary appeal had to alpha a abstracted process.
Programmers capital tighter affiliation with the web server to accredit aerial cartage web applications. The Apache HTTP Server, for example, supports modules that can extend the web server with approximate cipher executions (such as mod perl) or advanced specific requests to a web server that can handle activating agreeable (such as mod jk). Some web servers (such as Apache Tomcat) were accurately advised to handle activating agreeable by active cipher accounting in some languages, such as Java.
Around the aforementioned time, fresh languages were actuality developed accurately for use in the web, such as ColdFusion, PHP and Active Server Pages.
While the all-inclusive majority of languages accessible to programmers to use in creating activating web pages accept libraries to advice with accepted tasks, web applications generally crave specific libraries that are advantageous in web applications, such as creating HTML (for example, JavaServer Faces).
Eventually, mature, "full stack" frameworks appeared, that generally aggregate assorted libraries advantageous for web development into a distinct adamantcomputer application assemblage for web developers to use. Examples of this accommodate ASP.NET, JavaEE (Servlets), WebObjects, web2py, OpenACS, Catalyst, Mojolicious, Ruby on Rails, Django, Zend Framework and Symfony.
Programmers capital tighter affiliation with the web server to accredit aerial cartage web applications. The Apache HTTP Server, for example, supports modules that can extend the web server with approximate cipher executions (such as mod perl) or advanced specific requests to a web server that can handle activating agreeable (such as mod jk). Some web servers (such as Apache Tomcat) were accurately advised to handle activating agreeable by active cipher accounting in some languages, such as Java.
Around the aforementioned time, fresh languages were actuality developed accurately for use in the web, such as ColdFusion, PHP and Active Server Pages.
While the all-inclusive majority of languages accessible to programmers to use in creating activating web pages accept libraries to advice with accepted tasks, web applications generally crave specific libraries that are advantageous in web applications, such as creating HTML (for example, JavaServer Faces).
Eventually, mature, "full stack" frameworks appeared, that generally aggregate assorted libraries advantageous for web development into a distinct adamantcomputer application assemblage for web developers to use. Examples of this accommodate ASP.NET, JavaEE (Servlets), WebObjects, web2py, OpenACS, Catalyst, Mojolicious, Ruby on Rails, Django, Zend Framework and Symfony.
Architectures
Most web appliance frameworks are based on the model–view–controller (MVC) architectural pattern.
Model–view–controller (MVC)
Many frameworks chase the model–view–controller (MVC) architectural arrangement to abstracted the abstracts archetypal with business rules from the user interface. This is about advised a acceptable convenance as it modularizes code, promotes cipher reuse, and allows assorted interfaces to be applied. In Web applications, this permits altered angle to be presented, such as web pages for humans, and web account interfaces for alien applications
.
Push-based vs. pull-based
Most MVC frameworks chase a push-based architecture. These frameworks use accomplishments that do the appropriate processing, and again "push" the abstracts to the appearance band to cede the results.3 Struts, Django, Ruby on Rails, Symfony, Yii and Spring MVC are acceptable examples of this architecture. An another to this is pull-based architecture, sometimes additionally alleged "component-based". These frameworks alpha with the appearance layer, which can again "pull" after-effects from assorted controllers as needed. In this architecture, assorted controllers can be complex with a distinct view. Play, Struts2, Lift, Tapestry, JBoss Seam, Wicket and Stripes are examples of pull-based architectures
.
hree-tier architecture
In Three Tier Architecture, applications are structured about three concrete tiers: client, application, and database.4567 The database is commonly an RDBMS. The Appliance contains the business logic, active on a server and communicates with the applicant appliance HTTP.8 The client, on web applications is a web browser that runs HTML generated by the appliance layer.910 The appellation charge not be abashed with MVC. Unlike in three-tier architecture, it is advised a acceptable convenance to accumulate business argumentation abroad from the controller, the "middle layer" in MVC.1112
Model–view–controller (MVC)
Many frameworks chase the model–view–controller (MVC) architectural arrangement to abstracted the abstracts archetypal with business rules from the user interface. This is about advised a acceptable convenance as it modularizes code, promotes cipher reuse, and allows assorted interfaces to be applied. In Web applications, this permits altered angle to be presented, such as web pages for humans, and web account interfaces for alien applications
.
Push-based vs. pull-based
Most MVC frameworks chase a push-based architecture. These frameworks use accomplishments that do the appropriate processing, and again "push" the abstracts to the appearance band to cede the results.3 Struts, Django, Ruby on Rails, Symfony, Yii and Spring MVC are acceptable examples of this architecture. An another to this is pull-based architecture, sometimes additionally alleged "component-based". These frameworks alpha with the appearance layer, which can again "pull" after-effects from assorted controllers as needed. In this architecture, assorted controllers can be complex with a distinct view. Play, Struts2, Lift, Tapestry, JBoss Seam, Wicket and Stripes are examples of pull-based architectures
.
hree-tier architecture
In Three Tier Architecture, applications are structured about three concrete tiers: client, application, and database.4567 The database is commonly an RDBMS. The Appliance contains the business logic, active on a server and communicates with the applicant appliance HTTP.8 The client, on web applications is a web browser that runs HTML generated by the appliance layer.910 The appellation charge not be abashed with MVC. Unlike in three-tier architecture, it is advised a acceptable convenance to accumulate business argumentation abroad from the controller, the "middle layer" in MVC.1112
Content management systems
Some projects that accept historically been termed agreeable administration systems accept amorphous to booty on the roles of higher-layer Web appliance frameworks. For instance, Drupal's anatomy provides a basal amount whose action is continued through modules that accommodate functions about associated with web appliance frameworks. The Joomla belvedere provides a set of APIs to body Web and command-line applications. However, it is arguable whether "management of content" is the primary amount of such systems, abnormally back some, like SilverStripe, accommodate an acquisitive MVC framework. Add-on modules now accredit these systems to action as full-fledged applications above the ambit of agreeable management. They may accommodate anatomic APIs, anatomic frameworks, coding standards, and abounding of the functions commonly associated with Web appliance frameworks.
Web template system
Dynamic web pages usually abide of a changeless allotment (HTML) and a activating part, which is cipher that generates HTML. The cipher that generates the HTML can do this based on variables in a template, or on code. The argument to be generated can appear from a database, thereby authoritative it accessible to badly abate the cardinal of pages in a site.
Consider the archetype of a absolute acreage abettor with 500 houses for sale. In a changeless web site, the abettor would accept to actualize 500 web pages in adjustment to accomplish the advice available. In a activating website, the abettor could potentially affix a distinct activating web folio to a database table of 500 records.
In a template, variables from the programming accent can be amid after application code, thereby accident the claim of programming ability to accomplish updates to the pages in a web site. A syntax is fabricated accessible to analyze amid HTML and variables. E.g. in JSP the tag is acclimated to achievement variables, and in Smarty, {$variable} is used.
Many arrangement engines do abutment bound argumentation tags, like IF and FOREACH. These are to be acclimated alone for decisions that charge to be fabricated for the presentation layer, in adjustment to accumulate a apple-pie break from the business argumentation layer, or the M(odel) in the MVC pattern.
Consider the archetype of a absolute acreage abettor with 500 houses for sale. In a changeless web site, the abettor would accept to actualize 500 web pages in adjustment to accomplish the advice available. In a activating website, the abettor could potentially affix a distinct activating web folio to a database table of 500 records.
In a template, variables from the programming accent can be amid after application code, thereby accident the claim of programming ability to accomplish updates to the pages in a web site. A syntax is fabricated accessible to analyze amid HTML and variables. E.g. in JSP the tag is acclimated to achievement variables, and in Smarty, {$variable} is used.
Many arrangement engines do abutment bound argumentation tags, like IF and FOREACH. These are to be acclimated alone for decisions that charge to be fabricated for the presentation layer, in adjustment to accumulate a apple-pie break from the business argumentation layer, or the M(odel) in the MVC pattern.
URL mapping
A framework's URL mapping ability is the apparatus by which the framework interprets URLs. Some frameworks, such as Drupal and Django, bout the provided URL adjoin pre-determined patterns application approved expressions, while some others use URL Afterlight to construe the provided URL into one that the basal agent will recognize. Another address is that of blueprint bridge such as acclimated by Zope, area a URL is addle in accomplish that bisect an article blueprint (of models and views).
A URL mapping arrangement that uses arrangement analogous or URL afterlight allows added "friendly" URLs to be used, accretion the artlessness of the armpit and acceptance for more good indexing by chase engines. For example, a URL that ends with "/page.cgi?cat=science&topic=physics" could be afflicted to artlessly "/page/science/physics". This makes the URL easier to apprehend and provides chase engines with more good advice about the structural blueprint of the site. A blueprint bridge access additionally tends to aftereffect in the conception of affable URLs. A beneath URL such as "/page/science" tends to abide by absence as that is artlessly a beneath anatomy of the best bridge to "/page/science/physics".
A URL mapping arrangement that uses arrangement analogous or URL afterlight allows added "friendly" URLs to be used, accretion the artlessness of the armpit and acceptance for more good indexing by chase engines. For example, a URL that ends with "/page.cgi?cat=science&topic=physics" could be afflicted to artlessly "/page/science/physics". This makes the URL easier to apprehend and provides chase engines with more good advice about the structural blueprint of the site. A blueprint bridge access additionally tends to aftereffect in the conception of affable URLs. A beneath URL such as "/page/science" tends to abide by absence as that is artlessly a beneath anatomy of the best bridge to "/page/science/physics".
Ajax
Ajax, autograph for "Asynchronous JavaScript and XML", is a web development address for creating alternate web applications. The absorbed is to accomplish web pages feel added acknowledging by exchanging baby amounts of abstracts with the server abaft the scenes, so that the absolute web folio does not accept to be reloaded anniversary time the user requests a change. This is advised to access the web page's interactivity, speed, and usability.
Due to the complication of Ajax programming in Javascript, there are abundant Ajax frameworks that alone accord with Ajax support. Some Ajax frameworks are alike anchored as a allotment of beyond frameworks. For example, the jQuery JavaScript Library is included in Ruby on Rails.
With the added absorption in developing "Web 2.0" Rich Media Applications, the complication of programming anon in Ajax and Javascript has become so credible that compiler technology has stepped in, to acquiesce developers to cipher in high-level languages such as Java, Python and Ruby. The aboriginal of these compilers was Morfik followed by Google Web Toolkit, with ports to Python and Ruby in the anatomy of Pyjamas and RubyJS afterward some time after. These compilers and their associated accoutrement set libraries accomplish the development of Rich Media Ajax Applications abundant added affiliated to that of developing Desktop applications.
Due to the complication of Ajax programming in Javascript, there are abundant Ajax frameworks that alone accord with Ajax support. Some Ajax frameworks are alike anchored as a allotment of beyond frameworks. For example, the jQuery JavaScript Library is included in Ruby on Rails.
With the added absorption in developing "Web 2.0" Rich Media Applications, the complication of programming anon in Ajax and Javascript has become so credible that compiler technology has stepped in, to acquiesce developers to cipher in high-level languages such as Java, Python and Ruby. The aboriginal of these compilers was Morfik followed by Google Web Toolkit, with ports to Python and Ruby in the anatomy of Pyjamas and RubyJS afterward some time after. These compilers and their associated accoutrement set libraries accomplish the development of Rich Media Ajax Applications abundant added affiliated to that of developing Desktop applications.
Automatic configuration
Some frameworks abbreviate web appliance agreement through the use of brooding and/or afterward accepted conventions. For example, abounding Java frameworks use Hibernate as a chain layer, which can accomplish a database action at runtime able of constant the all-important information. This allows the appliance artist to architecture business altar after defective to absolutely ascertain a database schema. Frameworks such as Ruby on Rails can additionally assignment in reverse, that is, ascertain backdrop of archetypal altar at runtime based on a database schema.
Subscribe to:
Posts (Atom)