Configuring Java-Based Web Application Development Environment for an
Academic Setting
Ritesh Mehra, Satya K Gandham, Zonghuan Wu, Vijay V.Raghavan
Center for Advanced Computer Studies,
University of Louisiana, Lafayette
{rxm3304, skg7478, zwu, raghavan}@cacs.louisiana.edu
Abstract
In this paper, we analyze the characteristics and constraints of a typical academic environment for web application development. A set of Java-based web technologies and tools are introduced and reviewed for such an environment. The motivation behind this work is to provide comprehensive resource for university faculty members and students about emerging technologies and available tools to facilitate rapid development of web applications.
1. Introduction
In this paper we present a comprehensive view of available resources in terms of technologies and tools for building Java based web application environment in academic settings. In situations like, setting a new research lab or deciding upon a suitable technology to use for developing web applications, project supervisors and students often find several, if not too many, alternatives to evaluate. At times, this becomes an extremely confusing exercise. For instance, which tools and technologies to explore and why, how cost-effective such tools are and what is the learning curve involved etc. In this paper, keeping our focus on Java based web development applications, we review a set of Java based tools and technologies to address the common issues encountered by students and faculty members when making such a choice. In section 2 of this paper, we analyze the characteristics and constraints of a typical
academic environment and present a set of relevant Java based web development technologies for developing robust and scalable web applications. In rest of the paper, section 3, we review some of the popular Java
based tools capable of building efficient and cost-effective web applications rapidly.
2. Characteristics and Constraints of a
Typical Academic Environment
In this section, we review some of emerging Java technologies like EJB, Struts, JSF and Tiles in context of their relevance to academic community. We also discuss the relevance of extreme programming to academic community. To start with, we review academic preferences for open source software, personal preferences of student and faculty and some of the common project requirements.
2.1 Preference for Open Source Software
Universities usually have preference for open source software solutions. This is evident from the recent resolution approved by University of Buffalo, State University of New York stating that direct, unmediated and unfettered access to information is fundamental and essential to scholarly inquiry, academic dialog, research,
Advancement of research methods and academic freedom. Even industry has shown great interest in promoting open source software solutions. It is mainly because of open source policies that Sunrsquo;s J2SE amp; J2EE
API standards have been adopted and promoted by some of the leading software vendors, such as BEA, IBM, Apache and Oracle etc. In addition to adhering to standard specifications, some of these vendors like
Apache [28], SourceForge [29] etc. are now offering open source free software solutions for numerous other Java based web applications as well.
Another reason for preferring Java based open source software is due to the fact that universities/colleges usually have tight budgets to invest in licensed software. Therefore, one of the goals is to minimize extra
investments on tools the equivalents of which may as well be available free on Internet. Moreover, universities usually need to develop
only non-commercial prototypes for establishing the research ideas and do not require the extensive feature support of licensed software. Even in cases when commercial license is necessary, due to the wide vendor support available for Java technologies, universities can explore a wide rangeof tools with varying prices to choose from.
2.2 Student Preferences
Usually university student work on research/class projects only part time during their academic semesters, as such they prefer to use tools that are easy-to-manage, easy-to-configure, freely available on Internet (may be
for limited duration) and can quickly do their job. At the same time, students also want to get hands on working experience in emerging technologies and latest tools to enhance their skill sets. As a result of this preference, students tend to learn and implement new technologies on their research projects.
For instance, Java based MVC (model-view-controller)design pattern, Struts [1], help students in meeting the exact expectations mentioned above.
2.3 Faculty Preferences
Since students work on research/class projects only for limited hours during their course of graduation, there is always a need to maintain the projects properly documented. Documentation is often required when starting a new project or renovating an existing one. As a result, project supervisors look for tools that are easy-to-access, easy-to-manage and are capable of capturing different formats of design and documentation. Design tools like ArgoUML [3] offer extensive support for drawing different types of design diagrams free of cost. Similarly, API documentation tools like, Javadoc [31],can automatically generate HTML based API documentation from java doc comments written inside the source code files.
In terms of selecting students for their projects,
professors or project supervisors usually do not have many options to find domain experts having special skill sets. And by the time students become productive for the project, they are already close t
剩余内容已隐藏,支付完成后下载完整资料
配置基于Web应用环境的专业设置
概要
本文分析一个典型的web应用发展下的学术配置的特征和约束。介绍一种基于java的web技术和工具。这项工作的动机是为大学教员和学生提供全面的资源,让他们了解新兴技术和可用工具,以促进web应用程序的快速发展。
1.简介
本文介绍了在学术背景中构建基于javaweb应用的技术和工具方面的可用资源的综合情况。在这样的情况下,设置一个新的研究实验室或决定一个合适的技术用于开发web应用程序,项目主管和学生经常会有新发现。有时,这会造成一个极度混乱的情况。举例来说,哪些工具和技术来探究并且为什么用他们,这些工具的成本效益如何,涉及学习路径等等。本文将重点放在基于javaweb开发应用程序上,回顾了一套基于java的工具和技术,以解决学生和教职员在做出这样的选择时遇到的常见问题。在本文的第2节中,分析了典型的学术环境的特点和约束,并提出了一套基于java的相关web开发技术,以开发健壮的和可伸缩的web应用程序。在剩下的第三部分,回顾一些基于java的流行的工具,能够快速构建和高效的web应用程序。
2.典型的学术环境的特点和约束
在这一节中,在与学术界相关的背景下回顾一些新兴的java技术,如ejb、struts、jsf和tiles。平且讨论了极端编程对学术界的相关性。首先,预览开源软件的学术偏好,学生和教员的个人喜好以及一些共同的项目要求。
2.1开源软件的偏好
大学通常偏爱开源软件来解决问题。这是显而易见的,从最近的决议批准的布法罗大学,纽约州州立大学直接说,无媒介的和无限制的获取信息是根本和必不可少的学术调查,学术对话,研究,研究方法和学术自由。即便是业界也对推广开源软件解决方案表示了极大的兴趣。主要是由于开源策略,sun的j2se和j2eeapi标准已经被一些领先的软件厂商(如bea、ibm、apache和oracle等)采纳和推广。除了遵守标准规范之外,一些像apache(28)、sourceforge[29]等供应商也为许多其他基于java的web应用程序提供了开源软件解决方案。
偏爱基于java的开源软件的另一个原因是因为大学或学院通常只有紧缩的预算来投资许可软件。因此,其中一个目标是尽量减少对同类工具的额外投资。此外,大学通常只需要开发非商业原型,以建立研究的想法,不需要广泛的功能支持许可软件。即使在商业许可证是必要的情况下,由于广泛的供应商支持可用于java技术,大学可以探索一个广泛的工具,选择不同的价格。
2.2学生偏好
通常大学学生在研究项目工作在他们的学术学期期间仅只是部分时间,因为这样他们宁可使用简单管理,简单配置,自由地可利用的工具在互联网(可能是有限的期间)并且能迅速地做他们的工作。同时,学生们也希望掌握新兴技术和最新工具的工作经验,以提高他们的技能。由于这种偏好,学生们倾向于学习和实施他们的研究项目的新技术。例如,基于java的mvc(模型-视图-控制器)设计模式,struts[1],帮助学生满足上述确切的期望。
2.3教员偏好
由于学生在毕业的过程中只在有限的时间内从事研究/班级项目,所以总是有必要保持项目的正确保存。在启动新项目或翻新现有工程时,通常需要文档。因此,项目主管查找简单获取、简单管理和能够捕捉不同格式的设计和文档的工具。设计工具如ArgoUML[3]提供广泛的支持,绘制不同类型的设计图。类似地,api文档工具(如javadoc[31])可以从javadoc注释中自动生成基于html的api文档,这是在源代码文件中编写的。在挑选学生的项目方面,教授或项目主管通常没有很多选择,可以找到具有特殊技能的专家。当学生们对这个项目有成效的时候,他们已经接近完成毕业典礼和离开学校了。此外,研究型项目通常是动态的。通常,研究思想在发展过程中发生了变化,从而显著影响了原有的设计和应用功能。所有这些意见都表明有必要采纳和采用'极端规划'的原则。
通过让开发者(学生)和客户(外部或内部)参与项目的每个阶段,极限编程提供了灵活的应对频繁的重新设计和重构。由于该技术更适合于在频繁更改项目上工作的小型团队,因此它为项目主管考虑提供了一个绝佳的选择。它还有助于保持团队内持续的学习环境,从而使其更切合学生。许多javaweb应用技术如tomcat[4],ant[5],junit[6],xdoclet[7],cactus[8]等支持极端编程的原则。
2.4项目规格需求
web应用程序的安全性和完整性变得越来越重要。随着网上货币交易的增多, 网络应用程序在网络安全上无法再妥协。即使在防火墙之后,web应用程序还是存在跨站点脚本、url操作、复杂的sql插入攻击等现象。恶意用户可以颠覆基本的角色基础安全,并使用源代码。还有人指出,大学网络服务器比工业服务器更容易受到攻击。sun提供了'java web 服务开发人员包(java WSDP)'一个免费的集成工具包,可以使用最新的web服务技术和标准实现来构建、测试和部署xml[2]应用程序、web服务和web应用程序。细粒度web服务安全性可以使用xml数字签名、加密、java身份验证和授权服务(jaas)和java加密扩展(jce)来实现。这对于需要全面的web服务安全性的学术项目可能非常有用。
现今,构建研究型web应用程序的主要目标之一是通过技术转移,最终促进(对工业界或学术界)的想法。同时,原型系统有望实现工业的同等质量。web服务通常被引入到这种情况下,以展现web应用程序的现有功能。sun的j2ee的ejb[9]技术通过支持基于java技术的分布式、事务性、安全和便携的应用程序来解决这一需求。此外,它还提供了许多其他企业应用程序功能,如负载平衡、集群、资源池和缓存。ejbapi规范是公开的,并且像jboss[10]的应用服务器提供了对ejb容器的免费支持。
利用ejb和jboss的组合,学术界可以在学习ejb技术的情况下,开发健壮的和安全的web应用程序。
有时,项目可能需要知识产权保护,以确保机密部件的安全,以便在应用程序分发后,源代码仍未暴露。网络上有许多可用的java模糊处理程序,它们能够确保源代码的安全,同时使应用程序公开可用并保持其平台独立。
2.5快速发展
web开发技术和工具促进研究思路的快速发展。例如,'集成开发环境'可用于开发的编码、调试和测试阶段,以加快进程。开发基于java的web应用程序(如eclipse[11]、netbeans和JDeveloper等)的一些可自由使用的'集成开发环境'可以作为构建平台来快速、轻松地开发研究思路。
类似地,基于java的技术,有助于在应用程序的不同网页上管理html布局结构。它提供了对网页布局的更好控制,减少了代码重复,避免了html框架集问题,提高了总体开发速度。
jsp和struts一起工作,以避免使用通用的版式模板共享所有网页中的代码重复。struts通过使用xml配置文件、java类和资源实现mvc架构,对表示、视图和业务层进行了清晰的分离。struts还提供标记库和类以支持jsp、jsf[12]、消息国际化和自动表单验证等。
另一种新兴技术,java服务器面临的(jsf)提供用户友好的界面,以构建面向html的gui控件及其相关的事件处理程序。不同技能级别的学生可以通过:在页面中组装可重用的ui组件来快速构建web应用程序;将这些组件连接到应用程序数据源;并将客户端生成的事件连接到服务器端事件来处理程序。
通常大学可以轻松访问多个平台,例如unix系统,linux系统,solaris机器等这种基础结构支持允许他们开发和测试平台独立的web应用程序。在任何平台上,可以自动执行基于java的web应用程序部署过程的生成工具之一就是'ant'。学术界可以使用ant在多个平台上快速部署和测试web应用程序,从而不受成本的影响。
3.可用的工具来开发javaweb应用
有许多基于javaweb开发工具可以在因特网上免费使用。他们每个人都有自己的优缺点。因此,可以有几种可能的组合来设置web开发环境配置。然而,选择的过程是与学生和项目监督员选择相关的。虽然免费软件通常不保证对bug和在使用过程中报告的问题扩展的支持,但他们仍然为学术界提供了一个绝佳的选择,可以在不进行任何投资的情况下快速开发和测试其研究思路。在本文的这一部分,我们提出了一个流行的基于java的免费软件工具的列表归类为每个不同的阶段的软体开发生命周期。对于列表中的每个类别,我们首先简要介绍了该类别,然后对工具进行了简短的描述,并对其对学生或项目主管的学术意义进行了评论。
3.1设计和模型工具
设计是任何项目的重要阶段。一个精心设计的项目可以大大减少应用程序中功能和逻辑错误的可能性。
一个开放源码设计工具可用互联网上ArgoUML[3]。ArgoUML是一个设计和建模工具类似于'Rational Rose'在许多方面,它是免费提供。它可以在任何平台上运行,并且可以支持各种关系图,如类、状态图、活动、用例、协作、序列、部署关系图等,它还提供了在java,c/c 和php中生成代码的功能,并支持国际化。对于学生和项目督导员来说,这是一个很好的选择。由于它为基于uml的设计模式提供了广泛的支持,它可以在满足所有主要项目需求的同时,为类似设计工具的许可版本节省大笔投资。
3.2开发工具
在设计之后,开发通常是下一个重要阶段。此阶段需要多种开发工具(如web服务器、集成开发环境、重构和优化)的组合,以开发和管理代码。
3.2.1开发web服务
web服务器可以大致分为两类,开发服务器和部署服务器。两个流行的开源免费web服务器是tomcat和jboss。而tomcat是一个开源的自由开发服务器,jboss是一个开源的免费部署服务器。
tomcat是一个javaServlet容器,用于在servlet和jsp技术的正式参考实现中。学生们通常使用它来开发javaweb应用程序。
3.2.2完整的开发环境
集成开发环境(ide)工具是构建web应用程序的起始块。它们通常充当单一的统一平台来访问和管理集成在其中的其他工具。例如,eclipse是一种流行的、开源的、可自由下载的集成开发环境,为web开发提供了通用工具集。像vss插件(用于源代码管理)的插件,tomcat启动插件(用于web服务器),简单的struts插件(用于struts支持),xml编辑插件(用于xml编辑)和swt/swing设计师插件(用于拖放gui支持)可以通过它的通用插件支持api轻松地与eclipse集成。学生可以轻松地将诸如tomcat、vss等其他web开发工具与eclipse结合在一起,并把eclipse配置为控制web应用程序环境的不同部分的单一访问点。
3.2.3applet开发
java抽象窗口工具包(awt)可以比html在浏览器中所能做的更多。使用applet,awt[13]可用于绘制图形,在运行时生成图像和支持操作和事件处理。由于applet在客户端的浏览器中执行,所以它们可以使用浏览器内置的jvm动态生成和显示图形。
许多工具都建立在这一技术上,以支持网页中的动态图像。这些工具通常提供自定义html控件的功能(创建具有更公平外观的文本框和组合框)。但是,在使用applet和applet开发工具时,学生需要小心,因为有时浏览器设置启用'仅受信任的applet'。此外,在获得信任证书等方面,使applet成为可信的applet可能需要额外的努力。
3.2.4重构
重构[25]是一种训练有素的技术,用于重组现有的代码体,改变其外部结构而不改变其内部行为。每个重构步骤执行一系列小转换,以产生重大的重组。每个重构步骤后都测试系统。由于该过程基于增量转换和测试,因此可以减少系统故障或功能不理想的更改的可能性。
代码重构允许对源代码进行重组,使原始功能保持不变。例如,在重命名变量以更好地反映其用法时,整个应用程序中的所有原始变量都需要更新。另外,在提取和移动代码块的同时为有效的代码的重用功能,需要额外的努力来确保新的错误不会被引入。
一个免费的,开放的,自动重构的工具,可在互联网上获得的是RefactorIT[26]。每当变量、方法或类重构时,它都可以自动更新源代码中的所有引用,并且易于与eclipse、netbeans等大多数可用的ide进行集成。它还检测不安全的抛出和捕获子句、隐藏的静态方法、未使用的变量赋值和松散嵌套块。jedit[27]另外是提供搜索和替换功能的折射的工具。对于学生来说,这些工具提供了一个很好的选项,可以在与ide集成时轻松管理源代码中的折射。
3.2.5EJB编码生产者
这些工具对于涉及广泛使用ejb组件的高级应用程序非常有用。例如,xdoclet是一个开源的ejb代码生成引擎,它通过在特殊的javadoc标记中添加元数据(属性)来为java实现面向属性的编程。对于维护大量ejb,其中一个ejb跨越了更多的文件,这一点特别有用。由于它能够使用标准模板和属性信息生成源代码文件,因此它可以帮助快速和持续地将web组件集成到w
剩余内容已隐藏,支付完成后下载完整资料
资料编号:[484073],资料为PDF文档或Word文档,PDF文档可免费转换为Word
以上是毕业论文外文翻译,课题毕业论文、任务书、文献综述、开题报告、程序设计、图纸设计等资料可联系客服协助查找。