英语原文共 5 页,剩余内容已隐藏,支付完成后下载完整资料
可管理的Web软件架构:寻求简化
摘要
计算机科学先进水平的网络编程教学近年来一直备受关注。该领域的专题和技术如此广泛和多样化,设计和教学课程需要大量的知识和能够选择一个学期可以呈现的一致的主题和技术。学生应该学习足够的基本概念以及所选择的技术,以便他们能够在现实世界中进行实践,同时能够适应和扩展超出课堂上所教授的内容。很少有这样的课程,如果有任何教。我们描述了这样一个称为Web软件体系结构的课程,我们创建并已经在上个春季成功上课了。它是一个初级/高级计算机科学选修课程,它使用Java,Servlet,JavaServer Pages,HTML,JavaScript,JDBC和Apache-Tomcat Web服务器作为关键技术。我们的经验支持断言这样一个网络编程课程在计算机科学课程中是合法的。
类别和主题描述符:D.2.11 [软件工程]:软件架构 - 客户端/服务器; D.1.3 [编程技术]:并发编程 - 分布式编程; K.3.2 [计算机与教育]:计算机与信息科学教育 - 课程。
一般条款:设计,语言,实验。
关键词:Web软件架构,Web编程,客户端/服务器架构,网络编程,HTML,JavaScript,Java,Servlets,JavaServer Pages,教学法。
- 介绍
几乎每个计算机科学学生以及任何已经在行业编程的人似乎都想学习如何编
程互联网。 随着网络日益普及,这并不奇怪。
大多数大学向普通大学的学生提供一些入门级网络编程课程,其中使用HTML和JavaScript等脚本语言。然而,令人惊讶的少数大学为高级计算机科学学生提供严格的网络编程课程,作为密集的系统课程。其中一个原因可能是,这是Treu所说的“不可理解的阶级”[16]。不同的Web技术有着不可思议的范围,每个技术都在不断变化,但需要大量的学习努力。
希望学习和教授网络编程课程的传统系统领域的计算机科学系将遇到诸如HTML,DHTML,XHTML,XML,Java,Applet,JavaScript,Perl,CGI,级联样式
表格(CSS),JavaServer Pages(JSP),C#,Active Server Pages(ASP),PHP,JDBC,ODBC,Oracle,DB2,mySQL,网络编程,多线程编程,AWT,Swing,HTTP协议,互联网邮件扩展)协议,客户端 - 服务器模型,Apache,Tomcat,Iplanet,WebLogic,WebSphere,JRun,ServletExec,Resin,JBoss,ANT,Netscape,Internet Explorer等。这些领域的任何人都将压倒一切。人们需要足够了解所有这些,以便在有限的时间内(通常是四分之一或一个学期)为课程制定一个连贯的计划。
我们将介绍一个Web编程课程,Web软件架构,我们创建并在上个学期在大学成功地为初级/高级计算机科学生作为技术选修课。其目标是教授足够的基础知识以及足够的实践知识,以便学生在工业发展环境中成为一名高效的软件工程师,进行网络编程。我们关注的一组技术包括HTML,XML,JavaScript,CSS,Applet,Java,Swing,Servlets,JSP,JDBC,HTTP,客户端 - 服务器模型编程,Apache和Tomcat以及其他几个相关主题。对于大多数学生来说,这些技术是吸引人的技术,因为他们有更多关于Java相关技术的经验和希望。该课程是上个学期的专题课程,之后我们立即将其正式通过正式课程,并计划在每个春季学期进行教学。
- 目标
这门课的重要目标有:
bull;从程序员的角度来了解Web软件架构的整体情况。 bull;学习如何使用构成整体架构的每项技术。
bull;还要了解为什么每种技术都是按照它的方式设计的。 这是与Web系统架构相关的基本概念的重点。 bull;获得设计和实现应用程序的经验,这些应用程序大而复杂,足以成为现实世界的应用程序。
-
课程材料
我们使用的主要教科书是Core Servlets和JavaServer Pages [5]。不久之后,我们开始学习更多的Servlet和JavaServer Pages [6]。我们最终使用两者。下次我们可能会使用第二个作为主要文本,除非我们遇到更好的一个。这些科目有相当数量的书籍,但大多数书籍并不是作为教科书写的,而是作为专业的书桌参考书。
这两本书不包括其他任何详细的话题。所以我们在互联网上使用了许多教程和参考资料。虽然许多这些主题都有许多书籍,但是当网络上的信息随时可用时,要求学生购买许多不同科目的书籍是不切实际的。同样重要的是,在这种课程中的学生学习在互联网上找到必要的信息。通常,互联网上提供的信息是最新的,而许多出版的书籍已经过时。这是近年来计算机科学中发展最快的领域之一。我已经在参考文献中列出了一些我们发现有用的参考书[2,4,9,10,11,13,14,17]。
要查看我们在许多这些技术中使用的链接,请参阅http://www.cs.utah.edu/classes/cs4540/。课程网页上保留了教学人员和学生在整个学期发现的最新信息。在2003年春季再次教授本课程时,将更新更新的材料。
3.1课程材料的组织
我们花了约三分之一的学期在客户端学习主题以及一些准备课程。 它们包括HTML,XML,JavaScript,CSS,Java中的高级主题,如线程和反射,使用套接字的网络编程,分布式计算概念概述,HTTP协议,MIME协议以及其他一些例如AWT和Swing。
本学期的第二个三分之一,我们专注于服务器端的关键主题。 大多数时间花在servlet和JavaServer Pages上,处理诸如使用表单数据或HTTP请求标头处理客户端请求等概念,使用HTTP状态代码和HTTP响应标头生成服务器响应,处理Cookie,会话跟踪和一些基本 JSP功能。
该学期的最后三分之一是在服务器端使用JSP文档中的文件和Applet的更高级主题,使用JavaBeans与JSP,创建自定义JSP标签库,集成servlet和JSP,最后使用JDBC访问数据库。
在我们的下一次发行中,我们将在本学期结束时尝试挤压最终小组项目。
3.2关键编程分配
整个学期的编程任务中包含许多小程序。 有几个相当现实的应用程序在课堂上被研究和/或被分配为编程分配。 它们包括以下内容:
bull;比萨订购工具(网络编程)
bull;Resum#39;s过帐服务
bull;在线购物商店bull;在线旅行社
-
所用的教学方法
通过添加新技术来使用迭代过程每次迭代到一个网络软件的完整图片整个学期的建筑。我们从a开始Web域中简单的客户端 - 服务器计算。我们然后首先在客户端开始添加新技术到服务器端。对于每一种新技术,我们试图做到
以下:?了解如何通过简单的编程分配来使用它。知道如何单独使用是不够的。在对于技术人员来说,我们认为这可能足够好,但不是为计算机科学家。所以,还要了解为什么它的设计是这样的。这个是我们试图识别什么基础电脑的地方在设计中使用科学概念,为什么要这样做使用,他们对整个系统有什么影响,等等?尝试通过理解来解决如何改进设计贸易。一旦引入了足够数量的新技术(在某些情况下,一个是有效的)大幅跳跃根据编程分配的规定。有了这些作业,我们试图加入我们迄今为止所研究的许多概念和技术
可能的同时仍然试图解决一个被考虑的问题一个现实世界的问题。我们做的三件事是列在第3.2节。所以我们试图在很多方面进行交错小编程问题和中大规模问题整个学期在本学期结束时的某些形式的小组项目,说一个多月左右,本来是一件好事试试我们没有为缺乏资源和准备而尝试,这是我们的课程。然而,他们中的许多人仍然尝试了一个小组项目,因为他们拿了一个高级软件工程项目课程在同一时间学期。下次我会认真考虑做一个小组项目在本学期的最后三分之一或四分之一。 -
多层Web软件架构
典型的多层Web应用程序环境包括
以下[15]:
前端/客户端层:客户端,通常是网络浏览器如Netscape或Internet Explorer。
Web层:HTTP服务器,通常是Web服务器作为Apache或Iplanet。该层与
客户端客户层和应用层服务器端。
应用层:一个JSP / Servlet环境,如Tomcat或Iplanet。这也可能是一个应用程序服务器,如Iplanet,WebLogic或WebSphere。这一层
与Web层以及数据/资源进行通信层。
数据/资源层:通常是数据库服务器作为Oracle,mySQL或DB2。在客户层面,我们选择研究的关键技术是HTML,JavaScript,CSS和Applet。在网络上
我们使用Apache。在应用层,我们专注于在使用Tomcat作为服务器的servlet和JSP上。在里面数据/资源层,我们使用mySQL主要是因为它是免费提供
这些选择是我们使用欲望的直接结果与Java相关的Java相关技术
技术为基础的,这将是另一个主要候选人
(参见[16]一个例子)。我们选择了与Java相关的技术原因有几个。 Apache和Tomcat都是基于Java技术是最广泛使用的网络服务器和免费提供。学生更准备采用基于Java的课程而不是Microsoft技术因为我们的课程设置的方式向上。其他外围技术,如数据库系统数据/资源层需要的是可以在no
成本。我们不希望这个课程太过于规范,公司专有技术。和教练当然对于Javarel来说更加了解技术比微软的技术。下一学期,当我们再次,我们正在考虑使用两者。 -
课程的主要先决条件
在我们的第一要求中,我们需要高级数据结构和算法和软件实践(本科生
级软件工程课程)作为先决条件。 学生们谁有这些课程有足够的Java编程
经验。 有一些学生已经有了采取部分或全部操作系统,数据库系统和网络。 处理多样化的学生背景如第8节所述。我们结束了一些高级话题,如基本的
网络编程,操作系统概念等作为多线程编程,数据库概念如SQL,编程语言问题如re等等理想的情况是要求操作系统,网络,数据库系统和强大的背景
面向对象编程作为先决条件。
7.涵盖什么
7.1关键Web编程概念
客户端上的HTML和JavaScript等主题,服务器端的Servlet和JSP被认为是关键的Web编程主题,显然必须进行详细的研究。对于这样一门课程的预期教练来说,更有趣的是了解在网络编程领域外被认为是什么样的其他概念,但是由于它们在网络编程中扮演了重要角色,因此还需要被覆盖。我不会在本文中介绍网络编程中的基本关键概念,因为如果您决定教这样的课程,您将很容易弄清楚他们是什么,并学习足够的知识。我将专注于对您而言并不明显的其他概念,但由于这些概念在网络编程中的作用,您仍然需要考虑这些概念。这些将在下一节中讨论。
7.2需要的其他概念
套接字编程就是这样一个概念[4,13]。学生可能不会直接使用它,但这将有助于他们更好地了解下面的情况。还有更多的内容需要充分详细的了解:
bull;分布式计算模型:Web编程主要依赖于客户端 - 服务器模型,这是一种特殊的分布式编程模型。因此,它需要对客户端 - 服务器模型的良好概述[2,4,14]。
bull;网络协议和编程:网络编程需要对网络编程和网络协议(如HTTP和MIME)有一定程度的了解。我们还介绍了TCP / IP,UDP,防火墙,代理服务器等的一般概念[8,13]。我们使用套接字构建了比萨订购服务程序。 bull;Java中的高级概念:涵盖了Java Reflection API和反思背后的概念,以便更好地理解分布式计算的更抽象层次[1]。
bull;多线程编程:这个概念是绝对必要的。 Web服务器实现为基本概念之一。学生应该了解单线程模型和多线程模型,以了解Web服务器的运行方式,并有效地对Internet进行编程[5,6,11]。
bull;Java与JSP之间的关系:JSP的设计受到Java设计的影响很大。从编程语言设计的角度来看,他们之间的密切关系将是有启发性的。在我们讨论JSP结构时,我们尝试将它们与Java语言的设计联系起来。学生看到这个连接非常重要[5,6]。
bull;数据库连接:尽管一些Web编程书籍不将数据库连接视为Web编程的关键主题,但任何意义上的任何Web编程几乎总是涉及对数据库系统的一些访问。 JDBC是一个这样的例子。几乎是一个必须的话题,需要一些额外的时间来涵盖查询语言,关系等概念[5,12]。 bull;Java Beans:JSP允许您加载要在JSP页面中使用的bean。此功能可让您重用Java类,而不会牺牲JSP单独添加的方便性。要使用JSP有效地进行编程,重要的是要了解beans [3,5]的基本概念。
7.3 Web服务器:Apache和Tomcat
在基于Java的Web编程世界中,分别将Apache和Tomcat视为Web服务器和Java服务器是很自然的。但是,在学习,安装和维护方面存在很大的开销。关于它们的文档是足够的,但通常是过时的,这对于这种软件不是唯一的。 Web服务器技术迅速发展,维护文档数据似乎并不容易。您正在处理网络编程技术的事实意味着您正在处理移动目标。通常情况下,最新的文档是源代码本身。准备好处理一些,如果你教这样的课程。一些积极的学生甚至兴奋地深入到代码本身。如果你识别出很少的数据,你甚至可以做一些有趣的研究。
7.4网络安全
这是一个我们没有太多时间深入研究的课题,但这将是一个值得关注的重要问题。我认为这是一个有些不安和快速的目标。
7.5伦理与隐私
一方面,我
全文共9453字,剩余内容已隐藏,支付完成后下载完整资料
资料编号:[143514],资料为PDF文档或Word文档,PDF文档可免费转换为Word
以上是毕业论文外文翻译,课题毕业论文、任务书、文献综述、开题报告、程序设计、图纸设计等资料可联系客服协助查找。