计算机专业类Java核心技术卷Ⅱ高级特性大学毕业论文英文文献翻译及原文
Java编程语言外文翻译、英汉互译、中英对照

文档从互联网中收集,已重新修正排版,word格式支持编辑,如有帮助欢迎下载支持。
外文翻译原文及译文学院计算机学院专业计算机科学与技术班级学号姓名指导教师负责教师Java(programming language)Java is a general-purpose, concurrent, class-based, object-oriented computer program- -ming language that is specifically designed to have as few implementation dependencies as possible. It is intended to let application developers "write once, run anywhere" (WORA), meaning that code that runs on one platform does not need to be recompiled to run on another. Java applications are typically compiled to byte code (class file) that can run on any Java virtual machine(JVM) regardless of computer architecture. Java is, as of 2012, one of the most popular programming languages in use, particularly for client-server web applications, with a reported 10 million users. Java was originally developed by James Gosling at Sun Microsystems (which has since merged into Oracle Corporation) and released in 1995 as a core component of Sun Microsystems' Java platform. The language derives much of its syntax from C and C++, but it has fewer low-level facilities than either of them.The original and reference implementation Java compilers, virtual machines, and class libraries were developed by Sun from 1991 and first released in 1995. As of May 2007, in compliance with the specifications of the Java Community Process, Sun relicensed most of its Java technologies under the GNU General Public License. Others have also developed alternative implementations of these Sun technologies, such as the GNU Compiler for Java and GNU Classpath.Java is a set of several computer software products and specifications from Sun Microsystems (which has since merged with Oracle Corporation), that together provide a system for developing application software and deploying it in across-platform computing environment. Java is used in a wide variety of computing platforms from embedded devices and mobile phones on the low end, to enterprise servers and supercomputers on the high end. While less common, Java appletsare sometimes used to provide improved and secure functions while browsing the World Wide Web on desktop computers.Writing in the Java programming language is the primary way to produce code that will be deployed as Java bytecode. There are, however, byte code compilers available forother languages such as Ada, JavaScript, Python, and Ruby. Several new languages have been designed to run natively on the Java Virtual Machine (JVM), such as Scala, Clojure and Groovy.Java syntax borrows heavily from C and C++, but object-oriented features are modeled after Smalltalk and Objective-C. Java eliminates certain low-level constructs such as pointers and has a very simple memory model where every object is allocated on the heap and all variables of object types are references. Memory management is handled through integrated automatic garbage collection performed by the JVM.An edition of the Java platform is the name for a bundle of related programs from Sun that allow for developing and running programs written in the Java programming language. The platform is not specific to any one processor or operating system, but rather an execution engine (called a virtual machine) and a compiler with a set of libraries that are implemented for various hardware and operating systems so that Java programs can run identically on all of them. The Java platform consists of several programs, each of which provides a portion of its overall capabilities. For example, the Java compiler, which converts Java source code into Java byte code (an intermediate language for the JVM), is provided as part of the Java Development Kit (JDK). The Java Runtime Environment(JRE), complementing the JVM with a just-in-time (JIT) compiler, converts intermediate byte code into native machine code on the fly. An extensive set of libraries are also part of the Java platform.The essential components in the platform are the Java language compiler, the libraries, and the runtime environment in which Java intermediate byte code "executes" according to the rules laid out in the virtual machine specification.In most modern operating systems (OSs), a large body of reusable code is provided to simplify the programmer's job. This code is typically provided as a set of dynamically loadable libraries that applications can call at runtime. Because the Java platform is not dependent on any specific operating system, applications cannot rely on any of the pre-existing OS libraries. Instead, the Java platform provides a comprehensive set of its own standard class libraries containing much of the same reusable functions commonly found in modern operating systems. Most of the system library is also written in Java. For instance, Swing library paints the user interface and handles the events itself, eliminatingmany subtle differences between how different platforms handle even similar components.The Java class libraries serve three purposes within the Java platform. First, like other standard code libraries, the Java libraries provide the programmer a well-known set of functions to perform common tasks, such as maintaining lists of items or performing complex string parsing. Second, the class libraries provide an abstract interface to tasks that would normally depend heavily on the hardware and operating system. Tasks such as network access and file access are often heavily intertwined with the distinctive implementations of each platform. The and java.io libraries implement an abstraction layer in native OS code, then provide a standard interface for the Java applications to perform those tasks. Finally, when some underlying platform does not support all of the features a Java application expects, the class libraries work to gracefully handle the absent components, either by emulation to provide a substitute, or at least by providing a consistent way to check for the presence of a specific feature.The success of Java and its write once, run anywhere concept has led to other similar efforts, notably the .NET Framework, appearing since 2002, which incorporates many of the successful aspects of Java. .NET in its complete form (Microsoft's implementation) is currently only fully available on Windows platforms, whereas Java is fully available on many platforms. .NET was built from the ground-up to support multiple programming languages, while the Java platform was initially built to support only the Java language, although many other languages have been made for JVM since..NET includes a Java-like language called Visual J# (formerly named J++) that is incompatible with the Java specification, and the associated class library mostly dates to the old JDK 1.1 version of the language. For these reasons, it is more a transitional language to switch from Java to the .NET platform, than a first class .NET language. Visual J# was discontinued with the release of Microsoft Visual Studio 2008. The existing version shipping with Visual Studio 2005will be supported until 2015 as per the product life-cycle strategy.In June and July 1994, after three days of brainstorming with John Gage, the Director of Science for Sun, Gosling, Joy, Naughton, Wayne Rosing, and Eric Schmidt, the team re-targeted the platform for the World Wide Web. They felt that with the advent of graphical web browsers like Mosaic, the Internet was on its way to evolving into the samehighly interactive medium that they had envisioned for cable TV. As a prototype, Naughton wrote a small browser, Web Runner (named after the movie Blade Runner), later renamed Hot Java.That year, the language was renamed Java after a trademark search revealed that Oak was used by Oak Technology. Although Java 1.0a was available for download in 1994, the first public release of Java was 1.0a2 with the Hot Java browser on May 23, 1995, announced by Gage at the Sun World conference. His announcement was accompanied by a surprise announcement by Marc Andreessen, Executive Vice President of Netscape Communications Corporation, that Netscape browsers would be including Java support. On January 9, 1996, the Java Soft group was formed by Sun Microsystems to develop the technology.Java编程语言Java是一种通用的,并发的,基于类的并且是面向对象的计算机编程语言,它是为实现尽可能地减少执行的依赖关系而特别设计的。
计算机专业外文文献及翻译

微软Visual Studio1微软Visual StudioVisual Studio 是微软公司推出的开发环境,Visual Studio可以用来创建Windows平台下的Windows应用程序和网络应用程序,也可以用来创建网络服务、智能设备应用程序和Office 插件。
Visual Studio是一个来自微软的集成开发环境IDE,它可以用来开发由微软视窗,视窗手机,Windows CE、.NET框架、.NET精简框架和微软的Silverlight支持的控制台和图形用户界面的应用程序以及Windows窗体应用程序,网站,Web应用程序和网络服务中的本地代码连同托管代码。
Visual Studio包含一个由智能感知和代码重构支持的代码编辑器。
集成的调试工作既作为一个源代码级调试器又可以作为一台机器级调试器。
其他内置工具包括一个窗体设计的GUI应用程序,网页设计师,类设计师,数据库架构设计师。
它有几乎各个层面的插件增强功能,包括增加对支持源代码控制系统(如Subversion和Visual SourceSafe)并添加新的工具集设计和可视化编辑器,如特定于域的语言或用于其他方面的软件开发生命周期的工具(例如Team Foundation Server的客户端:团队资源管理器)。
Visual Studio支持不同的编程语言的服务方式的语言,它允许代码编辑器和调试器(在不同程度上)支持几乎所有的编程语言,提供了一个语言特定服务的存在。
内置的语言中包括C/C + +中(通过Visual C++),(通过Visual ),C#中(通过Visual C#)和F#(作为Visual Studio 2010),为支持其他语言,如M,Python,和Ruby等,可通过安装单独的语言服务。
它也支持的XML/XSLT,HTML/XHTML,JavaScript和CSS.为特定用户提供服务的Visual Studio也是存在的:微软Visual Basic,Visual J#、Visual C#和Visual C++。
计算机软件Java毕业设计外文资料翻译

mail:jacobo.saenz@bec.uned.esJdelatoiTe@dia.uned.es, sdonnido@dia.uned.es)・
Mathematics Faculty, Unh-ersidad de Murcia, Campus de Espiiiardo, 30071 Murcia,
2.3EjsS Javascr i pt模式
Java漏洞的问题山EjsS在以前的版本(5.0)中通过使用Javascript编程语言 而不是Java来解决。因此,使用EjsS 5.0或更高版本,用户可以通过JavaScript知识开发基于Javascript的新VRL。
运行此模式时,EjsS的主要结构在用户眼中不会改变,应用程序的构建非常
(2015). EJS, JIL Server and Lab VIEW: How to build a remote lab in the blink of an eye・Learning Technologies, IEEE Transactions on, PP(99),1-1. doi:l 0.
IFAC-PapersOnLine,2015, (ancisco Esquembre, Felix J. Garcia, Luis de la Tone, Sebastian
Donnido
Computer Science and Automatics Department, Computer Science School, UNED,
[2]Bose, R・(2013)・Virtual labs project: A paradigm shift in iiiteniet-based remote experimentation・IEEE Access, 1, 718-725・
JAVA 技术英语文献

Java and the InternetIf Java is, in fact, yet another computer programming language, you may question why it is so important and why it is being promoted as a revolutionary step in computer programming. The answer isn’t immediately obvious if you’re coming from a traditional programming perspective. Although Java is very useful for solving traditional standalone programming problems, it is also important because it will solve programming problems on the World Wide Web.What is the Web?The Web can seem a bit of a mystery at first, with all this talk of “surfing,” “presence,” and “home pages.” It’s helpful to step back and see what it really is, but to do this you must understand client/server systems, another aspect of computing that’s full of confusing issues.Client/Server computingThe primary idea of a client/server system is that you have a central repository of information—some kind of data, often in a database—that you want to distribute on demand to some set of people or machines. A key to theclient/server concept is that the repository of information is centrally located so that it can be changed and so that those changes will propagate out to the information consumers. Taken together, the information repository, the software that distributes the information, and the machine(s) where the information and software reside is called the server. The software that resides on the remote machine, communicates with the server, fetches the information, processes it, and then displays it on the remote machine is called the client.The basic concept of client/server computing, then, is not so complicated. The problems arise because you have a single server trying to serve many clients at once. Generally, a database management system is involved, so the designer “balances” the layout of data into tables for optimal use. In addition, systems often allow a client to insert new information into a server. This means you must ensure that one cl ient’s new data doesn’t walk over another client’s new data, or that data isn’t lost in the process of adding it to the database (this is called transaction processing). As client software changes, it must be built, debugged, and installed on the client machines, which turns out to be more complicated and expensive than you might think. It’s especially problematic to support multiple types of computers and operating systems. Finally, there’s the all-important performance issue: You might have hundredsof clients making requests of your server at any one time, so any small delay is crucial. To minimize latency, programmers work hard to offload processing tasks, often to the client machine, but sometimes to other machines at the server site, using so-called middleware. (Middleware is also used to improve maintainability.)The simple idea of distributing information has so many layers of complexity that the whole problem can seem hopelessly enigmatic. And yet it’s crucial: Client/server computing accounts for roughly half of all programming activities. It’s responsible for everything from taking orders and credit-card transactions to the distribution of any kind of data—stock market, scientific, government, you name it. What we’ve come up with in the past is ind ividual solutions to individual problems, inventing a new solution each time. These were hard to create and hard to use, and the user had to learn a new interface for each one. The entire client/server problem needs to be solved in a big way.The Web as a giant serverThe Web is actually one giant client/server system. It’s a bit worse than that, since you have all the servers and clients coexisting on a single network at once. You don’t need to know that, because all you care about is connecting to and interacting with one server at a time (even though you might be hopping around the world in your search for the correct server).Initially it was a simple one-way process. You made a request of a server and it handed you a file, which your machine’s browser software (i.e., the client) would interpret by formatting onto your local machine. But in short order people began wanting to do more than just deliver pages from a server. They wanted full client/server capability so that the client could feed information back to the server, for example, to do database lookups on the server, to add new information to the server, or to place an order (which required more security than the original systems offered). These are the changes we’ve been seeing in the development of the Web.The Web browser was a big step forward: the concept that one piece of information could be displayed on any type of computer without change. However, browsers were still rather primitive and rapidly bogged down by the demands placed on them. They weren’t particularly interactive, and tended to clog up both the server and the Internet because any time you needed to do something that required programming you had to send information back to the server to be processed. It could take many seconds or minutes to find out you had misspelled something in your request. Since the browser was just a viewer it couldn’t perform even the simplest computing tasks. (On the otherhand, it was safe, because it couldn’t execute any programs on your local machine that might contain bugs or viruses.)To solve this problem, different approaches have been taken. To begin with, graphics standards have been enhanced to allow better animation and video within browsers. The remainder of the problem can be solved only by incorporating the ability to run programs on the client end, under the browser. This is called client-side programming.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 HyperText Markup Language (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 data 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 has been 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. However, Python (my favorite—see ) has been making inroads because of its greater power and simplicity.Many powerful Web sites today are built strictly on CGI, and you can in factdo nearly anything with CGI. 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 topof 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 Graphics Interchange Format (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 HTMLpage 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 from discussions 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 byclient-side programming. The rest of this section provides an overview of the issues and approaches in client-side programming.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 in 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).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 codeis exp osed for everyone to see (and 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). Unfortunately, the flavor of JavaScript on the two browsers can vary widely (the Mozilla browser, freely downloadable from , supports the ECMAScript standard, which may one day become universally supported). In addition, there are probably more JavaScript books available than there arefor 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 l earning a new one. (You’ll have your hands full dealing with the Web issues already.)JavaIf a scripting language can solve 80 percent of the client-side programming problems, what about the other 20 percent—the “really hard stuff?” Java is a popular solution for this. Not only is it a powerful programming languagebuilt 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 and with Java Web Start.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 require extra time to download, if it is large. 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’v e heard, Java is not a trivial language to learn. If you’re a VISUAL BASIC programmer, moving to VBScript will be your fastest solution (assuming you can constrain your customers to Windows platforms), and since it will probably 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, because they might fit your needs handily and y ou’ll be more productive sooner..NET and C#For awhile, the main competitor to Java applets was Microsoft’s ActiveX, although it required that the client be running Windows. Since then, Microsoft has produced a full competitor to Java in the form of the .NET platform and the C# programming language. The .NET platform is roughly the same as the Java virtual machine and Java libraries, and C# bears unmistakable similarities to Java. This is certainly the best work that Microsoft has done inthe arena of programming languages and programming environments. Of course, they had the considerable advantage of being able to see what worked well and what didn’t work so well in Java, and build upon that, but build they have. This is the first time since its inception that Java has had any real competition, and if all goes well, the result will be that the Java designers at Sun will take a hard look at C# and why programmers might want to move to it, and will respond by making fundamental improvements to Java. Currently, the main vulnerability and important question concerning .NET is whether Microsoft will allow it to be completely ported to other platforms. They claim there’s no problem doing this, and the Mono project() has a partial implementation of .NET working on Linux, but until the implementation is complete and Microsoft has not decided to squash any part of it, .NET as a cross-platform solution is still a risky bet.To learn more about .NET and C#, see Thinking in C#by Larry O’Brien and Bruce l, Prentice Hall 2003.SecurityAutomatically downloading and running programs across the Internet can sound like a virus-builder’s dream. 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, w hich prevents it from writing to disk or accessing memory outside the sandbox.Microsoft’s 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 .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 is being 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 a re 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 applet creators accountable, they won’t do vicious things. Java provides a framework for digital signatures so that youwill eventually be able to allow an applet to step outside the sandbox if necessary. Chapter 14 contains an example of how to sign an applet.In addition, Java Web Start is a relatively new way to easily distribute standalone programs that don’t need a w eb browser in which to run. This technology has the potential of solving many client side problems associated with running programs inside a browser. Web Start programs can either be signed, or they can ask the client for permission every time they are doing something potentially dangerous on the local system. Chapter 14 has a simple example and explanation of Java Web Start.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?Internet vs. intranetThe Web is the most general solution to the client/server problem, so it makes sense to 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 ofclient 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 peopl e 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 working 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 uncommon that your machines could all be Intel/Windows platforms. On an intranet, you’re responsible for the quality of your 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 (Java Web Start is also a solution to this problem). 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.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 involvesa 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, Python, C++, or some other language, to create CGI programs, 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 (these topics are covered in Thinking in Enterprise Java)Java和因特网既然Java不过另一种类型的程序设计语言,大家可能会奇怪它为什么值得如此重视,为什么还有这么多的人认为它是计算机程序设计的一个里程碑呢?如果您来自一个传统的程序设计背景,那么答案在刚开始的时候并不是很明显。
计算机专业文献翻译

毕业设计(论文)外文资料原文及译文原文出处:《Cloud Computing》作者:M ichael Miller以下为英文原文Beyond the Desktop: An Introduction to Cloud ComputingIn a world that sees new technological trends bloom and fade on almost a daily basis, one new trend promises more longevity. This trend is called cloud computing, and it will change the way you use your computer and the Internet.Cloud computing portends a major change in how we store information and run applications. Instead of running programs and data on an individual desktop computer, everything is hosted in the “cloud”—a nebulous assemblage of computers and servers accessed via the Internet. Cloud computing lets you access all your applications and documents from anywhere in the world, freeing you from the confines of the desktop and making it easier for group members in different locations to collaborate.The emergence of cloud computing is the computing equivalent of the electricity revolution of a century ago. Before the advent of electrical utilities, every farm and business produced its own electricity from freestanding generators. After the electrical grid was created, farms and businesses shut down their generators and bought electricity from the utilities, at a much lower price (and with much greater reliability) than they could produce on their own.Look for the same type of revolution to occur as cloud computing takes hold. Thedesktop-centric notion of computing that we hold today is bound to fall by the wayside as we come to expect the universal access, 24/7 reliability, and ubiquitous collaboration promised by cloud computing.It is the way of the future.Cloud Computing: What It Is—and What It Isn’tWith traditional desktop computing, you run copies of software programs on each computer you own. The documents you create are stored on the computer on which they were created. Although documents can be accessed from other computers on the network, they can’t be accessed by computers outside the network.The whole scene is PC-centric.With cloud computing, the software programs you use aren’t run from your personal computer, but are rather stored on servers accessed via the Internet. If your computer crashes, the software is still available for others to use. Same goes for the documents you create; they’re stored on a collection of servers accessed via the Internet. Anyone with permission can not only access the documents, but can also edit and collaborate on those documents in real time. Unlike traditional computing, this cloud computing model isn’t PC-centric, it’sdocument-centric. Which PC you use to access a document simply isn’t important.But that’s a simplification. Let’s look in more detail at what cloud computing is—and, just as important, what it isn’t.What Cloud Computing Isn’tFirst, cloud computing isn’t network computing. With network computing,applications/documents are hosted on a single company’s server and accessed over the company’s network. Cloud computing is a lot bigger than that. It encompasses multiple companies, multiple servers, and multiple networks. Plus, unlike network computing, cloud services and storage are accessible from anywhere in the world over an Internet connection; with network computing, access is over the company’s network only.Cloud computing also isn’t traditional outsourcing, where a company farms out (subcontracts) its computing services to an outside firm. While an outsourcing firm might host a company’s data or applications, those documents and programs are only accessible to the company’s employees via the company’s network, not to the entire world via the Internet.So, despite superficial similarities, networking computing and outsourcing are not cloud computing.What Cloud Computing IsKey to the definition of cloud computing is the “cloud”itself. For our purposes, the cloud is a large group of interconnected computers. These computers can be personal computers or network servers; they can be public or private. For example, Google hosts a cloud that consists of both smallish PCs and larger servers. Google’s cloud is a private one (that is, Google owns it) that is publicly accessible (by Google’s users).This cloud of computers extends beyond a single company or enterprise. The applications and data served by the cloud are available to broad group of users, cross-enterprise andcross-platform. Access is via the Internet. Any authorized user can access these docs and apps from any computer over any Internet connection. And, to the user, the technology and infrastructure behind the cloud is invisible. It isn’t apparent (and, in most cases doesn’t matter) whether cloud services are based on HTTP, HTML, XML, JavaScript, or other specific technologies.It might help to examine how one of the pioneers of cloud computing, Google, perceives the topic. From Google’s perspective, there are six key properties of cloud computing:·Cloud computing is user-centric.Once you as a user are connected to the cloud, whatever is stored there—documents, messages, images, applications, whatever—becomes yours. In addition, not only is the data yours, but you can also share it with others. In effect, any device that accesses your data in the cloud also becomes yours.·Cloud computing is task-centric.Instead of focusing on the application and what it can do, the focus is on what you need done and how the application can do it for you., Traditional applications—word processing, spreadsheets, email, and so on—are becoming less important than the documents they create.·Cloud computing is powerful. Connecting hundreds or thousands of computers together in a cloud creates a wealth of computing power impossible with a single desktop PC. ·Cloud computing is accessible. Because data is stored in the cloud, users can instantly retrieve more information from multiple repositories. You’re not limited to a single source of data, as you are with a desktop PC.·Cloud computing is intelligent. With all the various data stored on the computers in a cloud, data mining and analysis are necessary to access that information in an intelligent manner.·Cloud computing is programmable.Many of the tasks necessary with cloud computing must be automated. For example, to protect the integrity of the data, information stored on a single computer in the cloud must be replicated on other computers in the cloud. If that one computer goes offline, the cloud’s programming automatically redistributes that computer’s data to a new computer in the cloud.All these definitions behind us, what constitutes cloud computing in the real world?As you’ll learn throughout this book, a raft of web-hosted, Internet-accessible,group-collaborative applications are currently available, with many more on the way. Perhaps the best and most popular examples of cloud computing applications today are the Google family of applications—Google Docs & Spreadsheets, Google Calendar, Gmail, Picasa, and the like. All of these applications are hosted on Google’s servers, are accessible to any user with an Internet connection, and can be used for group collaboration from anywhere in the world.In short, cloud computing enables a shift from the computer to the user, from applications to tasks, and from isolated data to data that can be accessed from anywhere and shared with anyone. The user no longer has to take on the task of data management; he doesn’t even have to remember where the data is. All that matters is that the data is in the cloud, and thus immediately available to that user and to other authorized users.From Collaboration to the Cloud: A Short History of CloudComputingCloud computing has as its antecedents both client/server computing and peer-to-peer distributed computing. It’s all a matter of how centralized storage facilitates collaboration and how multiple computers work together to increase computing power.Client/Server Computing: Centralized Applications and StorageIn the antediluvian days of computing (pre-1980 or so), everything operated on the client/server model. All the software applications, all the data, and all the control resided on huge mainframe computers, otherwise known as servers. If a user wanted to access specific data or run a program, he had to connect to the mainframe, gain appropriate access, and then do his business while essentially “renting”the program or data from the server.Users connected to the server via a computer terminal, sometimes called a workstation or client. This computer was sometimes called a dumb terminal because it didn’t have a lot (if any!) memory, storage space, or processing power. It was merely a device that connected the user to and enabled him to use the mainframe computer.Users accessed the mainframe only when granted permission, and the information technology (IT) staff weren’t in the habit of handing out access casually. Even on a mainframe computer, processing power is limited—and the IT staff were the guardians of that power. Access was not immediate, nor could two users access the same data at the same time.Beyond that, users pretty much had to take whatever the IT staff gave them—with no variations. Want to customize a report to show only a subset of the normal information? Can’t do it. Want to create a new report to look at some new data? You can’t do it, although the IT staff can—but on their schedule, which might be weeks from now.The fact is, when multiple people are sharing a single computer, even if that computer is a huge mainframe, you have to wait your turn. Need to rerun a financial report? No problem—if you don’t mind waiting until this afternoon, or tomorrow morning. There isn’t always immediate access in a client/server environment, and seldom is there immediate gratification.So the client/server model, while providing similar centralized storage, differed from cloud computing in that it did not have a user-centric focus; with client/server computing, all the control rested with the mainframe—and with the guardians of that single computer. It was not a user-enabling environment.Peer-to-Peer Computing: Sharing ResourcesAs you can imagine, accessing a client/server system was kind of a “hurry up and wait”experience. The server part of the system also created a huge bottleneck. All communications between computers had to go through the server first, however inefficient that might be.The obvious need to connect one computer to another without first hitting the server led to the development of peer-to-peer (P2P) computing. P2P computing defines a network architecture inwhich each computer has equivalent capabilities and responsibilities. This is in contrast to the traditional client/server network architecture, in which one or more computers are dedicated to serving the others. (This relationship is sometimes characterized as a master/slave relationship, with the central server as the master and the client computer as the slave.)P2P was an equalizing concept. In the P2P environment, every computer is a client and a server; there are no masters and slaves. By recognizing all computers on the network as peers, P2P enables direct exchange of resources and services. There is no need for a central server, because any computer can function in that capacity when called on to do so.P2P was also a decentralizing concept. Control is decentralized, with all computers functioning as equals. Content is also dispersed among the various peer computers. No centralized server is assigned to host the available resources and services.Perhaps the most notable implementation of P2P computing is the Internet. Many of today’s users forget (or never knew) that the Internet was initially conceived, under its original ARPAnet guise, as a peer-to-peer system that would share computing resources across the United States. The various ARPAnet sites—and there weren’t many of them—were connected together not as clients and servers, but as equals.The P2P nature of the early Internet was best exemplified by the Usenet network. Usenet, which was created back in 1979, was a network of computers (accessed via the Internet), each of which hosted the entire contents of the network. Messages were propagated between the peer computers; users connecting to any single Usenet server had access to all (or substantially all) the messages posted to each individual server. Although the users’connection to the Usenet server was of the traditional client/server nature, the relationship between the Usenet servers was definitely P2P—and presaged the cloud computing of today.That said, not every part of the Internet is P2P in nature. With the development of the World Wide Web came a shift away from P2P back to the client/server model. On the web, each website is served up by a group of computers, and sites’visitors use client software (web browsers) to access it. Almost all content is centralized, all control is centralized, and the clients have no autonomy or control in the process.Distributed Computing: Providing More Computing PowerOne of the most important subsets of the P2P model is that of distributed computing, where idle PCs across a network or across the Internet are tapped to provide computing power for large, processor-intensive projects. It’s a simple concept, all about cycle sharing between multiple computers.A personal computer, running full-out 24 hours a day, 7 days a week, is capable of tremendous computing power. Most people don’t use their computers 24/7, however, so a good portion of a computer’s resources go unused. Distributed computing uses those resources.When a computer is enlisted for a distributed computing project, software is installed on the machine to run various processing activities during those periods when the PC is typically unused. The results of that spare-time processing are periodically uploaded to the distributedcomputing network, and combined with similar results from other PCs in the project. The result, if enough computers are involved, simulates the processing power of much larger mainframes and supercomputers—which is necessary for some very large and complex computing projects.For example, genetic research requires vast amounts of computing power. Left to traditional means, it might take years to solve essential mathematical problems. By connecting together thousands (or millions) of individual PCs, more power is applied to the problem, and the results are obtained that much sooner.Distributed computing dates back to 1973, when multiple computers were networked togetherat the Xerox PARC labs and worm software was developed to cruise through the network looking for idle resources. A more practical application of distributed computing appeared in 1988, when researchers at the DEC (Digital Equipment Corporation) System Research Center developed software that distributed the work to factor large numbers among workstations within their laboratory. By 1990, a group of about 100 users, utilizing this software, had factored a 100-digit number. By 1995, this same effort had been expanded to the web to factor a 130-digit number.It wasn’t long before distributed computing hit the Internet. The first major Internet-based distributed computing project was , launched in 1997, which employed thousands of personal computers to crack encryption codes. Even bigger was SETI@home, launched in May 1999, which linked together millions of individual computers to search for intelligent life in outer space.Many distributed computing projects are conducted within large enterprises, using traditional network connections to form the distributed computing network. Other, larger, projects utilize the computers of everyday Internet users, with the computing typically taking place offline, and then uploaded once a day via traditional consumer Internet connections.Collaborative Computing: Working as a GroupFrom the early days of client/server computing through the evolution of P2P, there has been a desire for multiple users to work simultaneously on the same computer-based project. This type of collaborative computing is the driving force behind cloud computing, but has been aroundfor more than a decade.Early group collaboration was enabled by the combination of several different P2P technologies. The goal was (and is) to enable multiple users to collaborate on group projects online, in real time.To collaborate on any project, users must first be able to talk to one another. In today’s environment, this means instant messaging for text-based communication, with optionalaudio/telephony and video capabilities for voice and picture communication. Most collaboration systems offer the complete range of audio/video options, for full-featured multiple-user video conferencing.In addition, users must be able to share files and have multiple users work on the same document simultaneously. Real-time whiteboarding is also common, especially in corporate andeducation environments.Early group collaboration systems ranged from the relatively simple (Lotus Notes and Microsoft NetMeeting) to the extremely complex (the building-block architecture of the Groove Networks system). Most were targeted at large corporations, and limited to operation over the companies’private networks.Cloud Computing: The Next Step in CollaborationWith the growth of the Internet, there was no need to limit group collaboration to asingle enterprise’s network environment. Users from multiple locations within a corporation, and from multiple organizations, desired to collaborate on projects that crossed company and geographic boundaries. To do this, projects had to be housed in the “cloud”of the Internet, and accessed from any Internet-enabled location.The concept of cloud-based documents and services took wing with the development of large server farms, such as those run by Google and other search companies. Google already had a collection of servers that it used to power its massive search engine; why not use that same computing power to drive a collection of web-based applications—and, in the process, provide a new level of Internet-based group collaboration?That’s exactly what happened, although Google wasn’t the only company offering cloud computing solutions. On the infrastructure side, IBM, Sun Systems, and other big iron providers are offering the hardware necessary to build cloud networks. On the software side, dozens of companies are developing cloud-based applications and storage services.Today, people are using cloud services and storage to create, share, find, and organize information of all different types. Tomorrow, this functionality will be available not only to computer users, but to users of any device that connects to the Internet—mobile phones, portable music players, even automobiles and home television sets.The Network Is the Computer: How Cloud Computing WorksSun Microsystems’s slogan is “The network is the computer,”and that’s as good as any to describe how cloud computing works. In essence, a network of computers functions as a single computer to serve data and applications to users over the Internet. The network exists in the “cloud”of IP addresses that we know as the Internet, offers massive computing power and storage capability, and enables widescale group collaboration.But that’s the simple explanation. Let’s take a look at how cloud computing works in more detail.Understanding Cloud ArchitectureThe key to cloud computing is the “cloud”—a massive network of servers or even individual PCs interconnected in a grid. These computers run in parallel, combining the resources of eachto generate supercomputing-like power.What, exactly, is the “cloud”? Put simply, the cloud is a collection of computers and servers that are publicly accessible via the Internet. This hardware is typically owned and operated by a third party on a consolidated basis in one or more data center locations. The machines can run any combination of operating systems; it’s the processing power of the machines that matter, not what their desktops look like.As shown in Figure 1.1, individual users connect to the cloud from their own personal computers or portable devices, over the Internet. To these individual users, the cloud is seen as a single application, device, or document. The hardware in the cloud (and the operating system that manages the hardware connections) is invisible.FIGURE 1.1How users connect to the cloud.This cloud architecture is deceptively simple, although it does require some intelligent management to connect all those computers together and assign task processing to multitudes of users. As you can see in Figure 1.2, it all starts with the front-end interface seen by individual users. This is how users select a task or service (either starting an application or opening a document). The user’s request then gets passed to the system management, which finds the correct resources and then calls the system’s appropriate provisioning services. These services carve out the necessary resources in the cloud, launch the appropriate web application, and either creates or opens the requested document. After the web application is launched, the system’s monitoring and metering functions track the usage of the cloud so that resources are apportioned and attributed to the proper user(s).FIGURE 1.2The architecture behind a cloud computing system.As you can see, key to the notion of cloud computing is the automation of many management tasks. The system isn’t a cloud if it requires human management to allocate processes to resources. What you have in this instance is merely a twenty-first-century version ofold-fashioned data center–based client/server computing. For the system to attain cloud status, manual management must be replaced by automated processes.Understanding Cloud StorageOne of the primary uses of cloud computing is for data storage. With cloudstorage, data is stored on multiple third-party servers, rather than on the dedicated servers used in traditional networked data storage.When storing data, the user sees a virtual server—that is, it appears as if the data is stored in a particular place with a specific name. But that place doesn’t exist in reality. It’s just a pseudonym used to reference virtual space carved out of the cloud. In reality, the user’s data could be stored on any one or more of the computers used to create the cloud. The actual storage location may even differ from day to day or even minute to minute, as the cloud dynamically manages available storage space. But even though the location is virtual, the user sees a “static”location for his data—and can actually manage his storage space as if it were connected to his own PC.Cloud storage has both financial and security-associated advantages.Financially, virtual resources in the cloud are typically cheaper than dedicated physical resources connected to a personal computer or network. As for security, data stored in the cloud is secure from accidental erasure or hardware crashes, because it is duplicated across multiple physical machines; since multiple copies of the data are kept continually, the cloud continues to function as normal even if one or more machines go offline. If one machine crashes, the data is duplicated on other machines in the cloud.Understanding Cloud ServicesAny web-based application or service offered via cloud computing is called a cloud service. Cloud services can include anything from calendar and contact applications to word processing and presentations. Almost all large computing companies today, from Google to Amazon to Microsoft, are developing various types of cloud services.With a cloud service, the application itself is hosted in the cloud. An individual user runs the application over the Internet, typically within a web browser. The browser accesses the cloud service and an instance of the application is opened within the browser window. Once launched, the web-based application operates and behaves like a standard desktop application. The only difference is that the application and the working documents remain on the host’s cloud servers.Cloud services offer many advantages. If the user’s PC crashes, it doesn’t affect either the host application or the open document; both remain unaffected in the cloud. In addition, an individual user can access his applications and documents from any location on any PC. He doesn’t have to have a copy of every app and file with him when he moves from office to home to remote location. Finally, because documents are hosted in the cloud, multiple users can collaborate on the same document in real time, using any available Internet connection. Documents are no longer machine-centric. Instead, they’re always available to any authorized user.Companies in the Cloud: Cloud Computing TodayWe’re currently in the early days of the cloud computing revolution. Although many cloud services are available today, more and more interesting applications are still in development. That said, cloud computing today is attracting the best and biggest companies from across the computing industry, all of whom hope to establish profitable business models based in the cloud.As discussed earlier in this chapter, perhaps the most noticeable company currently embracing the cloud computing model is Google. As you’ll see throughout this book, Google offers a powerful collection of web-based applications, all served via its cloud architecture. Whether you want cloud-based word processing (Google Docs), presentation software (Google Presentations), email (Gmail), or calendar/scheduling functionality (Google Calendar), Google has an offering. And best of all, Google is adept in getting all of its web-based applications to interface with each other; their cloud services are interconnected to the user’s benefit.Other major companies are also involved in the development of cloud services. Microsoft, for example, offers its Windows Live suite of web-based applications, as well as the Live Mesh initiative that promises to link together all types of devices, data, and applications in a common cloud-based platform. Amazon has its Elastic Compute Cloud (EC2), a web service that provides cloud-based resizable computing capacity for application developers. IBM has established a Cloud Computing Center to deliver cloud services and research to clients. And numerous smaller companies have launched their own webbased applications, primarily (but not exclusively) to exploit the collaborative nature of cloud services.As we work through this book, we’ll examine many of these companies and their offerings. All you need to know for now is that there’s a big future in cloud computing—and everybody’s jumping on the bandwagon.Why Cloud Computing MattersWhy is cloud computing important? There are many implications of cloud technology, for both developers and end users.For developers, cloud computing provides increased amounts of storage and processing power to run the applications they develop. Cloud computing also enables new ways to access information, process and analyze data, and connect people and resources from any location anywhere in the world. In essence, it takes the lid off the box; with cloud computing, developers are no longer boxed in by physical constraints.For end users, cloud computing offers all those benefits and more. A person using a web-based application isn’t physically bound to a single PC, location, or network. His applications and documents can be accessed wherever he is, whenever he wants. Gone is the fear of losing data if a computer crashes. Documents hosted in the cloud always exist, no matter what happens to the user’s machine. And then there’s the benefit of group collaboration. Users from around the world can collaborate on the same documents, applications, and projects, in real time. It’s a whole new world of collaborative computing, all enabled by the notion of cloud computing.And cloud computing does all this at lower costs, because the cloud enables more efficient sharing of resources than does traditional network computing. With cloud computing, hardware doesn’t have to be physically adjacent to a firm’s office or data center. Cloud infrastructure can be located anywhere, including and especially areas with lower real estate and electricity costs. Inaddition, IT departments don’t have to engineer for peak-load capacity, because the peak load can be spread out among the external assets in the cloud. And, because additional cloud resources are always at the ready, companies no longer have to purchase assets for infrequent intensive computing tasks. If you need more processing power, it’ s always there in the cloud—and accessible on a cost-efficient basis.。
计算机java参考文献

计算机java参考文献计算机java专业是一个比较有高度的专业,主要是编程、开发方向,下面是店铺整理的一些java方面的参考文献供大家参考,希望对你的论文写作有所帮助。
java毕业论文参考文献[1] 寿志勤.李乐明.崇大志.一个面向政务流程的工作流管理系统分析与构建[J].电子政务.2005.Vol.12(10).[2] 王世东.郑力.张智海等.基于 Web 的模板式公文审批系统[J].计算机应用研究.2007.Vol.24(6):289-291.[3] 董晓宏.须玉卿. 浅析企业人力资源管理系统的复杂适应性特征. 商业时代[J]. 2008.Vol.07[4] 郑毅强.郭荷清.高伟.面向政务流程的工作流模型[J].华南理工大学学报(自然科学版).2005.Vol.12(05).[5] 蒋鹏.范冰冰.林向超.基于工作流的公文审批系统的研究与实现[J].福建电脑.2005.(12):75-76.[6] 张江辉.李长云.电子政务解决方案--公文审批系统[J].包装工程.2002.Vol.23(5):59-60[7] 吴小平.隆克平.工作流技术在重庆联通运维管理信息系统的应用[J].重庆邮电学院学报(自然科学版).2005.Vol.12(03).[8] 刘凯.王怀彬等.电子政务应用系统的研究与实现[J].天津理工大学学报.2006.Vol.12(4):55-68.[9] 于森.李怀明.王延章等.行为型设计模式在公文表单处理中的应用[J].计算机工程.2004.Vol.12 (2):47-49.[10] 苏翻.基于 J2EE 平台的改进 MVC 的研究及其应用[J].南京航空航天大学学报.2006.Vol.12 (1):145-147.[11] 龚睿.杨贯中.陈莉.面向 Web 服务的电子政务工作流模型研究[J].计算机工程与应用.2005.Vol.24(12).[12] 蔡昊. 人力资源信息系统的演进及其展望[J]. 西北工业大学学报(社会科学版). 2006.Vol.02[13] 彭正龙.陆云波. 人力资源管理新范式:基于资源观到复杂适应系统. 人力资源开发[J].2007.Vol.01java毕业论文参考文献二:[1] 钱乐秋软件工程[M] 北京:清华大学出版社 2009[2] 陈雄华Spring 企业级应用开发详解[M] 北京:电子工业出版社 2009[3] 陶勇李晓军 Hibernate ORM 最佳实践北京:清华大学出版社 2007[4] 刘克强电子商务平台建设[M] 北京:人民邮电出版社 2007[5] 程杰大话设计模式[M] 北京:清华大学出版社 2010[6] 耿祥义 JSP 基础编程[M].清华大学出版社,2004.55-162[7] 李刚 Strut2 权威指南[M] 北京:电子工业出版社 2008[8] 蔡剑景楠 Java Web 应用开发:J2EE 和 Tomcat[M].北京:清华大学出版社,2004.[9]傅鹏殷旻昊基于 Structs+Spring+Hibernate+Ajax 技术的科研管理系统设计[10] 林上杰林康司JSP2.0 技术手册[M].电子工业出版社,2004.3-6[11] 王珊萨师煊数据库系统概论[M] 北京:高等教育出版社2007[12] 原着施奈德成栋翻译电子商务[M] 北京:机械工业出版社2008java毕业论文参考文献三:[1] 韦乐平. 三网融合的思考[J]. 电信科学, 2010 (3): 1-6.[2] 柴雪芳. 国外移动互联网的发展及对国内运营商的启示[J]. 移动通信, 2010, 34(6): 9-13.[3] 刘长杰.政府工作报告[M]. 人民出版社, 2004.[4] 刘国红, 苏郁. 电信运营商的云计算应用研究[J]. 移动通信, 2009 (10): 83-85.[5] 肖志辉. 移动互联网研究综述[J]. 电信科学, 2009, 25(10): 30-36.[6] 卢赫. 国内外移动互联网发展现状及问题分析[J]. 现代电信科技, 2009, 39(7): 28-31.[7] 薛立宏, 张云华, 曹敏. 移动互联网运营关键问题及商业模式探讨[J]. 电信科学, 2009 (5): 11-17.[8] 孙少陵. 云计算变革下电信运营商的机遇及中国移动云计算探索[J]. 移动通信, 2010, 34(11): 44-46.[9] 全波, 姚素丹. 移动互联网时代电信运营商流量经营探索[J]. 电信科学, 2012, 28(7): 18-22.[10] 王欣. 移动互联网商业模式探讨[J]. 重庆邮电大学学报: 社会科学版, 2009, 21(1): 40-41.[11] 缪敬. 移动互联网对智能手机的影响[J]. 中兴通讯技术, 2009, 15(4): 32-34.[12] 诸瑾文, 王艺. 从电信运营商角度看物联网的总体架构和发展[J]. 电信科学, 2010 (4): 1-5.[13] 张云霞. 物联网商业模式探讨[J]. 电信科学, 2010 (4): 6-11.java毕业论文参考文献四:[1] 阮燕辉. 浏览器/服务器应用开发. 北京: 科学出版社, 2000[2] 史济民. 软件工程--原理、方法与应用. 北京: 高等教育出版社,2002[3] 伍俊良. 管理信息系统(MIS) 开发与应用. 北京: 科学出版社,1999[4] Stephen Walther. ASP .NET 2.0 揭秘. 谭振林,黎志,朱兴林译. 北京: 人民邮电出版社, 2007[5] Craig Larman. UML 和模式应用. 第 2 版. 北京: 机械工业出版社, 2004[6] Martin Fowler. 企业应用架构模式. 北京: 机械工业出版社,2004[7] 梁方明. SQL Server 2000 数据库编程. 北京: 希望电子出版社,2002[8] 张海藩. 软件工程导论. 北京: 清华大学出版社, 2003[9] 立南. SQLServer2000 实用教程. 北京: 清华大学出版社,2004[10] Greg Pearman, James Goodwill. 张杰良译. .NET 2.0 极限编程专家指南. 北京: 清华大学出版社, 2008《计算机专业java毕业论文参考文献》。
计算机科学与技术 外文翻译 英文文献 中英对照
附件1:外文资料翻译译文大容量存储器由于计算机主存储器的易失性和容量的限制, 大多数的计算机都有附加的称为大容量存储系统的存储设备, 包括有磁盘、CD 和磁带。
相对于主存储器,大的容量储存系统的优点是易失性小,容量大,低成本, 并且在许多情况下, 为了归档的需要可以把储存介质从计算机上移开。
术语联机和脱机通常分别用于描述连接于和没有连接于计算机的设备。
联机意味着,设备或信息已经与计算机连接,计算机不需要人的干预,脱机意味着设备或信息与机器相连前需要人的干预,或许需要将这个设备接通电源,或许包含有该信息的介质需要插到某机械装置里。
大量储存器系统的主要缺点是他们典型地需要机械的运动因此需要较多的时间,因为主存储器的所有工作都由电子器件实现。
1. 磁盘今天,我们使用得最多的一种大量存储器是磁盘,在那里有薄的可以旋转的盘片,盘片上有磁介质以储存数据。
盘片的上面和(或)下面安装有读/写磁头,当盘片旋转时,每个磁头都遍历一圈,它被叫作磁道,围绕着磁盘的上下两个表面。
通过重新定位的读/写磁头,不同的同心圆磁道可以被访问。
通常,一个磁盘存储系统由若干个安装在同一根轴上的盘片组成,盘片之间有足够的距离,使得磁头可以在盘片之间滑动。
在一个磁盘中,所有的磁头是一起移动的。
因此,当磁头移动到新的位置时,新的一组磁道可以存取了。
每一组磁道称为一个柱面。
因为一个磁道能包含的信息可能比我们一次操作所需要得多,所以每个磁道划分成若干个弧区,称为扇区,记录在每个扇区上的信息是连续的二进制位串。
传统的磁盘上每个磁道分为同样数目的扇区,而每个扇区也包含同样数目的二进制位。
(所以,盘片中心的储存的二进制位的密度要比靠近盘片边缘的大)。
因此,一个磁盘存储器系统有许多个别的磁区, 每个扇区都可以作为独立的二进制位串存取,盘片表面上的磁道数目和每个磁道上的扇区数目对于不同的磁盘系统可能都不相同。
磁区大小一般是不超过几个KB; 512 个字节或1024 个字节。
计算机专业毕业论文外文翻译9
外文资料Creating an Internal Content Management SystemCalvin and Hobbes: Managing Our Content OnlineManager Tab (Manager)Reference Desk Tab (RefDesk)Reference Desk Schedule Tab (RefDesk Sched)Library Statistics Tab (Stats)Library Meeting Minutes (Minutes)Library Resources Tab (Lib Resources)Library Hours Tab (Lib Hours)Library News Tab (LibNews)Database Maintenance (DB Projects)Bookmarks (Bookmarks on bar beneath the tabs)The Future of HobbesReferencesFurther ReadingHere at Calvin College, we created Hobbes, a hybrid of CMS and intranet that organizes Web site content and a variety of internal tools to help our libraries complete their daily tasks.When I became digital resources and reference/ instruction librarian in 1999 at the Hekman Library at Calvin College and Calvin Theological Seminary, one of my first tasks was to redesign the library's Web site. Like many of you who maintain Web links to library resources, I quickly learned that offering access to a large number of resources from an even larger number of static Web pages can never really be described as efficient or professionally fulfilling.In recent years, many libraries have created dynamic Web sites that are database-driven, that is, maintained and populated with content stored within what can be loosely termed a content management system (CMS). In 2001, Jed Koops, the Hekman Library systems programmer, and I created a CMS called Hobbes (library staff liked the play on the words "Calvin and Hobbes"). Since then, Hobbes has grown into a hybrid of CMS and intranet to include not only Web site content, but also a variety of internal tools used by librarians to help them complete some of their daily tasks.Hekman is a small academic library serving more than 4,200 students, 370 faculty, and many community patrons. The majority of the library's 1.7 million items (books,e-books, journals, e-journals, microfiche, government documents, etc.) are spread across 100,000 square feet over four floors. Hekman employs the full-time equivalent of 17 staff, including eight professional librarians who also serve as liaisons to all of the college's 25 academic departments. Access to all library resources is provided through the online catalog (Sirsi), a digital media archive (Sirsi), and our Web site, the Hekman Digital Library (HDL). Since its creation in 1997, the HDL has grown from a mundane list of links and library information to the primary point of access to all of the library's resources. In 2001, I created the current version of the HDL.Calvin and Hobbes: Managing Our Content OnlineHobbes is a Web-based tool that uses Common Gateway Interface (CGI) scripts written in Perl to store, query, and return results from data stored in a series of related SQL tables. Because it is Web-based, librarians can easily manage data without knowing Perl or SQL and can be authenticated into the system using the college's existing online directory By authenticating through a continually updated college database of login names and passwords, we did not need to create our own. Users added to the Hobbes environment have immediate access without needing to remember yet another ID and password.As a CMS, I initially envisioned Hobbes as a tool to help me to efficiently manage the library's Web pages, specifically the growing number of subscription-based resources. In the months after Jed and I implemented Hobbes, we realized that it could be used to host tools that served the library's internal communication needs as well. Over the course of 2 years, we added tools as they were thought of and created, and placed them according to their function under tabs that are strung along the top of the Hobbes environment (see Figure 1). Each librarian is given access to the tabs and tools she needs based on her profile within Hobbes. Here I will describe each tab and some of the major tools (or tables) placed within it. With each description, I have included our label in parentheses to help you compare what you are reading to the screen shots. To see how some of Hobbes' resources are displayed to the public, please visit the HDL at /library.Manager Tab (Manager)The Manager tab is used primarily by Jed and me to administer the contents within Hobbes. Since there are quite a few tools under the Manager tab (see Figure 1), I'll briefly explain a number of these before moving on to the functions of the other tabs.Databases (TofDbs): Each research database record stored in a table of databases(Tombs) contains the following fields that allow the resources to be displayed on the HDL in a variety of helpful ways:Alphabetical--Based on the first letter; can also include See Also referencesType--Citation index, abstracts, full textAuthentication--Whether the resource is accessed through IP authentication, for free on the Web, on a CD-ROM, or through a print indexFull-text type--Describes a database's full-text content, such as journal or newspaper articles, e-books, or even primary source historical documents V endor--Most useful for our librariansSubject--In our case, based on the college's academic disciplinesPeer-reviewed/refereed--Has a field where instructions can be included on how to limit a database search to peer-reviewed/ refereed articlesCitation examples--Includes a field that shows examples of citation styles for material found in the database. We created a Web page on how to cite electronic resources, and this page displays a list of full-text databases. When clicked, it brings the user to an information page that offers examples of how to cite the full-text content.Descriptors--Terms that describe the database and its contents, making it possible for patrons to search for appropriate databases. However, we turned off the search feature on the HDL, because many patrons thought that by searching for a database, they were actually searching the contents of the database itself.Microforms (TofMic): Web pages that describe our microform sets are stored as records in a table of microforms. In addition to a brief description of the microform set, each TofMic record includes detailed contents information. For some sets, this means a reel-by-reel description or a detailed bibliography For sets that have individual MARC records in our online catalog, we display a WebCat search box that limits searches to the appropriate microform set.Reference (TofRef): The college's academic departments each have an assigned library liaison. One role of the liaison is to maintain a Web page that highlights library resources that are important to the department, such as databases, microform sets, and reference sets. Each liaison can add Web resources that she considers important for her departments.Staff (Staff): In addition to displaying staff information on the HDL, creating a table of staff members allows each of the librarians to be authenticated into Hobbes. Like Tombs records, the staff record contains many fields that allow them to be usedin a variety of ways:Login name (based on the college's LDAP server)Status--Librarian, support staff, student assistantOffice location, office hours, and phone numberResponsibility--These show up in the HDL's A-Z Index, so that users can look for, say, the cataloging librarianBirthday (so we all know when to expect treats!)Access level--This determines the Hobbes tabs (and tables within the tabs) that each staff member has access to. For example, the circulation manager only has access to the Lib Hours, Minutes, and Lib Resources tabs.A-Z Index of this Web site (A-Z Index): Entries that appear on the HDL's "A-Z Index of this web site" bring together records from several tables into one place, including the A-Z Index table, the TofDbs, TofMic, TofRef, and Staff table (see Figure 2).Icons (Icons): As Figure 2 shows, we made the A-Z Index more visually appealing after implementing a database of icons that is itself linked to from other Hobbes tables.E-journals (Ejournal): Based on the experience gained from implementing Hobbes, Jed and I decided to try our hand at managing our growing collection of e-journals. The Ejournal tool in Hobbes is designed to accept a collection in the form of batch loads of comma-delimited files (created from lists from aggregated databases and our own e-journal lists). Using a complicated script, the tool creates e-journal records for each title based on ISSN; any subsequent e-journals that are loaded as part of another collection are not added as unique records, but rather as a holding to the main e-journal record. Initially displayed to the public within a separate database called the E-journal Locator, we eventually figured out how to import these e-journal records into our online catalog, thereby offering our patrons one place to find all our journals, print or online.Passwords (Passwords): This table contains password records for resources that require login information, such as e-journals, database administrative modules, or database usage statistics. Creating one place for these allows the librarians to easily share this important information.Quotations (Quotes): The HDL home page displays a unique quote each time it is loaded, and each of these quotations is stored in the Quotes database. Additional tables control the "message of the day" (WebCat motd) that appears in the banner ofour online catalog.Reference Desk Tab (RefDesk)The default Hobbes screen for the reference librarians is the RefDesk tab, which displays the tools they use while working at the reference desk. The top half of the screen displays any questions that have been submitted by a patron using the Ask a Librarian Web form. The librarian can choose to immediately answer a question or assign it to another librarian. (See Figure 3.) Statistics for all these questions are internally tabulated and can be accessed in Hobbes' Stats tab.The bottom half of the RefDesk screen displays a RefBlog (a Weblog) where librarians post reference-related entries. RefBlog entries can also be tagged as sample reference questions to supply anecdotal evidence in statistical reports. All of the information within the RefDesk tab is searchable.Reference Desk Schedule Tab (RefDesk Sched)With constant shift changes being scribbled on the print copy of the reference desk schedule, or with shifts being missed because they could not consult the schedule from home, our librarians welcomed the addition of an online reference desk schedule in Hobbes (see Figure 4). Four weeks' worth of shifts are displayed at one time, and changes can be made simply by clicking on a librarian's name in a particular time slot.(n1)Library Statistics Tab (Stats)Before Hobbes, librarians kept track of their own statistics in individual Microsoft Excel files, a program that many knew well enough to enter data into, but not well enough to creatively display or manipulate that data. V arious statistical tables are included in the Stats tab, as is a utility to create reports based on date and other criteria.Library Meeting Minutes (Minutes)The Minutes tab displays folders that contain minutes from the various groups of library staff that hold regular meetings. After being completed in Microsoft Word, the secretary logs into Hobbes and uploads the minutes into the appropriate folder for future reference. Also, an e-mail with the attached minutes is distributed to staff members who have this preference selected in their staff table record.Library Resources Tab (Lib Resources)While the librarians are able to share documents on a common drive on the campus network, it became apparent that some information could be better shared by being displayed within Hobbes. The Lib Resources tab contains a wide variety oflinks to resources such as a fund status report (used by liaisons to track departmental book budgets); employee policies; evaluation documents; and library labels, signs, and graphics.Library Hours Tab (Lib Hours)Hekman Library's hours are not easy to describe with text, so they are displayed on the HDL in a 2-month calendar format. After being incorporated into Hobbes, the tedious process of updating this Web page was replaced by a table that utilizes an existing calendar.Library News Tab (LibNews)After attending a session on RSS(n2) at the 2003 Computers in Libraries conference, it didn't take me long to wonder how we could incorporate this into Hobbes, and it took even less time for Jed to actually implement this feature. The LibNews tab displays information from RSS feeds, with the name of the feed on the left and the contents of the feed displayed within a box on the right.Database Maintenance (DB Projects)This tab contains links to the administrative modules of five locally created databases.(n3) As with e-journals, records can be added, edited, and deleted, and bulk amounts of data can be imported using delimited files.Bookmarks (Bookmarks on bar beneath the tabs)Since Hobbes displays information based on a librarian's login, we were able to add some tools that provided unique data for a given librarian. For example, each person is able to upload his or her browser bookmarks from the office computer to use at the reference desk or from home. Librarians are also able to upload liaison newsletters into Hobbes, which in turn are displayed on their HDL staff page.THE LOGIC PROGRAMMING OF HobbesLogic programming, which is based on the first-order predicate logic, has been widely used in AI applications, It is a programming style of attractive features. As logic is regarded as a formalism unifying AI, data management and programming, it is the key feature of many new generation projects, especially the FGCS. The principal idea behind logic programming is that an algorithm comprises two parts: a logical component and a control component. The users need only to specify in his program what to do (i.e. , the logical component ), whereas it is the responsibility of the system to exercise the control on how to do it.One of the major feature of logic programs is its non-determinisms. Comparedwith normal programs, logic programs are non-deterministic in two senses:(1)When several clauses match a given procedure call, the search strategy by means of which the alternative clauses are tride is not determined.(2)When several calls need to be executed in a single goal statement, the order of execution is not determined.The non-determinisms of logic programs make them suitable for AI applications (e.g., problem solving ) and potentially rich in parallelism.There is continuous effort in improving the implementation efficiency of Prolog, which is a restriction of logic programming. However, the past effort mainly focuses on interpreter-based software implementation. It is only in recent years that Prolog oriented computer architectures are developed. The PSI-II in Japan and the PLM at Berkeley are two famous sequential Prolog machines, which are based on the WAM, a high performance compiler-based execution model for Prolog. It is estimated that the highest possible performance of a sequential Prolog machine constructed.In order to meet the demand of gigantic inference speed in AI applications, the inherent parallelisms in logic programs should be exploited. There are many sources of parallelism in logic programs, of which the major ones are the AND-parallelism, the ORparallelism and the stream parallelism. Substantial research has been carried out on parallel computation models utilizing these parallelisms.New logic programming languages suitable for parallel processing have been developed. For example, the Concurrent Prolog, the GHC, the Parlog, the Delta-prolog, etc. special architectures supporting efficient implementation of these languages have been investigated. Besides, multiprocessor systems have been constructed to greatly enhance the performance of parallel processing of logic programs and production systems.THE DATAFLOW COMPUTATION OF HobbesTraditional computers are challenged with application which require tremendously high-speed computation capability, which has led computer scientists to study non vonneumann architectures, of which the most promising one is the dataflow architecture. A dataflow computation is one in which the operations are executed in an order determined by the data interdependencies and the availability of resources. In a dataflow program, the ordering of operations is not specified by the programmer, but is that implied by the data interdependencies.Two varieties of dataflow computation can be distinguished: data-driven computations, and demand-driven computations. In a data-driven computer, aninstruction can be executed as soon as the input data it requires are available. After the instruction is executed, its result is made available to the successor instructions. In a demand driven (e.g. , reduction) system, an instruction is triggered when the results produced by it are demanded by other instructions. These demands cause further demands for operands unless the operands are locally available in which case the instruction is executed and the results are sent back. In both of these systems, as a result of data (or demand) activated instruction execution, many instructions can become available for execution at once , and it is possible to exploit all of the parallelism in the program. It is expected that these architectures can efficiently exploit concurrency of computation on a very large scale. A number of such systems are being developed around the world. Most notably, the Japanese have chosen dataflow as the underlying architecture for their Fifth Generation Machines. Dataflow and reduction architectures hold great promise, but there are some important problems to be solved before they can be used effectively to provide large scale parallelism. One major problem of dataflow architecture is its heavy overhead. To solve the problem, proposals have been made to combine dataflow with control flow, and to exploit parallelisms at task-level.The Future of HobbesJed and I created Hobbes on the fly, with no blueprint for what the "product" would eventually become. Consequently, we gave many of the resources names and locations that made sense to us, but would potentially be quite confusing for the librarians who use the system, or for our successors were we to leave Calvin. ("Uh, what exactly is a 'Tofdbs_cit_label'?") With this in mind, most Hobbes tools have a text box for instructions that can uniquely identify the resource, and say why the tool was created and what HDL pages contain its dynamic data. (See Figure 1.) In the near future, I plan to flesh out these instructions as we consider plans to make Hobbes control the remaining HDL pages. From time to time, we find other ways of displaying the data, and as other tools are added, we rename, recreate, and reorganize some of the tabs.Even though Hobbes is yet another resource vying for attention in already-full schedules, it was not difficult to convince the librarians that Hobbes was something they should be using. They like that library information has been moved from files on a shared network directory to an environment where it can be stored, displayed, and manipulated for the benefit of both the library staff and the patrons we serve.The biggest challenges that we face are the maintenance required to keep Hobbes'information up-to-date and keeping the complex scripts working properly. Creating a CMS like Hobbes required extensive programming skills. Despite Hekman Library's relatively small size, I was fortunate that it also employed a systems programmer. Other libraries considering an undertaking like Hobbes would not only have to evaluate the skills of available employees, but also consider the time needed to create and maintain such a system.中文译文题名:internet信息管理系统作者:西曼, 格雷格,计算机图书室,10417915, 2004年一月,24册数据库:专业开发收集信息库internet信息管理系统关键字:加尔文和霍布斯:在线信息管理系统在线管理系统是由加尔文大学建立的.他是一个功能强大的系统,包括各种各样的工具.适用于企业内部网的站点内容管理以及日常数据信息的维护.1999年在加尔文大学的图书馆工作的时候,我其中的一个工作是重新设计图书馆的web站点.正如千万个web站点维护人员一样,我整日连接着数据信息.我很快就感受到利用如此巨大的数据库去连接大量的静态网页是一件多么第效率的事情.而且不能用到一点专业知识.近几年里,许多图书馆建立了基于数据驱动动态的站点管理.这个站点利用简单的语句开发出信息管理系统.主要用于维护和存储数据.在2001年,我和凯门图书中心的研发人员杰德.库思共同开发了信息管理系统叫做Hobbes(图书管理员就像在玩文字游戏).从那时开始,经过我们不断调试与改进.这个系统日趋完善.能有各种适用于企业内部网的工具以及一些能够维护图书馆日常工作的任务.Hekman是一个小型的图书馆,他提供370个系4200个学生读书和许多的社会团体。
大学毕业论文英文翻译及原文
大学毕业论文英文翻译中文译文计算机网络每个一个世纪都有一种主导地位的技术。
18世纪伴随着工业革命的到来的是大型机械系统的时代;19世纪是蒸汽机的时代,而20世纪的发展历程中,关键的技术是信息收集、处理和分发。
在其他的发展方面,我们还可以看到:遍布全球的电话网络的建立起来了,无线电广播和电视的出现了,计算机工业诞生了,并且以超乎想象的速度在成长;另外通信卫星也发射上天了。
技术的快速发展的一个直接结果是,这些领域正在快速地融合,信息收集、传输、存储和处理之间的差别正在迅速地消失。
对于具有数百个办公室的大型组织来说,尽管这些办公室分布在广阔的地理区域中,但未来期望的情景是,工作人员只要单击一下按钮,就可以查看最远处分部的状态。
随着信息收集、处理和分发能力的不断提高,我们对于更加复杂的信息处理技术的需求也增长得更快。
与其他的工业(比如汽车和航空运输业)相比,计算机工业还是非常年轻,尽管如此,计算机技术却在很短的时间内有了惊人的进展。
在计算机诞生之初的20年间,计算机系统是高度集中化的,通常位于一个很大的房间中。
该房间通常配有玻璃墙,参观的人透过玻璃墙可以欣赏到里边伟大的电子奇迹。
中等规模的公司或者大学可能会有一台或者两台计算机,而大型的研究机构最多也就几十台计算机。
要在20年内生产出大量同样功能但是体积比邮票还小的计算机,在当时的人们看来纯属科学幻想。
计算机和通信的结合对于计算机系统的组织方式产生了深远的影响。
把一台大型的计算机放在一个单独的房间中,然后用户带着他们的处理任务去房间里上机,这种"计算机中心"的概念现在已经完全过时了。
由一台计算机来处理整个组织中所有的计算需求,这种老式的模型已经被新的模型所取代,在新的模型下,由大量独立的,但相互连接起来的计算机来共同完成计算任务。
这些系统称为计算机网络(computer networks)。
如何设计这些网络,并且将这些网络组织起来,这就是本书的主题。
计算机中英论文
Understanding Web Addresses You can think of the World Wide Web as a network of electronic files stored on computers all around the world. Hypertext links these
news - a newsgroup
Ø telnet - a computer system that you can log into over the Internet Ø WAIS - a database or document in a Wide Area Information Search database Ø file - a file located on a local drive (your hard drive)
1
resources together. Uniform Resource Locators or URLs are the addresses used to locate these files. The information contained in a URL gives you the ability to jump from one web page to another with just a click of your mouse. When you type a URL into your browser or click on a hypertext link, your browser is sending a request to a remote computer to download a file. What does a typical URL look like? Here are some examples: / The home page for study English. ftp:///pub/ A directory of files at MIT available for downloading. news:rec.gardens.roses A newsgroup on rose gardening. The first part of a URL (before the two slashes* tells you the type of resource or method of access at that address. For example: Ø Ø Ø files Ø http - a hypertext document or directory gopher - a gopher document or menu ftp - a file available for downloading or a directory of such
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
毕业设计(论文)外文文献翻译文献、资料中文题目:Java核心技术卷Ⅱ高级特性文献、资料英文题目:Core Java™ V olume II–AdvancedFeatures文献、资料来源:文献、资料发表(出版)日期:院(部):专业:计算机班级:姓名:学号:指导教师:翻译日期: 2017.02.14本科毕业论文外文文献及译文文献、资料题目:Core Java™ V olume II–AdvancedFeatures文献、资料来源:著作文献、资料发表(出版)日期:2008.12.1院(部):计算机科学与技术学院专业:网络工程班级:网络082姓名:刘治华学号:2008111242指导教师:许丽娜翻译日期:2012.5.10外文文献:Core Java™ Volume II–Advanced Features When Java technology first appeared on the scene, the excitement was not about a well-crafted programming language but about the possibility of safely executing applets that are delivered over the Internet (see V olume I, Chapter 10 for more information about applets). Obviously, delivering executable applets is practical only when the recipients are sure that the code can't wreak havoc on their machines. For this reason, security was and is a major concern of both the designers and the users of Java technology. This means that unlike other languages and systems, where security was implemented as an afterthought or a reaction to break-ins, security mechanisms are an integral part of Java technology.Three mechanisms help ensure safety:•Language design features (bounds checking on arrays, no unchecked type conversions, no pointer arithmetic, and so on).•An access control mechanism that controls what the code can do (such as file access, network access, and so on).•Code signing, whereby code authors can use standard cryptographic algorithms to authenticate Java code. Then, the users of the code can determine exactly who created the code and whether the code has been altered after it was signed.Below, you'll see the cryptographic algorithms supplied in the java.security package, which allow for code signing and user authentication.As we said earlier, applets were what started the craze over the Java platform. In practice, people discovered that although they could write animated applets like the famous "nervous text" applet, applets could not do a whole lot of useful stuff in the JDK 1.0 security model. For example, because applets under JDK 1.0 were so closely supervised, they couldn't do much good on a corporate intranet, even though relatively little risk attaches to executing an applet from your company's secure intranet. It quickly became clear to Sun that for applets to become truly useful, it was important for users to be able to assign different levels of security, depending on where the applet originated. If an applet comes from a trusted supplier and it has not been tampered with, the user of that applet can then decide whether to give the applet more privileges.To give more trust to an applet, we need to know two things:•Where did the applet come from?•Was the code corrupted in transit?In the past 50 years, mathematicians and computer scientists have developed sophisticated algorithms for ensuring the integrity of data and for electronic signatures. The java.security package contains implementations of many of these algorithms. Fortunately, you don't need to understand the underlying mathematics to use the algorithms in the java.security package. In the next sections, we show you how message digests can detect changes in data files and how digital signatures can prove the identity of the signer.A message digest is a digital fingerprint of a block of data. For example, the so-called SHA1 (secure hash algorithm #1) condenses any data block, no matter how long, into a sequence of 160 bits (20 bytes). As with real fingerprints, one hopes that no two messages have the same SHA1 fingerprint. Of course, that cannot be true—there are only 2160 SHA1 fingerprints, so there must be some messages with the same fingerprint. But 2160is so large that the probability of duplication occurring is negligible. How negligible? According to James Walsh in True Odds: How Risks Affect Your Everyday Life (Merritt Publishing 1996), the chance that you will die from being struck by lightning is about one in 30,000. Now, think of nine other people, for example, your nine least favorite managers or professors. The chance that you and all of them will die from lightning strikes is higher than that of a forged message having the same SHA1 fingerprint as the original. (Of course, more than ten people, none of whom you are likely to know, will die from lightning strikes. However, we are talking about the far slimmer chance that your particular choice of people will be wiped out.)A message digest has two essential properties:•If one bit or several bits of the data are changed, then the message digest also changes.• A forger who is in possession of a given message cannot construct a fake message that has the same message digest as the original.The second property is again a matter of probabilities, of course. Consider the following message by the billionaire father:"Upon my death, my property shall be divided equally among my children; however, my son George shall receive nothing."That message has an SHA1 fingerprint of2D 8B 35 F3 BF 49 CD B1 94 04 E0 66 21 2B 5E 57 70 49 E1 7EThe distrustful father has deposited the message with one attorney and the fingerprint with another. Now, suppose George can bribe the lawyer holding the message. He wants to change the message so that Bill gets nothing. Of course, that changes the fingerprint to a completely different bit pattern:2A 33 0B 4B B3 FE CC 1C 9D 5C 01 A7 09 51 0B 49 AC 8F 98 92Can George find some other wording that matches the fingerprint? If he had been the proud owner of a billion computers from the time the Earth was formed, each computing a million messages a second, he would not yet have found a message he could substitute.A number of algorithms have been designed to compute these message digests. The two best-known are SHA1, the secure hash algorithm developed by the National Institute of Standards and Technology, and MD5, an algorithm invented by Ronald Rivest of MIT. Both algorithms scramble the bits of a message in ingenious ways. For details about these algorithms, see, for example, Cryptography and Network Security, 4th ed., by William Stallings (Prentice Hall 2005). Note that recently, subtle regularities have been discovered in both algorithms. At this point, most cryptographers recommend avoiding MD5 and using SHA1 until a stronger alternative becomes available. (See /rsalabs/node.asp?id=2834 for more information.) The Java programming language implements both SHA1 and MD5. The MessageDigest class is a factory for creating objects that encapsulate the fingerprinting algorithms. It has a static method, called getInstance, that returns an object of a class that extends the MessageDigest class. This means the MessageDigest class serves double duty:•As a factory class•As the superclass for all message digest algorithmsFor example, here is how you obtain an object that can compute SHA fingerprints:MessageDigest alg = MessageDigest.getInstance("SHA-1");(To get an object that can compute MD5, use the string "MD5" as the argument to getInstance.)After you have obtained a MessageDigest object, you feed it all the bytes in the message by repeatedly calling the update method. For example, the following code passes all bytes in a file to the alg object just created to do the fingerprinting:InputStream in = . . .int ch;while ((ch = in.read()) != -1)alg.update((byte) ch);Alternatively, if you have the bytes in an array, you can update the entire array at once:byte[] bytes = . . .;alg.update(bytes);When you are done, call the digest method. This method pads the input—as required by the fingerprinting algorithm—does the computation, and returns the digest as an array of bytes.byte[] hash = alg.digest();The program in Listing 9-15 computes a message digest, using either SHA or MD5. You can load the data to be digested from a file, or you can type a message in the text area.Message SigningIn the last section, you saw how to compute a message digest, a fingerprint for the original message. If the message is altered, then the fingerprint of the altered message will not match the fingerprint of the original. If the message and its fingerprint are delivered separately, then the recipient can check whether the message has been tampered with. However, if both the message and the fingerprint were intercepted, it is an easy matter to modify the message and then recompute the fingerprint. After all, the message digest algorithms are publicly known, and they don't require secret keys. In that case, the recipient of the forged message and the recomputed fingerprint would never know that the message has been altered. Digital signatures solve this problem.To help you understand how digital signatures work, we explain a few concepts from the field called public key cryptography. Public key cryptography is based on the notion of a public key and private key. The idea is that you tell everyone in the world your public key. However, only you hold the private key, and it is important that you safeguard it and don't release it to anyone else. The keys are matched by mathematical relationships, but the exact nature of these relationships is not important for us. (If you are interested, you can look it up in The Handbook of Applied Cryptography at http://www.cacr.math.uwaterloo.ca/hac/.)The keys are quite long and complex. For example, here is a matching pair of public and。