校园教室信息管理系统 大学毕业设计
教师管理系统设计毕设

1 绪论教师信息管理系统是一所院校在各种信息管理中的一部分,对于学校管理者来说是很重要的,所以所设计的系统应该能为管理者提供教师的基本信息管理手段和一些方便的查询方式。
在过去,计算机不是很普及和计算机应用性不高的年代,人们使用人工的方法管理各式各样的档案,这种管理方式存在着很多缺点:效率底,保密性差,会产生大量的文件和数据,给查找,更新和维护信息都带来了相当大的困难。
随着科学技术的不断发展,计算机科学日益成熟,其强大的计算功能已经被人们深刻地认识到,计算机发挥着越来越重要的作用。
作为计算机应用的一部分,使用计算机对教师信息进行管理,具有人工方式所无法比拟的优越性。
如,查找方便,可靠性高,存储容量大,保密性好,寿命长,成本低,维护十分方便等,这些优点能够极大得提高工作的效率,这也是学校的科学化,现代化,正规化的一点体现。
1.1 毕业设计主要任务1用户登录2 修改个人密码3 个人信息维护4 教师信息管理5 教师信息查询6 教师工资管理7教师工资查询8安全退出1.2 课题的意义教师管理系统是以教师管理为主。
作为一个管理信息系统,其服务的对象是双方面的,学校和教师。
教师系统力求给用户方便快捷的途径去管理这些繁琐的数据。
为教师管理带来方便,也为学校带来方便、实现信息化。
根据可行性研究的结果和客户的要求,分析现有情况及问题,采用两级管理结构。
1.3 论文的工作和安排本次设计的目标是:开发一个网站,设计一套功能比较完善的、方便使用的在教师管理系统。
本系统主要包括后台管理模块(管理员身份)和前台模块(用户身份)两大部分。
在实施后能达到系统界面美观友好,操作简单易行,查询灵活方便,数据存储安全可靠,系统维护安全、方便、可靠,并能够满足实用性、先进性要求的目标。
论文分为五个部分:第一章即本章绪论,简述教师管理系统这个课题的背景情况以及开发本系统的意义。
第二章为需求分析,本章中明确了系统需要实现的功能,分析了系统的用例,并介绍根据系统的需求选择的开发工具和技术的概况。
教师管理系统设计毕设

1 绪论教师信息管理系统是一所院校在各种信息管理中的一部分,对于学校管理者来说是很重要的,所以所设计的系统应该能为管理者提供教师的基本信息管理手段和一些方便的查询方式。
在过去,计算机不是很普及和计算机应用性不高的年代,人们使用人工的方法管理各式各样的档案,这种管理方式存在着很多缺点:效率底,保密性差,会产生大量的文件和数据,给查找,更新和维护信息都带来了相当大的困难。
随着科学技术的不断发展,计算机科学日益成熟,其强大的计算功能已经被人们深刻地认识到,计算机发挥着越来越重要的作用。
作为计算机应用的一部分,使用计算机对教师信息进行管理,具有人工方式所无法比拟的优越性。
如,查找方便,可靠性高,存储容量大,保密性好,寿命长,成本低,维护十分方便等,这些优点能够极大得提高工作的效率,这也是学校的科学化,现代化,正规化的一点体现。
1.1 毕业设计主要任务1用户登录2 修改个人密码3 个人信息维护4 教师信息管理5 教师信息查询6 教师工资管理7教师工资查询8安全退出1.2 课题的意义教师管理系统是以教师管理为主。
作为一个管理信息系统,其服务的对象是双方面的,学校和教师。
教师系统力求给用户方便快捷的途径去管理这些繁琐的数据。
为教师管理带来方便,也为学校带来方便、实现信息化。
根据可行性研究的结果和客户的要求,分析现有情况及问题,采用两级管理结构。
1.3 论文的工作和安排本次设计的目标是:开发一个网站,设计一套功能比较完善的、方便使用的在教师管理系统。
本系统主要包括后台管理模块(管理员身份)和前台模块(用户身份)两大部分。
在实施后能达到系统界面美观友好,操作简单易行,查询灵活方便,数据存储安全可靠,系统维护安全、方便、可靠,并能够满足实用性、先进性要求的目标。
论文分为五个部分:第一章即本章绪论,简述教师管理系统这个课题的背景情况以及开发本系统的意义。
第二章为需求分析,本章中明确了系统需要实现的功能,分析了系统的用例,并介绍根据系统的需求选择的开发工具和技术的概况。
教师管理系统的分析与设计-JSP编程毕业设计

