• 2step


    2step是一个用于开发完整Web应用程序(包括web服务)的框架。作为一个Servlet框架,它的特性有:访问控制、logging、I18N、数据库访问,XML/XSL支持等,还用到Jetty,FOP和jCharts开源项目。该框架提供一个用于辅助开发的Eclipse插件。

        * 1. What is 2step

          Figure 1: 2step architecture 2step is a development environment for developing web applications in Java. With 2step you can build and run applications with web interface as e-commerces, content management system, web services, etc.

          2step is composed of three main parts: a programming language, a runtime servlet, and the servlet container.

              o 1.1. Programming language


                The programming language is a simplified version of Java with some additions oriented to web applications, as the ability to work with requests, sessions, blocks, tags and templates.

                When compiled, a 2step program is translated into Java. In fact, in 2step you are always working with Java objects. It is more a wrapper around Java than a complete programming language.

                2step was designed by and for Java developers. For a Java programmer only some things will be new, while the rest will be just Java.

              o 1.2. Runtime environment

                Figure 2: 2step architecture using AJP The runtime servlet is the interface between the servlet engine and the 2step application. It receives and processes requests from servlet engine and calls the part of application requested, and then returns the response to the servlet engine.

                It does automatically some functions, as managing database connections (JDBC), processing multipart requests, writing logs, generating access statistics, allowing and denying access to parts of 2step applications, scheduling tasks, deploying and reloading applications, selecting the right language for each client in I18N applications, etc.

              o 1.3. Web server and servlet container

                A servlet needs a servlet container and a web server to work properly. You can choose the web server and servlet container you want to use.

                2step comes with a simplified version of Jetty as a built-in servlet container and web server. Jetty supports HTTP, HTTPS and AJP. This means that you can use it as a web server, or you can map request through AJP and use Apache or IIS as a web front-end, or use AJP for load-balancing 2step applications.

                But if you want to use another servlet container different than Jetty, you may use any other, as Tomcat.

        * 2. What is needed to run 2step?

          A 1.4+ Java virtual machine. Some of current operative systems come with one installed by default, but it can also be downloaded from http://java.sun.com

          For running 2step applications you will only need Java Runtime Environment, but for compiling them you will also need Java Development Kit, mandatory for compiling Java.

          And, of course, the 2step distribution package.

        * 3. What can a 2step application do?

          Basically, the same as a JSPs, ASPs, PHP or .NET one. In fact it is possible to integrate a 2step application with any of the other ones (specially with JSPs) if needed.

          As a part of the Java platform, you can use any of the existing Java libraries for doing what you wish to do or create your own library in Java.

        * 4. How 2step works

          2step is used for developing web applications. A web application is an application that can be invoked remotely through HTTP. The HTTP request is received by a web browser which passes it to the web application that executes some code (depending on the request) and generates a response that is sent back to the requester client (usually as HTML but the response can be XML, PDF, JPEG or in any imaginable form).

          A 2step application, when compiled is translated into Java, and then compiled into Java bytecodes, so what is executed is just Java. There is not any slow interpreter as it happens with other technologies.

          2step runtime is a servlet. So when a request arrives to the web server it passes to the servlet container and then it passes to 2step runtime which executes the right part of Java bytecodes and returns the response back to the servlet container, and from it to the web server and finally to the client. All this process is usually transparent and as a developer you only will have to decide which host and URI the web application is mapped to.

        * 5. 2step 7.0 features

          The main features of the 2step environment are:

              o General features
                    + Small: runtime library for executing 2step applications is smaller than 400Kb
                    + Fast: A compiled 2step application is a pure Java application.
                    + Flexible: Use everything you wish from Java platform.
                    + Robust: It can serve pages for months without interruption.
                    + Scalable: From small applications to large clustered applications can be developed.
                    + Secure: 2step is prepared for high security environments.
                    + Familiar: 2step language grammar is strongly based on Java.
                    + Open sorce: 2step is free

              o Web-based administration area
                    + Access control for granting and revoking access to 2step applications on the fly
                    + Complete real-time activity statistics with charts
                    + Documentation accessible from administration
                    + Application rebuilding: A 2step application knows how to rebuild itself
                    + SQL console for querying the dababase from web
                    + Remote application deployment on the fly
                    + Remote monitoring supported

              o Web development features
                    + Template manipulation facilities: In 2step you work with templates and blocks
                    + JDBC data models: a way to automatize accesses to database
                    + Built-in access control: login page is rendered whenever needed automatically
                    + Java objects exposed through URLs: as a simplified RPC over HTTP for mapping methods to URLs
                    + URL rewritting built-in: 2step applications support browsers with cookies disabled
                    + Programmable URL scheme: Define how request parameters are embedded into URLs
                    + Automatic logging of IPs, sessions and requests

              o Internationalization (I18N)
                    + Support for internationalized texts
                    + Browser language autodetection
                    + Support for internationalized text in database

              o XML
                    + Support for XML development: pagers, views and other objects can be rendered as XML
                    + Browser XSL support detection
                    + XSL transformations supported in client, or in server if client does not support them
                    + PDF generation through XSL-FO

              o Web development API
                    + Form utilities
                    + URL navigation utilities (forward, back, etc)
                    + Pager utilities
                    + User input check utilities
                    + Navigation bar

              o Jetty
                    + Web server with SSL support
                    + Servlet engine for executing 2step applications
                    + Integrates with web servers through AJP
                    + Supports load balancing
                    + Supports strong two-way client/server authentication through SSL certificates
                    + And also works with any servlet container, as Tomcat

              o Other features
                    + HSQLDB database included
                    + jChart library for charts rendering
                    + GeoIP library included for resolving country from IP
                    + Application manager for starting and stopping applications remotely
                    + Support for MD5 passwords
                    + Integration with jEdit
                    + Console application with load test tool
                    + Overload detection
                    + Perfect for developing or integrating with web services

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

    网友留言/评论

    我要留言/评论

    相关开源项目

    Wicket:Wicket是一个基于Java 的Web开发框架,与Struts,WebWork,Tapestry 相类似。其特点在于对Html和代码进行了有效的分离(有利于程序员和美工的合作),基于规则的配置(减少了XML 等配置文件的使用),学习曲线较低(开发方式与C/S相似),更加易于调试(错误类型比较少,而且容易定位。一个结合Eclipse工具的Demo可以引导你如何利用Wicket来发开Web应用程序。
    IWebMvc:IWebMvc为开发基于Spring/Hibernate/dojo和DWR的Web应用程序提供一个基础框架。此外IWebMvc还支持 Groovy,Spring Webflow2.0,Jasper Reports/Dynamic Jasper,多文件上传(包括一个特殊的控件)。提供Image Gallery控件,投票控件。
    WebCream:WebCream提供基于Java应用程序和Applet的web GUI,允许开发人员利用AWT和Swing实现GUI前端应用程序,同时自动地使HTML访问该应用程序。
    JSPWidget:JSPWidget是一个Jsp框架,它提供了事件驱动,视图状态保留(view state retained),服务端GUI控制来使得JSP开发能够像在传统的窗体客户端与基于客户端的web应用程序中一样直观.
    Induction:Induction是一个强大,高性能的Java MVC Web应用开发框架。支持动态重新加载。基于类型的依赖注入。模型、视图、控制器之间的依赖分析。Induction的目标是简化开发复杂、高性能、可维护的Web应用。
    JVC:JVC(Java View Control) Java(视图-控制)开发框架的目的是构建一个快速开发、可维护的、稳定的web开发框架,并开放源代码,互相促进开发技术。目前比较流行的web开发框架有WebWork、Struts、Spring,这几个都是非常好的开发框架,都能实现MVC模式.参考上述几个框架的思想,开发简化了的视图-控制框架,弱化了模型层,为什么要弱化模型层,这是因为往往在模型中大部分是重复的工作。
    Wicket Stuff:这是一个把第三方组件集成到Wicket Web组件框架中的开源项目。 这个项目当前提供的组件包括: # Dojo Toolkit AJAX components integration # Hibernate(2.1 and 3) components # fValidate integration # Groovy integration components # Velocity Panel # Freemarker integration # JasperReports integration # TinyMCE WYSIWYG JavaScript editor integration # Yahoo UI components integration
    SerfJ: SerfJ提供了一种最简便的方式来开发Java REST Web应用程序。它能够帮助你开发一个基于优雅MVC模式的应用程序,采用某些约束习惯来代替配置文件,所以不需要用配置或注释来指定哪个视图对应控制器中的哪个方法。
    PrettyFaces: PrettyFaces是一个开源基于过滤器(Filter)的Servlets扩展 ,对JavaServer Faces – JSF 1.1, 1.2和2.0提供了增强支持。能够用于创建便于书签收藏、搜索引擎友好的网址。PrettyFaces优雅地解决了“RESTful URL” 问题,包括这样一些特性如:

    URL Rewriting — Replace ugly URLs: “/faces/page.jsf” with pretty, SEO-friendly, human URLS: “/optimized/page/”; The client browser never sees your original URLs, even in the source-HTML
    Dynamic view IDs — Now with dynamic view ID mapping for URLs (through El method expressions,) you can show different views based on run-time conditions, effectively de-coupling the URL from the JSF view.
    Page-load actions — Call one or more action-methods, at one or more phases, before rendering a view.
    Managed parameter parsing — HTTP parameters parsed from URLs are stored in managed beans, simply get a reference to your parameter bean for easy access from other Java classes.
    Navigation by ID — Define your page IDs in one place, reference them easily in action-methods and components, using standard JSF navigation techniques.
    Integrated validation — For URL and query-parameters, able to re-use existing JSF validator objects.
    Easy to configure — Requires absolutely minimal configuration; may be enabled using XML or annotations.
    WebGalileo Faces:WebGalileo Faces是一组加入Ajax技术的JSF组件。组件包括:容器(container),面板(panel),左右列表(dual list),菜单(menu),日期和时间组件,流程图组件(flow chart)。WebGalileo Faces已经内建支持多种IDE包括Sun Java Studio Creator,IBM Rational Application Developer,Oracle JDeveloper和Eclipse。