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
剩余内容已隐藏,支付完成后下载完整资料
JT Yao,VV Raghvan,GY Wang(编辑):WSS#39;04,pp.111-118,2004。
为学术环境配置基于Java的Web应用程序开发环境
Ritesh Mehra,Satya K Gandham,宗欢武,Vijay V. Raghavan
路易斯安那大学拉斐特分校高级计算机研究中心
{RXM3304,SKG778,ZWU,RAGHAvAN } CACS.LuiShana.EDU
摘 要
在本文中,我们分析了典型的Web应用程序开发学术环境的特征和约束。为这样的环境引入并审查了一组基于Java的Web技术和工具。这项工作背后的动机是为大学教师和学生提供有关新兴技术和可用工具的全面资源,以促进Web应用程序的快速开发。
介绍
在本文中,我们提供了在学术环境中构建基于Java的Web应用程序环境的技术和工具方面的可用资源的综合视图。在诸如设置新的研究实验室或决定用于开发Web应用程序的合适技术的情况下,项目主管和学生经常会找到几种(如果不是太多的)评估替代方案。有时,这成为一个非常混乱的练习。例如,要探索哪些工具和技术以及为什么,这些工具的成本效益如何以及所涉及的学习曲线是什么等等。在本文中,我们将重点放在基于Java的Web开发应用程序上,我们回顾了一组基于Java的工具和技术,以解决学生和教师在做出这样的选择时遇到的共同问题。在本文的第2部分中,我们分析了典型学术环境的特征和约束,并提出了一组相关的基于Java的Web开发技术,用于开发健壮且可伸缩的Web应用程序。在本文的其余部分第3节中,我们回顾了一些流行的基于Java的工具,这些工具能够快速构建高效且经济高效的Web应用程序。
典型学术环境的特征与制约
在本节中,我们将回顾一些新兴的Java技术,如EJB,Struts,JSF和Tiles,它们与学术界的相关性。我们还讨论了极端编程与学术界的相关性。首先,我们将回顾开源软件的学术偏好,学生和教师的个人偏好以及一些常见的项目要求。
开源软件的偏好
大学通常偏爱开源软件解决方案。最近由纽约州立大学布法罗分校批准的决议表明,直接,无中介和不受约束的信息获取对于学术探究,学术对话,研究,研究方法的进步和学术自由至关重要。甚至业界也对推广开源软件解决方案表现出极大的兴趣。主要是因为开源策略,Sun的J2SE和J2EE API标准已经被一些领先的软件供应商采用和推广,例如BEA,IBM,Apache和Oracle等。除了遵守标准规范,其中一些Apache [28],SourceForge [29]等供应商现在也为许多其他基于Java的Web应用程序提供开源免费软件解决方案。
偏爱基于Java的开源软件的另一个原因是,大学/学院通常预算紧张,无法投入许可软件。因此,其中一个目标是尽量减少对工具的额外投资,这些工具的等价物也可以在互联网上免费获得。此外,大学通常只需要开发非商业原型来建立研究思路,而不需要许可软件的广泛功能支持。即使在需要商业许可的情况下,由于Java技术可以提供广泛的供应商支持,大学可以探索各种价格不同的工具。
学生偏好
通常,大学生在学术期间只从事研究/课堂项目的工作,因此他们更喜欢使用易于管理,易于配置,可在互联网上免费获得的工具(可能持续时间有限)和能很快完成他们的工作。同时,学生还希望获得新兴技术和最新工具的工作经验,以提高他们的技能。由于这种偏好,学生倾向于在他们的研究项目中学习和实施新技术。
例如,基于Java的MVC(模型 - 视图 - 控制器)设计模式,Struts [1],帮助学生满足上面提到的确切期望。
教师偏好
由于学生在毕业期间仅在有限时间内从事研究/课堂项目,因此始终需要对项目进行适当记录。开始新项目或翻新现有项目时,通常需要提供文档。因此,项目主管可以寻找易于访问,易于管理且能够捕获不同格式的设计和文档的工具。像ArgoUML [3]这样的设计工具为免费绘制不同类型的设计图提供了广泛的支持。类似地,像Javadoc [31]这样的API文档工具可以从源代码文件中编写的java doc注释中自动生成基于HTML的API文档。
在为学生选择项目方面,教授或项目主管通常没有多少选择来寻找具有特殊技能的领域专家。当学生们为这个项目提高工作效率时,他们已经接近完成毕业并离开学校。研究导向的项目通常也是动态的。通常,研究思路在开发过程中会发生变化,从而显着影响原始设计和应用程序功能。所有这些观察都表明了采用和采用“极限编程”原则的必要性。通过让开发人员(学生)和客户(外部或内部)参与项目的每个阶段,极端编程提供了应对频繁重新设计和重构的灵活性。由于该技术更适合从事频繁更换项目的小型团队,因此它为项目主管提供了一个很好的选择。它还有助于在团队中保持持续的学习环境,从而使其与学生更加相关。许多Java Web应用程序技术,如Tomcat [4],ANT [5],JUnit [6],XDoclet [7],Cactus [8]等都支持极限编程的原则
项目特定要求
Web应用程序的安全性和完整性变得越来越重要。随着互联网上在线货币交易的增加,很明显Web应用程序无法再对Web安全性做出妥协。即使在防火墙之后,Web应用程序也是跨站点脚本,URL操作,复杂SQL插入攻击等多种目标。恶意用户可以破坏基本的基于角色的安全性,并使用源代码。据观察,大学网络服务器比工业服务器更容易受到攻击。Sun提供了“Java Web Services Developer Pack(Java WSDP)”这一免费的集成工具包,可用于使用最新的Web服务技术和标准实现来构建,测试和部署XML [2]应用程序,Web服务和Web应用程序。可以使用XML数字签名,加密,Java身份验证和授权服务(JAAS)以及Java密码术扩展(JCE)来实现细粒度Web服务安全性。这对于需要全面Web服务安全性的学术项目非常有用。
如今,构建面向研究的Web应用程序的主要目标之一是通过技术转移最终促进(对行业或学术界)的想法。与此同时,原型系统有望提供同等质量的行业。Web服务经常被带入这种情况以暴露Web应用程序的现有功能。Sun的J2EE EJB [9]技术通过支持基于Java技术的分布式,事务性,安全和可移植应用程序来满足这一需求。此外,它还提供许多其他企业应用程序功能,如负载平衡,群集,资源池和缓存。EJB API规范是公开的,JBoss [10]等应用程序服务器为EJB容器提供免费支持。
使用EJB和JBoss的组合,学术社区可以免费开发健壮且安全的Web应用程序,只需花一点时间学习EJB技术。
有时,项目可能需要知识产权保护来保护机密部分,以便即使在分发应用程序之后源代码仍然未被暴露。Internet上有许多免费的Java混淆器,它们能够保护源代码,同时使应用程序公开可用,并且仍然保持平台独立性。
快速发展
Web开发技术和工具需要促进研究思路的快速发展。例如,“集成开发环境”可用于编码,调试和测试开发阶段,以加快流程。用于开发基于JAVA的Web应用程序(如Eclipse [11],NetBeans和JDeveloper等)的一些免费“集成开发环境”可用作构建平台,以便快速,轻松地开发研究思想。
同样,基于Java的技术Tiles有助于跨应用程序的不同网页管理HTML布局结构。它可以更好地控制网页布局,减少代码重复,避免HTML框架集问题并提高整体开发速度。
Tiles与JSP和Struts携手合作,通过使用在所有网页之间共享的通用布局模板来避免代码重复。通过使用XML配置文件,Java类和资源包实现MVC架构,Struts可以清晰地分离表示层,视图层和业务层。Struts还提供标记库和类来支持JSP,Tiles,JSF [12],消息国际化和自动表单验证等。
另一项新兴技术Java Server Faces(JSF)提供了用户友好的界面,可构建面向HTML的GUI控件及其相关的事件处理程序。各种技能水平的学生可以通过以下方式快速构建Web应用程序:在页面中组装可重用的UI组件;将这些组件连接到应用程序数据源;并将客户端生成的事件连接到服务器端事件处理程序。
通常大学可以轻松访问多个平台,例如Unix系统,Win NT系统,Linux系统,Win 2000机器,Solaris机器等。这种基础架构支持允许他们开发和测试独立于平台的Web应用程序。可以在任何平台上自动化部署基于Java的Web应用程序的过程之一的构建工具是“ANT”。学术界可以使用ANT在多个平台上免费快速部署和测试Web应用程序。
用于开发Java Web应用程序的可用工具
互联网上有许多基于Java的Web开发工具作为免费软件。他们每个人都有自己的优点和缺点。因此,可以存在用于设置web开发环境配置的若干可能组合。但是,选择留给学生和项目主管选择相关的。虽然免费软件通常不能保证对其使用过程中报告的漏洞和问题的扩展支持,但它们仍然为学术界提供了一个很好的选择,可以快速开发和测试他们的研究思路,而无需进行任何投资。
在本文的这一部分,我们提供了一个基于Java的流行免费软件工具列表,这些工具根据软件开发生命周期的不同阶段进行分类。对于列表中的每个类别,我们首先简要介绍该类别,然后对工具进行简要描述,并结束对学生和/或项目主管的学术相关性的评论。
设计和建模工具
设计是任何项目的重要阶段。精心设计的项目可以显着降低应用程序中功能和逻辑错误的可能性。
Internet上提供的开源设计工具之一是ArgoUML [3]。ArgoUML是一个类似于“Rational Rose”的设计和建模工具,除了可以免费获得之外。它可以在任何平台上运行,并且可以支持各种图表,例如类,状态图,活动,用例,协作,序列,部署图等。它还提供了用Java,C 和Php生成骨架代码并支持国际化的功能。对于学生和项目主管来说,在选择“Rational Rose”之前,这是一个很好的选择。由于它为基于UML的设计模式提供了广泛的支持,因此它可以节省对类似设计工具的许可版本的巨大投资,同时满足所有主要项目要求。
开发工具
开发通常是设计之后的下一个重要阶段。此阶段需要结合使用多种开发工具(如Web服务器,集成开发环境,重构和美化程序)来开发和管理代码。
开发Web服务器
Web服务器大致可分为两类,即开发服务器和部署服务器。两个流行的开源免费Web服务器是Tomcat和JBoss。Tomcat是一个开源免费开发服务器,而JBoss是一个开源的免费部署服务器。
Tomcat是一个Java Servlet容器,用于Servlet和JSP技术的官方参考实现。学生通常使用它来开发Java Web应用程序。
综合发展环境
集成开发环境(IDE)工具是构建Web应用程序的起始块。它们通常作为单一的统一平台来访问和管理集成在其中的其他工具。例如,Eclipse是一个流行的,开源的,可免费下载的集成开发环境,为Web开发提供了通用的工具集。插件如VSS插件(用于源代码控制),Tomcat启动器插件(用于Web服务器),Easy Struts插件(用于支持struts),XML编辑器插件(用于XML编辑)和SWT / Swing Designer插件(用于拖放GUI)支持)可以通过其通用插件支持API轻松与eclipse集成。
学生可以根据自己的选择轻松地将其他Web开发工具(如Tomcat,VSS等)集成到Eclipse中,并将Eclipse配置为控制Web应用程序环境不同部分的单一访问点。
小程序开发
Java抽象窗口工具包(AWT)可以做的远不止HTML在浏览器中可以做的事情。使用applet,AWT [13]可用于绘制图形,在运行时构建图像并支持动作和事件处理。由于applet在客户端的浏览器中执行,因此它们可以使用浏览器内置的JVM动态生成和显示图形。
许多工具都是基于这种技术构建的,以支持网页中的动态图像。这些工具通常提供自定义HTML控件的功能(创建具有更公平外观的文本框和组合框)。但是,学生在使用applet和applet开发工具时需要小心,因为有时浏览器设置会启用“仅受信任的applet”。此帐户上的浏览器甚至可以丢弃不受信任的普通applet。此外,使applet成为可信的applet可能需要额外的努力才能获得信任证书等。
重构
重构[25]是一种用于重构现有代码体系,改变其外部结构而不改变其内部行为的规范技术。每个重构步骤都执行一系列小的转换以产生重大的重组。每次重构步骤后都会对系统进行测试。由于该过程基于增量转换和测试,因此可以降低系统故障或功能发生意外变化的可能性。
代码重构允许重构源代码,以便原始功能保持不变。例如,在重命名变量以更好地反映其用法时,整个应用程序中所有出现的原始变量都需要更新。此外,在提取代码块并将其移动到单独的函数中以实现有效的代码重用时,需要额外的努力来确保不引入新的错误。
互联网上提供的免费开源自动重构工具之一是RefactorIT [26]。它可以在重构变量,方法或类时自动更新源代码中的所有引用,并且可以轻松地与大多数可用的IDE集成,如Eclipse,Netbeans等。它还检测不安全的throw和catch子句,隐藏的静态方法,未使用的变量赋值和松散的嵌套块。JEdit [27]是另一种折射工具,它还提供搜索和替换功能。对于学生来说,这
剩余内容已隐藏,支付完成后下载完整资料
资料编号:[440804],资料为PDF文档或Word文档,PDF文档可免费转换为Word
以上是毕业论文外文翻译,课题毕业论文、任务书、文献综述、开题报告、程序设计、图纸设计等资料可联系客服协助查找。