教师管理系统的分析与设计1.1系统需求高校教师管理系统应该是一个功能强大,有利于提高学校工作效率的系统。
针对其中的教学管理来说,各个学院应该可以安排新学期要开设的专业和课程,教师可以根据学院的课程列表选择本学期要讲授的课程,教师还可以参加某些教学研究项目,发表论文、专著,管理部门可能获得相关的教学信息及统计报表。
通过对上述的系统的需求的分析,可以获得如下功能性的需求:(1)学院可以安排新学期的教学计划。
(2)教师可以选择本学期要讲授的课程。
(3)教师可以选择要从事的考研项目。
(4)管理员可以对教师的基本信息、课程信息、教学研究项目信息、辅助信息等进行增加、删除、修改、查询等操作。
(5)管理员可以统计出各种相关的报表。
1.2.1识别参与者参与者的描述如下:(1)Administrator(管理员):描述:管理员可以创建、修改、删除、查询相关信息,可以按排教学计划。
示例:某个学院的负责人(2)Teacher(教师):描述:教师可以选课、可以注册参加教学研究项目。
示例:某个学院的教师1.2.2识别用例(1)Login(登录):本用例提供了验证用户身份的功能。
(2)Maintain Info(信息维护):本用例提供了创建、修改、删除、查询教师信息、课程信息、教研信息、辅助信息的功能。
(3)Plan teach(教学计划):本用例提供了各学院安排新学期教学计划的功能。
(4)Select Course(教师选课):本用例提供了教师选择新学期要讲授的课程的功能。
(5)Take Item(注册项目):本用例提供了教师注册参加教学研究项目的功能。
系统用例图如下:1.2.3用例的事件流描述1.“Login”(登录)1.1简单描述:本用例描述了用户如何登录到系统中。
1.2前置条件:无。
1.3后置条件:如果用例成功,则用户登录到系统中,否则系统状态不变。
1.4扩充点:无。
1.5事件流1.5.1基流:当用户登录到系统时,用例启动。
毕业设计---教师信息管理系统的设计与实现

