`

Shale的背景知识简介(没有时间翻译,大家还是练习英语吧)

阅读更多

Background

Little did anyone know, when the first few lines of code were committed to the Struts CVS repository in June 2000, that a revolution was brewing. Prior to that time, there were few useful models for best practices for the architecture of web based applications. The best we could do was handwaving about "Model 1" and "Model 2" approaches.

The original implementation of Struts, which was released as a 1.0 product approximately one year later, changed all that. As more and more people came to understand the advantages of building on top of a stable and supported framework, and as more and more developers adopted it for their own application development, and as more and more books helped everyone understand how to use the framework correctly, and as more and more development tools provided support for building Struts based applications, the word changed. A small open source project became a defacto industry standard that, even today, is very popular.

But that was then ... and this is now. In the years that Struts has been around (five and counting as of this writing), vastly improved technologies have become available from many talented architects and designers. Moore's Law has continued its seemingly inexhaustible progress. Developers have grown in their ability to understand the benefits of a monolithic controller architecture ... as well as increasingly developing preferences towards agility, code reuse, unit tests, and building applications by composition instead of inheritance.

One of the critical success factors for Struts has been, and continues to be, an obvious commitment on the part of the Struts developers towards backwards compatibility. This has led to Struts being both praised (for protecting the investment of developers with thousands of applications critically dependent on the framework) and dissed (for being a dinosaur compared to all the "latest and greatest" favorite technological approaches). History has shown, in terms of its continued popularity, that this is a good strategic approach.

But, it is also time to harvest many of the great ideas that have matured in the last several years. It is time to base a web tier framework on top of the new standard API in this space (JavaServer Faces), and eliminate the need to implement redundant features, instead of just treating JSF as a UI component technology. It is time to answer the question "if we knew then what we know now, what would Struts have looked like?"

Thus, Shale is a modern web application framework, fundamentally based on JavaServer Faces, and focused on improving ease of use for developers adopting JSF as a foundational technology in their own development environments. At the same time, the architecture of Shale is a set of fine grained services (and service options) that can be combined as needed to meet particular application requirements, rather than a monolithic request processor that is hard to customize and extend. In addition, integration links for other frameworks and framework components are provided, to ease development when combinations of technologies are required.

EDITOR'S NOTE: Why "Shale"? As others have pointed out, the cultural rules of engagement at Apache encourage both evolution and revolution in software designs. Revolutions are typically assigned code names while they are under discussion, gaining access to the branding of the overall project once they are accepted (or, going off on their own if they are not). Other proposals for Struts 2.x have talked about tearing down the walls inside the framework, and those are Good Things. Shale's architecture, on the other hand, is based on the principle that we should fundamentally divide the notion of a web application framework into solid individual layers, much as we see geologically in shale deposits around our volcanoes and coastlines. Each layer of the framework should focus on the specific requirements that are relevant to that layer -- and use of one layer should not necessarily require the use of all the rest (although it's certainly reasonable for synergies to exist if all the layers are chosen :-). Hence, "shale".
分享到:
评论

相关推荐

    Shale

    标题中的“Shale”指的是Apache Shale,这是一个Java框架,主要设计用于构建Web应用程序。描述中提到这是一个关于Shale的小实例,警告用户下载时要慎重,可能是因为它没有正式的release版本,而是提供了Development ...

    shale框架源码和文档

    Shale是一个功能强大的Java Web框架,它主要设计用于构建可重用、模块化的Web应用程序。在1.0.4版本中,它包含了源代码和相关的文档,这些资源对于理解Shale的工作原理、如何使用它以及如何对其进行扩展至关重要。在...

    shale-remoting jar

    shale-remoting 1.0.4

    shale实现jsf客户端验证例子

    在本文中,我们将深入探讨如何使用Shale库来实现JavaServer Faces(JSF)应用程序的客户端验证。Shale是一个开源的Java库,它为JSF提供了一系列强大的功能,包括验证框架,可帮助开发者轻松地创建复杂的客户端和...

    JSF与Shale开发用包

    开发JSF或Shale开发用的包,自己准备研究这两个东西却发现需要很多包一下子又找不全,总算找了差不多了,拿出来与大家分享.其中包含:shale-core.jar commons-beanutils.jar commons-chain.jar commons-codec....

    MRST_Shale:页岩气模拟环境

    MRST-Shale:一个开源的页岩气模拟器 王斌( ) 美国路易斯安那州立大学Craft.io与霍金斯大学石油工程系 OpenShale是一个轻量级的开源库,它基于SINTEF ICT( )。 它要求通过运行“ startup.m”将MRST添加到...

    ETL工具 beeload (shale)免费版 详细使用教程.pdf

    **ETL工具 beeload (shale)免费版 详细使用教程** **1. ETL工具简介** ETL,即Extract, Transform, Load,是数据处理领域中的关键环节,用于从不同源系统抽取数据,经过清洗、转换,再加载到目标系统。beeload是一...

    com.springsource.org.apache.shale.test-1.0.4.jar

    jar包,官方版本,自测可用

    com.springsource.org.apache.shale.test-sources-1.0.4.jar

    jar包,官方版本,自测可用

    shale:优雅且可扩展的反向抛光表示法语言

    页岩 一种优雅且可扩展的反向抛光符号编程语言。 因其强大和简单而优雅。 通过库可扩展。 当前这些包括但不限于 创建线程,信号量和互斥量的线程库 ...有关详细信息,请参见shale -h和shale -s,以及examples /目录。

    Pyrolysis characteristics of a North Korean oil shale (2014年)

    Pyrolysis characteristics of a North Korean oil shale and its pyrolysates were investigated in this paper. The pyrolysis experiments were conducted below 600 °C at a heating rate of 10, 15, 20 and 25...

    inkscape 地质地层矢量填充符号 patterns.svg

    674 Interbedded shale and limestone (shale dominant)(2st option) 页岩与石灰岩互层(页岩为主)(2) 675 Interbedded calcareous shale and limestone (shale dominant) 钙质页岩与石灰岩互层(页岩为主) ...

    地质专业词汇中英文对照.doc

    文档"地质专业词汇中英文对照.doc"包含了地质学领域的核心概念和术语,这些术语对于理解和研究地球的地质历史至关重要。以下是对这些词汇的详细解释: 1. **地层(stratigraphy)**:地层学是地质学的一个分支,研究...

    2018年10月13日托福阅读机经.pdf

    【托福阅读知识点详解】 托福阅读部分考察的是考生的学术阅读理解能力,涵盖了多个学科领域,如生物学、地质学、历史、艺术等。2018年10月13日的托福阅读机经中涉及了以下几个核心知识点: 1. **生物进化与眼睛的...

    Lithofacies and sedimentary characteristics of the Silurian Longmaxi Shale in the southeastern Sichuan Basin,China (2013年)

    #### 龙马溪页岩(SLS)的研究背景与意义 四川盆地东南部的龙马溪页岩是页岩气勘探的重点目标之一。随着能源需求的增长和技术的进步,页岩气作为一种非常规天然气资源,在全球范围内得到了广泛的关注。四川盆地作为...

    seam-javapolis2007

    ### Seam-Javapolis2007 知识点解析 #### 标题解析 - **标题**:“seam-javapolis2007” - **解释**:此标题表明了内容是关于 Seam 框架在 2007 年 Javapolis 大会上的演示或演讲材料。Javapolis 是一个重要的 Java...

    页岩:Amber框架的分页器

    页岩(Shale)是基于Amber框架的一个强大的分页器组件,专为Crystal语言的Web开发设计。Amber是一个全面的、现代化的Web开发框架,它借鉴了Ruby on Rails的许多优秀特性,并针对Crystal语言进行了优化。在Amber框架中...

    Reservoir characteristics of lacustrine shale oilof the Paleogene Hetaoyuan Formation in Biyang sag of Nanxiang Basin,Henan Province (2015年)

    尽管对南襄盆地泌阳凹陷古近系核桃园组湖相页岩采用大型压裂初产已获高产油气流,但是对该湖相页岩储集层特征尚未进行系统研究。文中应用薄片分析及全岩X衍射分析,结合陆相页岩矿物组成特点,将泌阳凹陷湖相页岩划分为...

Global site tag (gtag.js) - Google Analytics