• Millstone


    Millstone是一个Web用户界面组件包。用户界面完全采用面向对象服务端编程方式实现。利用这个包你就可以开发出高质量基于Web的UI而不需要关心XHTML,CSS,JavaScript,浏览器兼容等问题。可通其提供的一个在线Demo来了解各个UI组件的特性。Millstone还提供一个可在Eclipse平台上创建和运行Millstone项目的插件。

    Millstone provides a new way of creating server side applications for the Java environment, bringing the ease of use and modularity of component-based development to Internet development. The leading idea in Millstone is to provide a full featured user interface component framework that is not restricted to any terminal type, , enabling any terminal to present the Millstone components using specific terminal adapters.

    Millstone focuses on providing an easy to learn programming model without compromising robustness or power of the architecture. The application programming interfaces also provide direct data binding possibilities on all levels.
    Application environment

    Millstone applications run in normal Java2 Enterprise Edition environments: Millstone applications can be built alongside other Java Servlets and Java Server Pages. The basic structural difference from those standard technologies is that Millstone applications only contain logical user interfaces with only minimal presentation details, if any. The presentation is created automatically using a theme that maps the logical user interface to a visual presentation.

    Millstone applications can use and be used alongside all the facilities provided by the Java application environment, including JDBC-compatible relational databases, Enterprise Java Beans (EJB), JNDI directories, Java applets and so on. On the other hand, Millstone applications themselves do not require any of those facilities. To deploy Millstone applications in web environment, only a Java Servlet container is required for communication with Web-browser.


    Millstone in Java Enterprise Edition Architecture
    Millstone structure

    Millstone applications run like conventional applications: the user starts the application, the application lasts while the user uses it and the application is finished on the users request. This is different from most web-oriented programming models, where the application is defined as set of templates that are used to generate a page for each request, and only the data connected to continuous processes is stored either in client or server side session or in a database. Because of this, the programming model of Millstone is more closely related to conventional client-side programming than traditional Internet-programming, which enables the developer to concentrate more on the business process without having to verify the data passed from previous stages of the application.


    Millstone application structure

    A typical Millstone application consists of data storage, business logic, application logic and a terminal adapter. The application provides user interfaces by using Millstone UI components. The components are represented on a client terminal through a terminal adapter that translates the user interface to client terminal. A set of themes can be defined to describe the look and feel of the user interface presentation on those devices. The application can access business logic trough Enterprise Java Beans or access the data storage layer directly. Millstone also provides a set of interfaces defining a consistent data model for connecting user interface components directly to different data sources or business logic providers.
    Component model

    A Millstone application is a program that extends an application class defined in the Millstone base library. Each application instance initializes its user interfaces and business logic connections on start and they last while the application is running. The Millstone base library provides an extensive set of basic user interface components that can be directly used by the application, but it is also possible to easily extend the functionality of provided standard UI components.

    The user interface components are active throughout their lifespan, but some client terminals refresh the user interface presentation on user-initiated transactions (web page requests, for example). The terminal adapter hides the details of different terminal standards and thus the programmer can assume continuous operation of the components.

    The user interface components provide an event framework that can be used for easily connecting the user interface to application and business logic. The user interface components' event framework is based on a hierarchical event model, where the event listeners can select the detail level of the received events. It is also possible to connect the events directly to arbitrary methods for easy passing of events from user interface to application logic.
    Web adapter

    The Millstone Web Adapter is a terminal adapter that connects Millstone user interface components to a web-environment. The Web Adapter supports a variety of different web browsers and adapts the user interface components suitable for web browsers using a set of different Internet technologies including XML, XSLT, HTML, JavaScript, CSS and HTTP.

    The Millstone Web Adapter includes a default theme that can be extended and modified for custom looking interfaces and new user interface components. The looks of the user interfaces can be customized by providing XML style sheets (XSL) that map the intermediate logical user interface definition language (UIDL), provided by the user interface components, to HTML.
    Data interface

    Most of the basic Millstone UI components support direct data access through these interfaces. This enables, for example, a Table UI component to directly connect to a table in a relational database, thus allowing the application to easily display the contents of the database table. The data connection can naturally be two-way, allowing any modifications to the Table-component's contents to be updated into the database without any special programming needed. Each of the UI components also implement data source interfaces, allowing the UI components to be connected to each other.

    点击次数   官方主页【官方主页】   下载地址【下载地址】

    网友留言/评论

    我要留言/评论

    相关开源项目

    Strecks:针对Java 5.0开发人员设计,扩展自Struts的一个Web框架。它的特点包括:POJO action,注释式校验,数据绑定和转换,依赖注入,拦截器等。
    Aranea:Aranea是一个开源,面向组件,事件驱动的Java MVC Web框架。它提供一种通用简单的方式来构建Web应用程序组件,复用自义定或一般的GUI逻辑,扩展该框架。Aranea强调必须使用POJOs面向对象的技术,并且提供一个Jsp标签库来帮助开发web GUI界面。
    Anvil:Anvil是一个基于Java的为Web程序开发的平台,独立或伺服式都是可部署的。它包括大量功能齐全的面向对象的编程语言。语言的一个子集也可用于一个以tag为基础的模板语言。所有的脚本和模板都被汇编为Java比特代码。
    RIFE/Crud:RIFE/Crud是RIFE Web框架的一个扩展模块,它可以用给定的POJOs自动生成CRUD web应用程序。它没有生成任何文件所有的事件都是在运行期进行.利用RIFE提供的 site-structure可以把它与你应用程序的数据流与逻辑流相结合.
    krank:krank是一个Java CRUD和Validation框架。校验模块能够利用Java注释(annotations)、property文件、XML文件或数据库表实现服务器端校验、Ajax校验或只有JavaScript校验。当前该模块能够集成到JSF、Spring MVC和Spring Webflow框架中使用。CRUD框架(包括新增/修改/读取/删除/过滤/排序)支持基于JPA的DAO对象。虽然默认只支持JPA,但是利用该框架提供的接口能够很容易实现对其它框架的支持如:Hibernate、Batis等。
    MVC框架 dingframework: 使用java有多年了,一直以来使用java就是用来做web开发,学习java是从servlet和jsp学起,刚开始感觉到serlvet,jsp好复杂,好强大,jsp强大到可以在页面里写java代码,随心所欲,无所不能。java代码和HTML代码结合在一起好乱,后来慢慢地接触了MVC的框架,先是struts,webwork,再到struts2,特别是struts2先进的设计理念,struts2无比的强大,但它的身躯也庞大,如此庞大的东西跑起来速度也就没那么快了,struts2的运行速度远比不上servlet。Spring MVC的速度也好快,但不喜欢它基于元数据的配置。于是想找一个同struts2一样有先进的设计思想,身躯小,速度和servlet差不多的框架,google了,但没有找到,于是就动手自己写了一个,于是有了dingframework MVC的延生。
    dingframework MVC是一个轻量的,速度极快的MVC框架。它只有几十K大小,功能和使用同struts2差不多,基于XML配置,配置文件分模块化,自动类型转换,声明式表单校验,国际化,自定义拦截器,自动化文件上专,防止重复提交等。dingframework MVC极其简单,有struts2的大部分功能,完全基于拦截器设计,如果去掉MVC中的拦截器,就变成了一个原生servlet应用。 
    Brill Framework:这是一个让你只需用Java与XHTML技术就能够开发交互式Web站点的开源框架。它目的就是开发出一个简单,支持WYSIWYG页面编辑而不需要编写 Java代码或在JSP页中使用特殊标签的框架。开发基于Java的Web应用程序通常是使用MVC设计模式和JSP技术,而Brill Framework虽然也使用MVC设计模式但在页面技术上它使用XHTML来代替JSP。XHTML的使用能够提高开发Web应用程序的效率与质量,从而减少了成本。
    Click:Click一个高性能的J2EE Web应用程序框架适用商业Java开发者。它具有: ◆ 简单易学, ◆ 面向页面与组件设计, ◆ 基于事件编程模型, ◆ 自动表单验证, ◆ 使用Velocity模板作为页面视图, ◆ 漂亮的错误报告功能, ◆ 使用Rico(一个开源的JavaScript库,它提供对AJAX完全支持并可让Web应用程序支持拖放操作等其它功能)来对AJAX的支持等。
    GWT Pleso Framework:GWT Pleso Framework是一个基于GWT的Web框架,主要用于开发AJAX数据库Web应用程序。它能够根据你的业务逻辑类自动生成用户界面。
    WFNM:WebFlow Navigation Manager (WFNM)是一个轻量级的Web框架.它允许WebFlow定义,服务端历史向导(navigation history),自动动Session清除.WFNM框架把web应用程序分离几个WebFlow,服务端保持访问过的页面和WebFlow的历史记录,可以动态地返回到访问过的页面与WebFlow.