毕业设计论文论文题目:教师信息管理系统的设计与实现系部计算机科学与技术系专业班级学生姓名学号指导教师2011年5 月18 日摘要随着高等院校规模的不断扩大,教师的数量急剧增加,有关教师的各种信息量也在不断地成倍增长。
对教师个人信息的管理工作就成为一项重要任务,然而面对庞大的信息量,如果将教师的个人信息存入纸质档案,那么对今后的修改、查询等其它操作会带来非常多的不方便,而且纸质档案有时候还容易丢失,不利于数据的长期保存。
这就需要通过数据库建立一个教师信息管理系统来提高教师个人信息管理工作的效率。
通过本课题的研究,基本上就可以做到教师个人信息的规范管理和快速查询以及其它相关操作,从而减少了信息管理方面的工作量。
实现了教师个人信息管理的高效化、网络化和智能化。
教师信息管理系统是高校信息管理系统的一个重要组成部分,它主要用于教师个人资料的录入和管理,相关资料的查询和统计等。
使用教师信息管理系统,有利于高校能够方便掌握本校教师的信息资料,及时调整师资队伍的合理分配。
同时加强教师队伍管理,节省管理成本,会给高层领导更多的时间去抉择,而不至于花费很多时间去进行搜集资料然后在作出决策。
关键词:信息管理系统;数据库;开发SummaryWith the constant expansion of higher colleges, the teacher sharply increase, all kinds of information about teachers and are constantly increase exponentially. Personal information for teachers of management to become an important task facing huge information, however, if the teacher's personal information, then deposit paper files for future modification, inquires the other operating will bring very much not convenient, and paper files sometimes get lost, go against data long-term preservation. This needs database to establish a teachers' information management system to improve teachers' personal information management efficiency. Through this topic research, can basically do teachers' personal information standardized management and rapid inquiry, as well as other related operation, reducing the workload of the information management aspects. Realized the teachers' personal information management highlyeffective, network and intelligent.Teachers' information management system is a college information management system is an important part of, it is mainly used for teachers of personal data entry and management, and related information query and statistics, etc. Use the information management system for the teachers college can easily master the school teachers' information material, adjust the reasonable distribution of the faculty. While strengthening teachers' team management, save the management cost and will give top leaders more time to make choices, and not spend a lot of time to gather information and then in making decisions.Keyword:Manage the information system;Database;Development目录1 绪论 (1)1.1研究动机与目的 (1)1.2研究背景 (1)1.3论文的组织结构 (2)2 可行性分析 (3)2.1提出背景 (3)2.2可行性分析 (3)3 需求分析 (5)3.1任务概述 (5)3.2系统设计原则 (5)3.3系统需求分析 (6)3.3.1业务流程 (6)3.3.2系统流程图 (6)4 总体设计 (8)4.1系统总体结构 (8)4.2各模块功能描述 (8)4.3数据库设计 (9)4.3.1系统功能要求 (9)4.3.2系统功能模块分析 (9)4.3.3数据库需求分析 (10)4.3.4数据字典和ER图 (10)5 详细设计与编码 (16)5.1系统描述 (16)5.2数据库连接 (16)5.3系统各模块窗体的实现 (18)5.3.1登录窗体 (18)5.3.2密码修改窗体 (20)5.3.3主界面窗体 (22)5.3.4基础数据管理模块 (24)5.3.5个人信息管理窗体 (25)5.3.6人员统计分析窗体 (29)5.3.7【关于】窗体 (30)6 系统测试与维护 (31)7 总结 (34)致谢 (35)参考文献 (36)1 绪论1.1研究动机与目的信息管理系统是一个以人为主导,利用计算机硬件、软件,网络通信这些设备和其他的办公设备进行信息的收集、传输、加工、储存、更新和维护达到战略竞优、提高效率的目的,来支持高层决策、中层控制和基层运作的集成化的人机系统。
教师管理系统毕业设计

教师管理系统--------------前言--------------教师管理系统是一个学校不可缺少的部分,它的内容对于学校的决策者和管理者来说都至关重要,所以教师管理系统应该能够为用户提供充足的信息和快捷的查询手段。
但一直以来人们使用传统人工的方式管理文件信息,这种管理方式存在着许多缺点,如:效率低、保密性差,另外时间一长,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少的困难。
随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。
作为计算机应用的一部分,使用计算机对人事信息进行管理,具有着手工管理所无法比拟的优点.例如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。
这些优点能够极大地提高教师管理的效率,也是学校教师管理的科学化、正规化,与世界接轨的重要条件。
因此,开发这样一套管理软件成为很有必要的事情,在下面的各章中我们将以开发一套教师管理系统为例,谈谈其开发过程和所涉及到的问题及解决方法。
--------------摘要--------------教师管理系统是典型的信息管理系统(MIS),其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。
对于前者要求建立起数据一致性和完整性强、数据安全性好的库。
而对于后者则要求应用程序功能完备,易使用等特点。
经过分析,我们使用MICROSOFT公司的VISUAL BASIC开发工具,利用其提供的各种面向对象的开发工具,尤其是数据窗口这一能方便而简洁操纵数据库的智能化对象,首先在短时间内建立系统应用原型,然后,对初始原型系统进行需求迭代,不断修正和改进,直到形成用户满意的可行系统。
整个系统从符合操作简便、界面友好、灵活、实用、安全的要求出发。
论文主要介绍了本课题的开发背景,所要完成的功能和开发的过程。
重点的说明了系统设计的重点、设计思想、难点技术和解决方案。
毕业设计(论文)-基于Android教师管理系统

