Leveraging declarative languages in web application development
Abstract
Web Applications have become an omnipresent part of our daily lives. They are easy to use, but hard to develop. WYSIWYG editors, form builders, mashup editors, and markup authoring tools ease the development of Web Applications. However, more advanced Web Applications require servers-side programming, which is beyond the skills of end-user developers. In this paper, we discuss how declarative languages can simplify Web Application development and empower end-users as Web developers. We first identify nine end-user Web Application development levels ranging from simple visual customization to advanced three-tier programming. Then, we propose expanding the presentation tier to support all aspects of Web Application development. We introduce a unified XForms-based framework—called XFormsDB—that supports both client-side and server-side Web Application development. Furthermore, we make a language extension proposal—called XFormsRTC—for adding true real-time communication capabilities to XForms. We also present XFormsDB Integrated Development Environment (XIDE), which assists end-users in authoring highly interactive data-driven Web Applications. XIDE supports all Web Application development levels and, especially, promotes the transition from markup authoring and snippet programming to single and unified language programming.
Keywords
Web framework . Web application . Web development . End-user development . Declarative language . Real-time communication
1 Introduction
Highly interactive data-driven Web Applications—abbreviated to Web Applications in the follow-ing—are usually based on the so-called three-tier architecture [2]. The presentation tier (i.e., user interface) is defined using HTML and CSS languages, and complemented with numerous JavaScript embeddings for client-side application logic. The logic tier (i.e., server-side application logic) is based either on an object-oriented (e.g., Java or Ruby) or scripting (e.g., PHP) language and uses HTML, XML, or JSON formats for client–server communication. Finally, the data tier (i.e., application data) uses either an Object-Relational Mapping (ORM) library or SQL statements for data management.
Typically, Web Applications contain both imperative (e.g., Java and JavaScript) and declara-tive (e.g., HTML, CSS, and SQL) components. Thus, Web developers have to master several programming languages and face their conceptual differences [39]. A common solution is to assign tier-specific professionals (i.e., Web designers, software engineers, and database experts) to develop each tier.
On the other hand, end-users also participate in Web development. Without professional help, they create and edit Web Applications that assist them in their daily life activities [11]. The scope of their applications is wide—end-users write in forums and wikis, create mashups and surveys, edit media rich blog pages, create basic HTML pages, etc. In the following, the term end-user developers refers to non-professionals, who do some Web development to support their profes-sional or leisure activities.
End-user developers often use dedicated visual tools, such as survey builders, mashup editors, or component-based tools [23] to create Web Applications. Unfortunately, these visual tools have their limitations. While professional tools are more expressive, they require more extensive knowledge of different programming languages, technologies, and paradigms. Thus, end-user developers face the complexities of professional Web Application development described above.
In this paper, we aim to bridge the gap between end-user and professional Web Application development. We focus on end-users who need to move forward from markup authoring and snippet programming. First, we analyze how Web Application development complicates when proceeding from end-user to professional Web develop-ment. At the same time, we identify the core learning barriers. Then, we discuss how end-users can leverage their existing Web development skills to overcome these learning barriers.
According to a recent review [54], there is a lack of support for complete Web Application development: server-side and client-side application logic, client–server communication, and interaction. Another recent survey [10] shows that research focuses on either model-driven design or implementation issues—a distinct gap exists between them. In this paper, we propose that a single, declarative model is used both on the client-side (i.e., presentation tier) and server-side (i.e., logic and data tiers); including client–server communication and interaction. Declarative approach is bene-ficial, since end-user developers often have some experience in using declarative languages. In addition, the application security improves as, in general, each technol-ogy is one more compromise to the overall application security.
Our contributions This paper discusses declarative Web Application development. Our specific contributions related to framework, IDE, and minor/other contributions are as follows:
- Nine-level classification of end-user Web Application development activities with a special focus on advanced Web development (minor)
- Presentation-centric architectural approach based on W3C-standardized declarative lan-guages for unifying Web Application development (framework)
- Set of requirements for extending a presentation-centric declarative language with com-mon server-side and database-related functionality; including real-time communication capabilities (framework)
- Language extension (XFormsDB) for turning XForms [5] into a comprehensive Web Application development language (framework)
-
Language extension (XFormsRTC) for adding real-time communication capabilities to XForms (framewo
剩余内容已隐藏,支付完成后下载完整资料
web应用程序开发中使用声明性语言
文摘:Web应用程序已经成为一个无处不在的我们日常生活的一部分。他们是易于使用,但很难发展。所见即所得编辑器,形成建筑商,mashup编辑器和标记创作工具简化Web应用程序的发展。然而,更先进的Web应用程序需要服务器端编程,这是超出终端用户开发人员的技能。在本文中,我们将讨论如何声明性语言可以简化Web应用程序开发和授权终端用户Web开发人员。我们首先要确定九终端用户的Web应用程序开发的水平从简单的可视化定制到先进的三层编程。然后,我们提出扩大表示层支持Web应用程序开发的各个方面。我们引入一个统一的基于xforms的框架,叫做XFormsDB-that支持客户端和服务器端Web应用程序开发。此外,我们做一个语言扩展proposal-called XFormsRTC-for XForms添加真实的实时通信能力。我们还展示了XFormsDB集成开发环境(希德),协助终端用户在创作高度交互的数据驱动的Web应用程序。希德支持所有Web应用程序开发的水平,特别是,促进从标记编写和代码编程过渡到单一和统一语言编程。
关键字:Web框架 Web应用程序 Web开发 终端用户发展 声明性语言 实时通信1介绍
高度交互的数据驱动的Web应用程序的Web Applications-abbreviated follow-ing-are通常基于所谓的三层架构[2]。表示层(即。、用户界面)是使用HTML和CSS定义语言,和补充大量JavaScript嵌入的客户端应用程序逻辑。逻辑层(即。服务器端应用程序逻辑),要么是基于面向对象(例如、Java和Ruby)或脚本(如。,PHP)语言和使用HTML、XML或JSON格式用于客户机-服务器通信。最后,数据层(即。、应用程序数据)使用一个对象关系映射(ORM)库或SQL语句进行数据管理。通常,Web应用程序包含两个命令(如Java和JavaScript)和declara-tive(如。、HTML、CSS和SQL)组件。因此,Web开发人员必须掌握一些编程语言和面对他们概念差异[39]。一个常见的解决方案是分配tier-specific专业人士(即。、网页设计师、软件工程师,开发每一层和数据库专家)。
另一方面,终端用户也参与Web开发。没有专业的帮助,他们创建和编辑的Web应用程序,帮助他们在他们的日常生活活动[11]。他们的应用程序的范围是wide-end-users写在论坛和wikis,创建mashup和调查,编辑媒体丰富的博客页面,创建基本的HTML页面,等在下面,非专业人士最终用户开发人员是指,做一些Web开发来支持他们的接受或休闲活动。终端用户开发人员通常使用专门的可视化工具,如调查建筑商,mashup编辑器,或基于组件的工具[23]创建Web应用程序。不幸的是,这些可视化工具有其局限性。而专业工具更富有表现力的,它们需要更广泛的不同编程语言的知识,技术和模式。因此,最终用户开发人员面对上述专业的Web应用程序开发的复杂性。
在本文中,我们的目标是最终用户之间的桥梁和专业的Web应用程序开发。我们专注于最终用户谁需要从标记前进创作和片段编程。首先,我们分析Web应用程序开发复杂当从终端用户Web随着专业。与此同时,我们识别核心的学习障碍。然后,我们将讨论如何最终用户可以利用他们现有的Web开发技术来克服这些学习障碍。根据最近的一项审查[54],缺乏支持完整的Web应用程序开发:服务器端和客户端应用程序的逻辑,客户端和服务器之间的通信和交互。另一个最近的调查[10]表明,研究侧重于模型驱动的设计或实现问题之间存在明显的差距。在本文中,我们建议一个声明式模型是用于在客户端(即。表示层)和服务器端(即。,逻辑和数据层),包括客户端和服务器之间的通信和交互。声明式方法是bene-ficial,因为终端用户使用声明性语言开发人员常常有一些经验。此外,应用程序安全性提高,一般来说,每个技术是一个妥协服务业总体应用程序安全性。
我们贡献探讨声明式Web应用程序开发。我们的具体贡献相关框架、IDE和小/其它贡献如下:
amp; Nine-level终端用户的Web应用程序开发的分类活动特别注重先进的Web开发(小)
amp; Presentation-centric架构方法基于w3c标准化声明对于统一的Web应用程序开发(框架)
amp;组要求延长presentation-centric声明性语言的服务器端和数据库相关功能;包括实时通信能力(框架)
amp;语言扩展(XFormsDB)将XForms[5]转变成一个全面的Web应用程序开发语言(框架)和语言扩展(XFormsRTC)添加实时通信能力XForms(框架)和Web框架(XFormsDB)实现XForms和XFormsDB语言ex-tension声明式Web应用程序开发(框架)
amp;网络可视化编辑工具(希德)XFormsDB框架帮助低级别的用户在Web应用程序开发人员开发(IDE)
amp; XFormsDB评价框架和希德创作工具(框架和IDE)2相关工作
在本节中,我们目前的相关工作。现年54岁的基于两个最近的调查[10],我们确定WebML-RIA[7、15]接近XFormsDB,从而提供一个全面的比较这两种方法。最后,我们讨论之间的差异陈述性的知识和程序性的Web应用程序开发。2.1富internet应用程序
根据Toffetti et al Internet应用程序(RIA)开发方法可以分为基于代码,基于框架和模型驱动的方法。在第一种方法,开发人员代码直接使用的编程语言。框架包含更高级的库和代码生成工具。然而,框架通常专注于客户端,因此缺乏支持完整的应用程序开发。模型驱动方法更全面,依靠自动代码生成。然而,模型驱动的方法通常有困难表达高级RIA特性。Toffetti等。[54]基于他们的技术比较不同的开发方法,语言,和流程相关的特性。我们评估XFormsDB框架使用相同的标准。最近的基于框架的方法[16]AJAX库时,AJAX代码生成器,OpenLazzlo(http://www.openlaszlo.org/)和Adobe Flex,1在最近的模型驱动方法WebML-RIA,UsiXML,和OOWS RIA。
模型驱动的方法通常是作为XFormsDB声明。然而,大多数模型驱动方法注重造型表现和行为问题在客户端。也只有WebML-RIA[7、15)模型作为XFormsDB数据问题。大多数模型驱动的方法也依赖前后颠倒的开发过程。XFormsDB是基于更多的以用户为中心的设计UsixML[36]和OOWS RIA[55]。2.2 WebML-RIA
WebML-RIA[7、15]模型由四子模型:域,超文本、动态和演示。XForms是基于传统的模型-视图-控制器体系结构的部分像WebML-RIA域,演讲,和动态模型。然而,有重大的差异。在WebML-RIA域数据模型表达为实体关系图或(如语义表示。XForms使用XML、RDF和OWL),而模式。XFormsRTC扩展客户机-服务器通信和双向实时支持。在WebML-RIA,超文本模型定义了组成和导航的用户界面(UI),而覆盖表示模型描述UI的外观和感觉。在XForms视图中定义的结构形式。然而,UI总是嵌入到宿主语言,如XHTML。宿主语言定义了用户界面和导航。因此,该部门比WebML-RIA略有不同。
WebML-RIA和XFormsDB也实现的差异。WebML-RIA IDE使用WebRatio工具实现,虽然XFormsDB都有自己的基于web的IDE,希德。WebML-RIA端实现也是基于Apache Struts2 WebRatio及其框架和Hibernate持久性层。XFormsDB端imple-mentation是基于我们XFormsDB处理器和Orbeon形式XForms处理器。OpenLazzlo WebML-RIA客户机运行时环境,而XFormsDB使用HTML CSS JavaScript。2.3声明式和命令式的web应用程序开发
AJAX库,比如Dojo(http://dojotoolkit.org/)和jQuery(http://jquery.com/),必要的技术,而XFormsDB是声明性的。AJAX库通常只使用声明性基于HTML ui。AJAX代码生成器更是当务之急。OpenLazzlo也声明UI,但另有势在必行。同样适用于Adobe Flex,基于ActionScript而非JavaScript。Kuuskeri和Mikkonen[26]介绍了一种基于JavaScript的中间件平台,extend-ing与服务器端JavaScript语言的功能。在我们的方法中,这个提议使用Web开发模型只有一个客户端语言。这两种方法在概念层次不同:尽管Kuuskeri和Mikkonen[26]提出了服务器端扩展必要的JavaScript,我们声明XForms的范围扩大。
在[28],我们详细评估三个框架,每个代表Web tier-expansion方法:我们声明XFormsDB命令式Google Web toolkit(GWT)2,和声明式Sausalito3[22],扩大表示,逻辑,分别和数据层。GWT的logic-centric规则是最成熟和强大的三个框架。它有最好的文档和工具支持和最活跃的开发社区。在以数据为中心的声明性索萨利托(声明XQuery作为基础语言)提供了最佳的可伸缩性的支持,presentation-centric声明XFormsDB是一个有吸引力的解决方案对于终端用户开发人员熟悉声明标记语言。使用单一语言在所有三层减少了所涉及的技术,可以统一Web开发过程[28]。根据施密茨[52],声明对于(如HTML)相对命令式语言(如有几个优势Java)。特别是声明性语言更方便终端用户开发人员(即non-pro-grammers)。此外,最终用户开发人员更熟悉声明,w3c标准化HTML和CSS比服务器端Web应用程序开发的各个方面。因此,他们受益于客户端与服务器端功能扩展的语言。
根据这项研究,XForms语言最适合于数据密集型应用程序和应用程序与易访问性需求。XForms还提供了一个丰富的声明性语言使用客户端数据,可以很容易地定义数据和用户界面之间的相互依赖关系。
3终端用户的web应用程序开发
在实践中,在前一节中讨论的所有工具和框架的目的是为专业开发人员。更好地理解终端用户开发人员的要求,我们分析Web应用程序开发的进化从网上冲浪到专业的Web开发。分析是基于文献的调查和现有的工具。更准确地说,我们扩大终端用户开发[11]中描述的分类。在我们定义六级之间的终端用户的Web应用程序开发网上冲浪和专业发展。在这篇文章中,我们尤其关注先进的Web应用程序开发,因此我们解构两个最先进水平成五种新的编程水平的活动。
4扩大表示层
在本文中,我们的目标用户Web内容作者的开发人员,但是拥有有限的编程技能开发整个Web应用程序。正如我们在前一节中分析,许多用户达到四级,他们学习基本的声明性语言。因此,声明标记语言符合客户端网络的要求
编程模型。我们建议使用XForms[5],它是一种基于xml的Web用户界面语言旨在处理HTML表单中发现的最常见的问题。此外,XForms消除了依赖命令式脚本语言,比如JavaScript。因此,当与XHTML一起使用时,就可以动态的Web用户界面(即作者。表示层,没有JavaScript客户端应用程序逻辑)。这建筑改变完全声明式用户界面简化了开发过程。然而,终端用户开发人员仍然要面临重大建筑障碍,如图2所示。在传统的基于xforms的Web应用程序中,服务器端采用逻辑是使用面向对象实现命令式的语言,如Java、Ruby或PHP。客户端和服务器使用声明式格式(如通信。通过HTTP、XML或JSON4)和异步提交(年代)。在应用程序层(即最低。数据层),声明的SQL语句或一个ORM库管理数据存储在关系数据库中。
上述开发过程需要tier-specific专家,因为编程语言,编程范式,在每一层数据模型不同。此外,手动分区之间的一个Web应用程序客户端(即。表示层)和服务器(即。、逻辑与数据层)使开发过程变得更加复杂。从开发人员的角度来看,进一步简化Web应用程序开发的一个方法是扩大覆盖所有三层的表示层。这种扩张presentation-centric架构允许使用xforms看作以及XML数据模型作为唯一的编程语言和范式在整个Web应用程序。此外,它不需要使用一个单独的数据绑定框架,比如WebSoDa[17]。图2 b描述了这个presentation-centric XForms扩展的架构方法常见的服务器端和数据库相关的功能。
目前,只有实验的浏览器如X-Smiles(http://www.xsmiles.org/)[20]原生支持XForms。幸运的是,几个solutions5-from浏览器插件和客户端XSLT转换到基于ajax服务器端transformations-allow XForms在所有现代Web浏览器使用。XFormsDB框架包括Orbeon形式XForms处理器,自动将XForms文档转换成跨浏览器的(X)HTML CSS JavaScript文件。此外,业务逻辑是由通用的服务器端XFormsDB处理器(cf第7节)。
5 XForms作为一个统一的终端用户的web应用程序开发语言
XForms[5]——2003年10月以来的W3C推荐标准,是一种基于xml的客户端技术形式。相比传统的HTML表单,XForms干净地分离表示(即。XForms用户界面)(即逻辑。XForms模型)和数据(即剩余内容已隐藏,支付完成后下载完整资料
资料编号:[28850],资料为PDF文档或Word文档,PDF文档可免费转换为Word
以上是毕业论文外文翻译,课题毕业论文、任务书、文献综述、开题报告、程序设计、图纸设计等资料可联系客服协助查找。