使用JavaScript将它们绑定在一起
2.2
2.2.1
Eclipse是著名的跨平台自由集成开发环境(IDE)。最初主要用来Java语言开发,但是目前亦有人通过插件使其作为C++、Python、PHP等其他语言的开发工具。Eclipse的本身只是一个框架平台,但是由于众多插件的支持,使得Eclipse拥有较佳的灵活性。许多软件开发商以Eclipse为框架开发自己的IDE。
本课题是在windows操作平台下,搭载Android_2.3.3_SDK开发环境,采用IAVA为主要开发语言,使用Eclipse完成后台代码的编写。系统包括前台Android客服端和后台管理2个部分,后台管理系统包括教师管理、班级管理、科目管理、课程管理功能模块,前台Android客户端包括登录、查看个人信息、查询功能模块.
1.2
教育是一个国家未来发展的关键,而大学教育更是教育体系中的重中之重,随着时代的发展,传统的教学管理系统已经明显的满足不了的现代教师管理的需要,现代教师管理系统需要更快捷,更实时,而现在就大多数高校的班主任管理系统任然是采取PC机通过局域网连接服务器端的形式进行操作,缺少对移动端的支持。这在要求快速的掌握即时信息的现在是不行的。在这样的时代背景下,选择“基于android教师管理系统”这个设计题目,符合实际需求。帮助具体管理人员从复杂烦琐工作中解放出来。使得教师的管理更加方便快捷,随时随地都能工作。
Android的体系结构分为三层
底层:Linux核心,C语言开发,提供基本功能
中间层:函数库Library和虚拟机Virtual Machine,C++开发
上层:应用软件。自行以JAVA开发
教师信息管理系统毕业论文

教师信息管理系统毕业论文为了实现教师信息共享,做好高校评估工作,建设一个使用方便的网上教师信息管理系统十分迫切。
下面是店铺为大家整理的教师信息管理系统毕业论文,供大家参考。
教师信息管理系统毕业论文篇一教师信息管理系统教师信息管理系统毕业论文摘要摘要:随着学校的发展需求,聘任教师的增多,建立教师资源库对学校更好地开展教学尤为重要。
所以教师信息管理系统应该能够为学校提供充足的信息和快捷的查询手段。
该系统通过对教师信息的详细分析,从现实中抽象出逻辑模型,在对逻辑模型进行进一步的功能划分,得出整个系统的功能结构并建立了相应的数据模型。
教师信息管理系统毕业论文内容关键词:教师信息;管理信息系统;需求分析中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2012)34-8105-04管理信息系统是一个不断发展的新型学科,学校要生存要发展,要高效率地把学校活动有机地组织起来,就必须加强学校管理,即加强对学校内部的各种资源的有效管理,建立与自身特点相适应的管理信息系统。
教师信息管理系统是一个服务性单位不可缺少的部分,它的内容对于学校的决策者和管理者来说都至关重要,所以教师信息管理系统应该能够为用户提供充足的信息和快捷的查询手段。
根据教师管理系统在学校或组织中的应用普及时出现的各种问题,利用当前管理系统科学的、实用的理论,开发一套基于教师的信息管理系统,以求提高教师信息管理效率是势在必行的,提高教师信息的规范化,系统化,自动化管理迫在眉睫。
1 管理信息系统(MIS)1.1系统特点面向对象设计:系统中将教师类型,教师等都封装成相应的类,同时每个类都有自己对应的集合类,从而在次提高了对数据库操作的安全性和程序的可扩展性。
人性化设计:系统不仅仅是一个教师信息的管理软件,它更具有人性化的生日提醒,极具实用性的合作记录,以及对教师的重要度,友好度,满意度评价等。
1.2相关技术及开发工具系统平台:Windows 2000,Windows XP数据库:ACCESS 2000开发工具:Visual Basic 6.02 需求分析数据库在一个信息管理系统中占有非常重要的地位,数据库结构设计的好坏将直接影响应用系统的效率及实现的效果。
教师管理信息系统毕业设计

教师管理信息系统毕业设计
教师管理信息系统毕业设计是一个涉及教育管理和信息技术的
综合性课题。
在这个毕业设计中,我们需要考虑教师管理的各个方面,包括教师的基本信息、工作安排、教学评估等。
同时,还需要
考虑信息系统的设计与实现,包括数据库设计、界面设计、系统功
能模块等。
在设计过程中,需要充分调研现有的教师管理信息系统,分析需求,设计系统架构,选择合适的开发工具和技术,进行系统
的开发和测试。
最后,需要对系统进行评估和改进,确保系统的稳
定性和可用性。
这个毕业设计涉及到教育管理、信息技术、系统设
计等多个方面,需要综合运用相关知识进行设计和实现。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
大连交通大学信息工程学院毕业设计(论文)任务书题目校园教室信息管理系统毕业设计(论文)进度计划与考核表指导教师签字:2012年3月30日注:“计划完成内容”由学生本人认真填写,其它由指导教师考核时填写。
大连交通大学信息工程学院毕业设计(论文)外文翻译学生姓名单崇真专业班级软件工程08-1班指导教师袁振海李孝贵职称高工助教所在单位信息科学系软件工程教研室教研室主任刘瑞杰完成日期 2012 年 4 月 13 日Java and the InternetIf Java is, in fact, yet another computer programming language, you may question why it is soimportant and why it is being promoted as a revolutionary step in computer programm ing. The answer isn’t immediately obvious if you’re coming from a traditional programming perspective. Although Java is very useful for solving traditional stand-alone programming problems, it is also important because it will solve programming problems on the World Wide Web.1 Client-side programmingThe Web’s initial server-browser design provided for interactive content, but the interactivity was completely provided by the server. The server produced static pages for the client browser, which would simply interpret and display them. Basic HTML contains simple mechanisms for data gathering: text-entry boxes, check boxes, radio boxes, lists and drop-down lists, as well as a button that can only be programmed to reset the data on the form or “submit” the dat a on the form back to the server. This submission passes through the Common Gateway Interface (CGI) provided on all Web servers. The text within the submission tells CGI what to do with it. The most common action is to run a program located on the server in a directory that’s typically called “cgi-bin.” (If you watch the address window at the top of your browser when you push a button on a Web page, you can sometimes see “cgi-bin” within all the gobbledygook there.) These programs can be written in most languages. Perl is a common choice because it is designed for text manipulation and is interpreted, so it can be installed on any server regardless of processor or operating system.Many powerful Web sites today are built strictly on CGI, and you can in fact do nearly anything with it. However, Web sites built on CGI programs can rapidly become overly complicated to maintain, and there is also the problem of response time. The response of a CGI program depends on how much data must be sent, as well as the load on both the server and the Internet. (On top of this, starting a CGI program tends to be slow.) The initial designers of the Web did not foresee how rapidly this bandwidth would be exhausted for the kinds of applications people developed. For example, any sort of dynamic graphing is nearly impossible to perform with consistency because a GIF file must be created and moved from the server to the client for each version of the graph. And you’ve no doubt had direct experience with something as simple as validating the data on an input form. You press the submit button on a page; the data is shipped back to the server; the server starts a CGI program that discovers an error, formats an HTML page informing you of the error, and then sends the page back to you; you must then back up a page and try again. Not only is this slow, it’s inelegant.The solution is client-side programming. Most machines that run Web browsers are powerful engines capable of doing vast work, and with the original static HTML approach they are sitting there, just idly waiting for the server to dish up the next page. Client-side programming means that the Web browser is harnessed to do whatever work it can, and the result for the user is a much speedier and more interactive experience at your Web site.The problem with discussions of client-side programming is that they aren’t very different fromdiscussions of programming in general. The parameters are almost the same, but the platform is different: a Web browser is like a limited operating system. In the end, you must still program, and this accounts for the dizzying array of problems and solutions produced by client-side programming. The rest of this section provides an overview of the issues and approaches in client-side programming.2 Plug-insOne of the most significant steps forward in client-side programming is the development of the plug-in. This is a way for a programmer to add new functionality to the browser by downloading a piece of code that plugs itself into the appropriate spot i n the browser. It tells the browser “from now on you can perform this new activity.” (You need to download the plug-in only once.) Some fast and powerful behavior is added to browsers via plug-ins, but writing a plug-in is not a trivial task, and isn’t something you’d want to do as part of the process of building a particular site. The value of the plug-in for client-side programming is that it allows an expert programmer to develop a new language and add that language to a browser without the permission of the browser manufacturer. Thus, plug-ins provide a “back door” that allows the creation of new client-side programming languages (although not all languages are implemented as plug-ins).3 Scripting languagesPlug-ins resulted in an explosion of scripting languages. With a scripting language you embed the source code for your client-side program directly into the HTML page, and the plug-in that interprets that language is automatically activated while the HTML page is being displayed. Scripting languages tend to be reasonably easy to understand and, because they are simply text that is part of an HTML page, they load very quickly as part of the single server hit required to procure that page. The trade-off is that your code is exposed for everyone to see (a nd steal). Generally, however, you aren’t doing amazingly sophisticated things with scripting languages so this is not too much of a hardship.This points out that the scripting languages used inside Web browsers are really intended to solve specific types of problems, primarily the creation of richer and more interactive graphical user interfaces (GUIs). However, a scripting language might solve 80 percent of the problems encountered in client-side programming. Your problems might very well fit completely within that 80 percent, and since scripting languages can allow easier and faster development, you should probably consider a scripting language before looking at a more involved solution such as Java or ActiveX programming.The most commonly discussed browser scripting languages are JavaScript (which has nothing to do with Java; it’s named that way just to grab some of Java’s marketing momentum), VBScript (which looks like Visual Basic), and Tcl/Tk, which comes from the popular cross-platform GUI-building language. There are others out there, and no doubt more in development.JavaScript is probably the most commonly supported. It comes built into both Netscape Navigator and the Microsoft Internet Explorer (IE). In addition, there are probably more JavaScript books availablethan there are for the other browser languages, and some tools automatically create pages using JavaScript. However, if you’re already fluent in Visual Basic or Tcl/Tk, you’ll be more productive using those scripting languages rather than learning a new one. (You’ll have your hands full dealing with the Web issues already.)4 JavaIf a scripting language can solve 80 percent of the client-side programming problems, what about the other 20 percent—the “really hard stuff?” The most popular solution today is Java. Not only is it a powerful programming language built to be secure, cross-platform, and international, but Java is being continually extended to provide language features and libraries that elegantly handle problems that are difficult in traditional programming languages, such as multithreading, database access, network programming, and distributed computing. Java allows client-side programming via the applet.An applet is a mini-program that will run only under a Web browser. The applet is downloaded automatically as part of a Web page (just as, for example, a graphic is automatically downloaded). When the applet is activated it executes a program. This is part of its beauty—it provides you with a way to automatically distribute the client software from the server at the time the user needs the client software, and no sooner. The user gets the latest version of the client software without fail and without difficult reinstallation. Because of the way Java is designed, the programmer needs to create only a single program, and that program automatically works with all computers that have browsers with built-in Java interpreters. (This safely includes the vast majority of machines.) Since Java is a full-fledged programming language, you can do as much work as possible on the client before and after making requests of the server. For example, you won’t need to send a request form across the Internet to discover that you’ve gotten a date or some other parameter wrong, and your client computer can quickly do the work of plotting data instead of waiting for the server to make a plot and ship a graphic image back to you. Not only do you get the immediate win of speed and responsiveness, but the general network traffic and load on servers can be reduced, preventing the entire Internet from slowing down.One advantage a Java applet has over a scripted program is that it’s in compiled form, so the source code isn’t available to the client. On the other hand, a Java applet can be decompiled without too much trouble, but hiding your code is often not an important issue. Two other factors can be important. As you will see later in this book, a compiled Java applet can comprise many modules and take multiple server “hits” (accesses) to download. (In Java 1.1 and higher this is minimized by Java archives, called JAR files, that allow all the required modules to be packaged together and compressed for a single download.) A scripted program will just be integrated into the Web page as part of its text (and will generally be smaller and reduce server hits). This could be important to the responsiveness of your Web site. Another factor is the all-important learning curve. Regardless of what you’ve heard, Java is not a trivial language to learn. If you’re a Visual Basic programmer, moving to VBScript will be your fastest solution, and since it willprobably solve most typical client/server problems you might be hard pressed to justify learning Java. If you’re experienced with a scripting language you will certainly benefit from looking at JavaScript or VBScript before committing to Java, since they might fit your needs handily and you’ll be more productive sooner.to run its applets withi5 ActiveXTo some degree, the competitor to Java is Microsoft’s ActiveX, althou gh it takes a completely different approach. ActiveX was originally a Windows-only solution, although it is now being developed via an independent consortium to become cross-platform. Effectively, ActiveX says “if your program connects to its environment just so, it can be dropped into a Web page and run under a browser that supports ActiveX.” (IE directly supports ActiveX and Netscape does so using a plug-in.) Thus, ActiveX does not constrain you to a particular language. If, for example, you’re already an experienced Windows programmer using a language such as C++, Visual Basic, or Borland’s Delphi, you can create ActiveX components with almost no changes to your programming knowledge. ActiveX also provides a path for the use of legacy code in your Web pages.6 SecurityAutomatically downloading and running programs across the Internet can sound like a virus-builder’s dream. ActiveX especially brings up the thorny issue of security in client-side programming. If you click on a Web site, you might automatically download any number of things along with the HTML page: GIF files, script code, compiled Java code, and ActiveX components. Some of these are benign; GIF files can’t do any harm, and scripting languages are generally limited in what they can do. Java was also designed to run its applets within a “sandbox” of safety, which prevents it from writing to disk or accessing memory outside the sandbox.ActiveX is at the opposite end of the spectrum. Programming with ActiveX is like programming Windows—you can do anything you want. So if you click on a page that downloads an ActiveX component, that component might cause damage to the files on your disk. Of course, programs that you load onto your computer that are not restricted to running inside a Web browser can do the same thing. Viruses downloaded from Bulletin-Board Systems (BBSs) have long been a problem, but the speed of the Internet amplifies the difficulty.The solution seems to be “digital signatures,” whereby code is verified to show who the author is. This is based on the idea that a virus works because its creator can be anonymous, so if you remove the anonymity individuals will be forced to be responsible for their actions. This seems like a good plan because it allows programs to be much more functional, and I suspect it will eliminate malicious mischief. If, however, a program has an unintentional destructive bug it will still cause problems.The Java approach is to prevent these problems from occurring, via the sandbox. The Java interpreter that lives on your local Web browser examines the applet for any untoward instructions as the applet isbeing loaded. In particular, the applet cannot write files to disk or erase files (one of the mainstays of viruses). Applets are generally considered to be safe, and since this is essential for reliable client/server systems, any bugs in the Java language that allow viruses are rapidly repaired. (It’s worth noting that the browser software actually enforces these security restrictions, and some browsers allow you to select different security levels to provide varying degrees of access to your system.)You might be skeptical of this rather draconian restriction against writing files to your local disk. For example, you may want to build a local database or save data for later use offline. The initial vision seemed to be that eventually everyone would get online to do anything important, but that was soon seen to be impractical (although low-cost “Internet appliances” might someday satisfy the needs of a significant segment of users). The solution is the “signed applet” that uses public-key encryption to verify that an applet does indeed come from where it claims it does. A signed applet can still trash your disk, but the theory is that since you can now hold the app let creator accountable they won’t do vicious things. Java provides a framework for digital signatures so that you will eventually be able to allow an applet to step outside the sandbox if necessary.Digital signatures have missed an important issue, which is the speed that people move around on the Internet. If you download a buggy program and it does something untoward, how long will it be before you discover the damage? It could be days or even weeks. By then, how will you track down the program that’s done it? And what good will it do you at that point?7 Internet vs. intranetThe Web is the most general solution to the client/server problem, so it makes sense that you can use the same technology to solve a subset of the problem, in particular the classic client/server problem within a company. With traditional client/server approaches you have the problem of multiple types of client computers, as well as the difficulty of installing new client software, both of which are handily solved with Web browsers and client-side programming. When Web technology is used for an information network that is restricted to a particular company, it is referred to as an intranet. Intranets provide much greater security than the Internet, since you can physically control access to the servers within your company. In terms of training, it seems that once people understand the general concept of a browser it’s much easier for them to deal with differences in the way pages and applets look, so the learning curve for new kinds of systems seems to be reduced.The security problem brings us to one of the divisions that seems to be automatically forming in the world of client-side programming. If your program is running on the Internet, you don’t know what platform it will be workin g under, and you want to be extra careful that you don’t disseminate buggy code. You need something cross-platform and secure, like a scripting language or Java.If you’re running on an intranet, you might have a different set of constraints. It’s not unc ommon that your machines could all be Intel/Windows platforms. On an intranet, you’re responsible for the quality ofyour own code and can repair bugs when they’re discovered. In addition, you might already have a body of legacy code that you’ve been using in a more traditional client/server approach, whereby you must physically install client programs every time you do an upgrade. The time wasted in installing upgrades is the most compelling reason to move to browsers, because upgrades are invisible and automatic. If you are involved in such an intranet, the most sensible approach to take is the shortest path that allows you to use your existing code base, rather than trying to recode your programs in a new language.When faced with this bewildering array of solutions to the client-side programming problem, the best plan of attack is a cost-benefit analysis. Consider the constraints of your problem and what would be the shortest path to your solution. Since client-side programming is still programming, it’s always a good idea to take the fastest development approach for your particular situation. This is an aggressive stance to prepare for inevitable encounters with the problems of program development.8 Server-side programmingThis whole discussion has ignored the issue of server-side programming. What happens when you make a request of a server? Most of the time the request is simply “send me this file.” Your browser then interprets the file in some appropriate fashion: as an HTML page, a graphic image, a Java applet, a script program, etc. A more complicated request to a server generally involves a database transaction. A common scenario involves a request for a complex database search, which the server then formats into an HTML page and sends to you as the result. (Of course, if the client has more intelligence via Java or a scripting language, the raw data can be sent and formatted at the client end, which will be faster and less load on the server.) Or you might want to register your name in a database when you join a group or place an order, which will involve changes to that database. These database requests must be processed via some code on the server side, which is generally referred to as server-side programming. Traditionally, server-side programming has been performed using Perl and CGI scripts, but more sophisticated systems have been appearing. These include Java-based Web servers that allow you to perform all your server-side programming in Java by writing what are called servlets. Servlets and their offspring, JSPs, are two of the most compelling reasons that companies who develop Web sites are moving to Java, especially because they eliminate the problems of dealing with differently abled browsers.9 Separate arena: applicationsMuch of the brouhaha over Java has been over applets. Java is actually a general-purpose programming language that can solve any type of problem—at least in theory. And as pointed out previously, there might be more effective ways to solve most client/server problems. When you move out of the applet arena (and simultaneously release the restrictions, such as the one against writing to disk) you enter the world of general-purpose applications that run standalone, without a Web browser, just like any ordinary program does. H ere, Java’s strength is not only in its portability, but also its programmability. As you’ll see throughout this book, Java has many features that allow you to create robust programs in ashorter period than with previous programming languages.Be aware that this is a mixed blessing. You pay for the improvements through slower execution speed (although there is significant work going on in this area—JDK 1.3, in particular, introduces the so-called “hotspot” performance improvements). Like any language, Java has built-in limitations that might make it inappropriate to solve certain types of programming problems. Java is a rapidly evolving language, however, and as each new release comes out it becomes more and more attractive for solving larger sets ofproblems.Java和因特网既然Java不过另一种类型的程序设计语言,大家可能会奇怪它为什么值得如此重视,为什么还有这么多的人认为它是计算机程序设计的一个里程碑呢?如果您来自一个传统的程序设计背景,那么答案在刚开始的时候并不是很明显。