Graphical User Interfaces with Perl Tcl Tk
- 格式:ppt
- 大小:266.00 KB
- 文档页数:40
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 stand-alone programming problems,it is also important because it will solve programming problems on the World Wide Web.1.Client-side programmingThe Web’s initial server-browser design provided for interactive content,but the interactivity was completely provided by the server.The server produced static pages for the client browser,which would simply interpret and display them.Basic HTML contains simple mechanisms for data gathering:text-entry boxes,check boxes,radio boxes,lists and drop-down lists,as well as a button that can only be programmed to reset the data on the form or“submit”the 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 is a common choice because it is designed for text manipulation and is interpreted, so it can be installed on any server regardless of processor or operating system. Many powerful Web sites today are built strictly on CGI,and you can in fact do nearly anything with it.However,Web sites built on CGI programs can rapidly become overly complicated to maintain,and there is also the problem of response time.The response of a CGI program depends on how much data mustbe sent,as well as the load on both the server and the Internet.(On top of this, starting a CGI program tends to be slow.)The initial designers of the Web did not foresee how rapidly this bandwidth would be exhausted for the kinds of applications people developed.For example,any sort of dynamic graphing is nearly impossible to perform with consistency because a GIF file must be created and moved from the server to the client for each version of the graph. And you’ve no doubt had direct experience with something as simple as validating the data on an input form.You press the submit button on a page;the data is shipped back to the server;the server starts a CGI program that discovers an error,formats an HTML page informing you of the error,and then sends the page back to you;you must then back up a page and try again.Not only is this slow,it’s inelegant.The solution is client-side programming.Most machines that run Web browsers are powerful engines capable of doing vast work,and with the original static HTML approach they are sitting there,just idly waiting for the server to dish up the next page.Client-side programming means that the Web browser is harnessed to do whatever work it can,and the result for the user is a much speedier and more interactive experience at your Web site.The problem with discussions of client-side programming is that they aren’t very different 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 by client-side programming. The rest of this section provides an overview of the issues and approaches in client-side programming.Plug-ins2.2.Plug-insOne of the most significant steps forward in client-side programming is the development of the plug-in.This is a way for a programmer to add new functionality to the browser by downloading a piece of code that plugs itself into the appropriate spot in the browser.It tells the browser“from now on you canperform 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 languages3.3.ScriptingPlug-ins resulted in an explosion of scripting languages.With a scripting language you embed the source code for your client-side program directly into the HTML page,and the plug-in that interprets that language is automatically activated while the HTML page is being displayed.Scripting languages tend to be reasonably easy to understand and,because they are simply text that is part of an HTML page,they load very quickly as part of the single server hit required to procure that page.The trade-off is that your code is exposed for everyone to see (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 solve80percent of the problems encountered in client-side programming.Your problems might very well fit completely within that80percent,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),andTcl/Tk,which comes from the popular cross-platform GUI-building language. There are others out there,and no doubt more in development.JavaScript is probably the most commonly supported.It comes built into both Netscape Navigator and the Microsoft Internet Explorer(IE).In addition,there are probably more JavaScript books available than there are for the other browser languages,and some tools automatically create pages using JavaScript. However,if you’re already fluent in Visual Basic or Tcl/Tk,you’ll be more productive using those scripting languages rather than learning a new one. (You’ll have your hands full dealing with the Web issues already.)Java4.4.JavaIf a scripting language can solve80percent of the client-side programming problems,what about the other20percent—the“really hard stuff?”The most popular solution today is Java.Not only is it a powerful programming language built to be secure,cross-platform,and international,but Java is being continually extended to provide language features and libraries that elegantly handle problems that are difficult in traditional programming languages,such as multithreading,database access,network programming,and distributed computing.Java allows client-side programming via the applet.An applet is a mini-program that will run only under a Web browser.The applet is downloaded automatically as part of a Web page(just as,for example, a graphic is automatically downloaded).When the applet is activated it executes a program.This is part of its beauty—it provides you with a way to automatically distribute the client software from the server at the time the user needs the client software,and no sooner.The user gets the latest version of the client software without fail and without difficult reinstallation.Because of the way Java is designed,the programmer needs to create only a single program, and that program automatically works with all computers that have browsers with built-in Java interpreters.(This safely includes the vast majority of machines.)Since Java is a full-fledged programming language,you can do as much work as possible on the client before and after making requests of theserver.For example,you won’t need to send a request form across the Internet to discover that you’ve gotten a date or some other parameter wrong,and your client computer can quickly do the work of plotting data instead of waiting for the server to make a plot and ship a graphic image back to you.Not only do you get the immediate win of speed and responsiveness,but the general network traffic and load on servers can be reduced,preventing the entire Internet from slowing down.One advantage a Java applet has over a scripted program is that it’s in compiled form,so the source code isn’t available to the client.On the other hand, a Java applet can be decompiled without too much trouble,but hiding your code is often not an important issue.Two other factors can be important.As you will see later in this book,a compiled Java applet can comprise many modules and take multiple server“hits”(accesses)to download.(In Java1.1and higher this is minimized by Java archives,called JAR files,that allow all the required modules to be packaged together and compressed for a single download.)A scripted program will just be integrated into the Web page as part of its text(and will generally be smaller and reduce server hits).This could be important to the responsiveness of your Web site.Another factor is the all-important learning curve.Regardless of what you’ve heard,Java is not a trivial language to learn.If you’re a Visual Basic programmer,moving to VBScript will be your fastest solution,and since it 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,since they might fit your needs handily and you’ll be more productive sooner.to run its applets withiActiveX5.5.ActiveXTo some degree,the competitor to Java is Microsoft’s ActiveX,although it takes a completely different approach.ActiveX was originally a Windows-only solution,although it is now being developed via an independent consortium to become cross-platform.Effectively,ActiveX says“if your program connects toits environment just so,it can be dropped into a Web page and run under a browser that supports ActiveX.”(IE directly supports ActiveX and Netscape does so using a plug-in.)Thus,ActiveX does not constrain you to a particular language.If,for example,you’re already an experienced Windows programmer using a language such as C++,Visual Basic,or Borland’s Delphi,you can create ActiveX components with almost no changes to your programming knowledge. ActiveX also provides a path for the use of legacy code in your Web pages.Security6.6.SecurityAutomatically downloading and running programs across the Internet can sound like a virus-builder’s dream.ActiveX especially brings up the thorny issue of security in client-side programming.If you click on a Web site,you might automatically download any number of things along with the HTML page: GIF files,script code,compiled Java code,and ActiveX components.Some of these are benign;GIF files can’t do any harm,and scripting languages are generally limited in what they can do.Java was also designed to run its applets within a“sandbox”of safety,which prevents it from writing to disk or accessing memory outside the sandbox.ActiveX is at the opposite end of the spectrum.Programming with ActiveX is like programming Windows—you can do anything you want.So if you click on a page that downloads an ActiveX component,that component might cause damage to the files on your disk.Of course,programs that you load onto your computer that are not restricted to running inside a Web browser can do the same thing.Viruses downloaded from Bulletin-Board Systems(BBSs)have long been a problem,but the speed of the Internet amplifies the difficulty.The solution seems to be“digital signatures,”whereby code is verified to show who the author is.This is based on the idea that a virus works because its creator can be anonymous,so if you remove the anonymity individuals will be forced to be responsible for their actions.This seems like a good plan because it allows programs to be much more functional,and I suspect it will eliminate malicious mischief.If,however,a program has an unintentional destructive bugit 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 are rapidly repaired.(It’s worth noting that the browser software actually enforces these security restrictions,and some browsers allow you to select different security levels to provide varying degrees of access to your system.) You might be skeptical of this rather draconian restriction against writing files to your local disk.For example,you may want to build a local database or save data for later use offline.The initial vision seemed to be that eventually everyone would get online to do anything important,but that was soon seen to be impractical(although low-cost“Internet appliances”might someday satisfy the needs of a significant segment of users).The solution is the“signed applet”that uses public-key encryption to verify that an applet does indeed come from where it claims it does.A signed applet can still trash your disk,but the theory is that since you can now hold the applet creator accountable they won’t do vicious things.Java provides a framework for digital signatures so that you will eventually be able to allow an applet to step outside the sandbox if necessary. Digital signatures have missed an important issue,which is the speed that people move around on the Internet.If you download a buggy program and it does something untoward,how long will it be before you discover the damage? It could be days or even weeks.By then,how will you track down the program that’s done it?And what good will it do you at that point?Internet vs.intranet7.7.InternetThe Web is the most general solution to the client/server problem,so it makes sense that you can use the same technology to solve a subset of the problem,in particular the classic client/server problem within a company.With traditionalclient/server approaches you have the problem of multiple types of client computers,as well as the difficulty of installing new client software,both of which are handily solved with Web browsers and client-side programming. When Web technology is used for an information network that is restricted to a particular company,it is referred to as an intranet.Intranets provide much greater security than the Internet,since you can physically control access to the servers within your company.In terms of training,it seems that once people understand the general concept of a browser it’s much easier for them to deal with differences in the way pages and applets look,so the learning curve for new kinds of systems seems to be reduced.The security problem brings us to one of the divisions that seems to be automatically forming in the world of client-side programming.If your program is running on the Internet,you don’t know what platform it will be 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.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 programming8.8.Server-sideThis whole discussion has ignored the issue of server-side programming. What happens when you make a request of a server?Most of the time the request is simply“send me this file.”Your browser then interprets the file in some appropriate fashion:as an HTML page,a graphic image,a Java applet,a script program,etc.A more complicated request to a server generally involves a database transaction.A common scenario involves a request for a complex database search,which the server then formats into an HTML page and sends to you as the result.(Of course,if the client has more intelligence via Java or a scripting language,the raw data can be sent and formatted at the client end, which will be faster and less load on the server.)Or you might want to register your name in a database when you join a group or place an order,which will involve changes to that database.These database requests must be processed via some code on the server side,which is generally referred to as server-side programming.Traditionally,server-side programming has been performed using Perl and CGI scripts,but more sophisticated systems have been appearing. These include Java-based Web servers that allow you to perform all your server-side programming in Java by writing what are called servlets.Servlets and their offspring,JSPs,are two of the most compelling reasons that companies who develop Web sites are moving to Java,especially because they eliminate the problems of dealing with differently abled browsers.9.separate arena:applicationsMuch of the brouhaha over Java has been over applets.Java is actually a general-purpose programming language that can solve any type of problem—at least in theory.And as pointed out previously,there might be more effectiveways to solve most client/server problems.When you move out of the applet arena(and simultaneously release the restrictions,such as the one against writing to disk)you enter the world of general-purpose applications that run standalone,without a Web browser,just like any ordinary program does.Here, Java’s strength is not only in its portability,but also its programmability.As you’ll see throughout this book,Java has many features that allow you to create robust programs in a shorter period than with previous programming languages. Be aware that this is a mixed blessing.You pay for the improvements through slower execution speed(although there is significant work going on in this area—JDK1.3,in particular,introduces the so-called“hotspot”performance improvements).Like any language,Java has built-in limitations that might make it inappropriate to solve certain types of programming problems.Java is a rapidly evolving language,however,and as each new release comes out it becomes more and more attractive for solving larger sets of problems.Java和因特网既然Java不过另一种类型的程序设计语言,大家可能会奇怪它为什么值得如此重视,为什么还有这么多的人认为它是计算机程序设计的一个里程碑呢?如果您来自一个传统的程序设计背景,那么答案在刚开始的时候并不是很明显。
Keywords:Bioperl,BioPython,BioJava,bioinformatics,comparison,open source Software reviewThe Bio Ãtoolkits –abrief overviewAbstractBioinformatics research is often dif ficult to do with commercial software.The Open Source BioPerl,BioPython and BioJava projects provide toolkits with multiple functionality that makeit easier to create customised pipelines or analysis.This review brie fly compares the quirks of the underlying languages and the functionality,documentation,utility and relative advantages of the Bio counterparts,particularly from the point of view of the beginning biologist programmer.This article is directed to the beginning bioinformaticist or biologist thinking of learning a programming language to help with their work.If you are familiar with Perl,Python or Java,your decision is probably already made,based on your current preferred language.However,if you have not already passed that developmental checkpoint,this overview may help you decide which one to pursue.Bioinformatics is a young science and while there are a number of commercial applications aimed at researchers in biology,these are often not suf ficient for the level of data analysis required in bioinformatics research.It was partly the frustration with commercial suites that drove the founding of the Bio Ãgroups.(The Bio Ãname uses the regular expression Ãoperator to denote all characters,shorthand for BioPerl,BioJava,BioPython,etc.)The Bio Ãgroup (formally the Open Bioinformatics Foundation 1)was formed by a group of self-described Perl hackers who got together in 1995to pool resources for writing bioinformatics software.The group saw that there was much fine-grained functionality that was extremely useful and if the program source code could be shared,it could be easily worked into functional programs.The same idea gave birth to the BioPython and BioJava groups in 1999and the BioCORBA and BioDAS have been addedsince.The BioRuby,2BioLisp 3and 4groups share a similar vision and are worth investigating for useful perspective and resources,but are of ficially unaf filiated.Before you dive into a long-term commitment to a language,and its Bioderivative,it is useful to see how it is perceived by the various stakeholders.Table 1shows a quick and simple survey based on scanning the Usenet newsgroups,Google and as a crude measure of languages ’popularity and support.Over the last 10month period,the membership of each group has grown by about 50per cent.By far the largest number of posts is in the BioPerl group;the BioJava group is gaining steam,and the BioPython group tends to be quite a bit lower,re flecting its lower membership (see Table 2).All the Bio Ãprojects described here use the eponymous base language and endow it with ‘Bio ’features via additional modules or libraries.A brief overview of the base languages follows.Perl,Python and Java are all interpreted,which means that they are slower than a compiled language such as296&HENRY STEWART PUBLICATIONS 1467-5463.B R I E F I N G S I N B I O I N F O R M A T I C S.VOL 3.NO 3.296–302.SEPTEMBER 2002生物秀—专心做生物!www.bbioo.com C or C++(typically three-quarters to one-tenth as fast,depending on the type of logic being implemented),but they are hardly slouches.If speed is an issue,all of them can be made to link to compiled libraries via the Java Native Interface, Python’s C interface and Perl’s XS routines.The latter two can also make use of SWIG,5a more portable way of interfacing polyglot code.Two examples of how an interpreted language can be used in high-performance computing are PyMol,6a molecular visualisation and modelling application,and the Perl Data Language7which uses libraries of compiled code and an object oriented (OO)approach to allow very fast computation on N-dimensional arrays.In giving up the speed of compiled code,all these languages are considerably easier to program with.Mercifully,none of them requires that you manually track and manipulate memory allocation and none requires(or even permits)use of the much-hated memory pointer.As well, many programming features or niceties that in C you have to program yourself,are provided for you,such as associative arrays,numeric interconversions,easy input/output handling,string manipulations and large numbers of oft-used programming expressions.All have very good support for network functionality and all support regular expression(regex)pattern matching8although regex support is integrated throughout Perl’s structure but must be explicitly requested in Java and Python.All provide extensive libraries to connect to many relational databases. Perl’s database independent module allows nearly identical access to most relational database management systems (RDBMSs).Python has a similar approach,using database-specific drivers that present an identical application programming interface(API)to the programmer,and while it is less well developed than Perl’s,it supports most of the popular commercial and open source RDBMSs.The Java DataBase Connectivity(JDBC)is now a standard part of the language that provides nearly identical functionality and databaseTable1:Popularity of base languages and Bioderivatives on6.29.02on Amazon(number oftitles found at based on search for‘[Language]programming’,Usenet news(totalnumber of posts in all of ng.and subgroups),Google(number of hits based on singleword query for[Language]or Bio derivative)Language Amazon Usenet Google Google BioÃPerl29213,2799,440,000406,000BioPerlJava1,16133,29623,300,00092,000BioJavaPython3911,8803,590,00044,600BioPythonLisp1265,1901,630,000190BioLispVbasic983?2,370,000––C++1,18817,3135,730,000––Table2:Traffic on BioÃlists.The two dates indicate the number of subscribers to each ofthe lists on that date.‘Total Posts’is the aggregate total number of posts to the lists since the‘Since’date.Posters is a crude estimate of the number of people posting to the listList28th August200121st June2002Total posts Posters SinceBioPerl-l6439225,938989August1996BioJava-l3655753,037531September1999BioPython1682421,024187September1999&HENRY STEWART PUBLICATIONS1467-5463.B R I E F I N G S I N B I O I N F O R M A T I C S.VOL3.NO3.296–302.SEPTEMBER2002297Software reviewsupport to the ODBC drivers that Windows uses to provide RDBMS connectivity.All three languages are multiplatform–they run similarly on the most current versions of Unix,Linux,Windows and the Mac.In addition,Perl and Python qualify for the open source definition–they are freely available in source code and while hundreds contribute to their continued development,a single person wrote thefirst few implementations and remains the lead technical Godfather of the project.Java,while made freely available,is owned and defined by Sun Microsystems,whose technical committees decide what goes into Java and when.Java and Python have good support for creating graphical user interfaces(GUIs). Java uses its native Swing libraries;Python uses a variety of multiplatform widgets sets including Tk9(bundled with Python), wxWindows10and Qt.11While Perl can be used to create GUIs(most easily with Tk),it is a failing that is not nearly as well supported as it is in Java or Python.Perl does,however,have a non-trivial advantage over Python and Java in that it can be automatically upgraded and enhanced using the CPAN module(for Comprehensive Perl Archive Network), included in the default installation.This allows a user to request an additional module to be retrieved,checked for dependencies,have those dependencies resolved automatically,and the entire tree of dependencies automatically downloaded,tested and installed all in a single line of code.All this is available without requiring the user know where thefiles are archived.For example,to install the BioPerl module and all of its documentation(once the CPAN module is easily configured),this is all you need to do:$perl-MCPAN-e‘install‘‘Bio::Perl’’’The BioPerl installation will prompt you about additional Perl libraries it needs for some methods;more detail is available.12 Python and Java use the older‘gofind it,download it,install it’approach of most other software installation and since this almost always requires dependency tracking,the CPAN feature is a significant time and frustration-saver.One of the deepest divides among the languages is that while Python and Java were designed from the ground up as pure OO languages,Perl has gradually added this functionality over time.The result is something of a dancing camel–it can be quite remarkable when it works, but it is difficult to describe to others. Combined with Perl’s‘There’s More Than One Way To Do It’(TMTOWTDI)philosophy and syntax,it can be fairly challenging to deconstruct another’s OO Perl code.Both Java and Python have considerably more structured syntax and are therefore more easily understood,although both have quirks of their own;for example,Python uses whitespace(not braces)to segment logic blocks.Java,like Python,is a pure OO system and has very wide library coverage. Unlike Python,Java often seems to be self-consciously OO and much more a formal programming language than either Perl or Python.As such,it is being used as a teaching language at many schools, much more so than Perl.It has also been embraced by a variety of companies seeking to break Microsoft’s stranglehold on the computing public.In response, Microsoft has recently indicated that its forced marriage with Java will end in 2004and has introduced andC#projects as a way of superseding Java, causing some consternation in the ranks of developers.However,since the Javaphilic companies range in size from Sun to IBM to Borland and others,there seems to be no immediate worry that Java will disappear.In the midst of this feuding,some astonishing programmer resources have been made freely available to tempt developers to use Java.These include integrated development environments,debuggers,profilers,extra libraries and just-in-time compilers to speed Java’s often-sluggish performance.298&HENRY STEWART PUBLICATIONS1467-5463.B R I E F I N G S I N B I O I N F O R M A T I C S.VOL3.NO3.296–302.SEPTEMBER2002 Software reviewJava has several implementations,from Sun,IBM,Microsoft and others.This results in competition to make the Java compiler and tools better,but it also has the side effect of programs sometimes working with only one of the several Java implementations.In my opinion,Python is easier than either Perl or Java for a novice to learn, encourages a cleaner programming style, and certainly makes it easier to follow others’code.Python also has a large and growing base of additional software modules,including some that fall into the ‘Killer app’category such as Zope,13a combination web-server,object database, content management system and application server with which BioPython has started integration efforts.Python also has the reputation that it is easier to write more compact code,which itself leads to fewer editing mistakes and thus more maintainable code.An additional advantage of Python is that it shares considerable API similarity with C++, allowing code to be prototyped in Python and then easily replaced with C++as performance demands.This clarity of code,the ability to use multiple cross-platform GUI toolkits,and the availability of several Rapid Application Development tools for Python makes it a compelling language to wrap command-line tools with a GUI.BioPerl comes as a2.5MB gzippedfile and inherits the chameleon-like charm of its parent.BioPerl’s tutorial is certainly the most complete,with different sections illustrating almost every feature in the toolkit.BioPerl is the oldest and most downloaded of the BioÃdistributions and for some good reasons.It is certainly the most mature,has the most useful features and has the largest development community.The documentation of BioPerl’s structure(60levels,$400 modules)is handled in an extremely well-designed layout that makes it easy to peruse the functionality of the package. The documentation for each module is unusually complete and contains short descriptions of the module,its dependencies and inheritance links, description and code examples for each method.It includes all the things that you would expect in a commercial package, and a few things that you might not–the source code and the e-mail address of the maintainer or author.In addition,there is already one text that introduces Perl and BioPerl to the novice bioinformaticist14 and a more advanced one by two of BioPerl’s principal contributors is in process.The modules address a very wide array of functionality,including pure bioinformatics structures such handling and indexing most popular bio-specific database andflatfile formats(including all the Readseq-supported15formats,as well as BSML16and GAME XML17),auto-generation of bio-related graphics for web pages,classes and methods for describing and manipulating biological sequences, annotations,trees,alignments and maps.It has an extensive collection of modules for initiating several search methods and the parsing and manipulating the results of such searches.It also provides a number of analytical primitives such as pattern matching and related tools(motiffinding, restriction enzyme mapping),and wrappers or handler routines for the results of other popular tools and techniques(BLAST,FastA,HMMR, Sim4,GeneID,Genemark and others).It also has the best module support for3D and structural information.It is hard not to recommend BioPerl.It certainly has the largest user base and functionality currently;it is easily upgraded and maintained and Perl is a user-driven and robust language.The documentation is exemplary and BioPerl is in active use and development at many of the large genome centres.Additionally, there is an online course,18so the beginner can be brought up to speed on the basics and get a quick BioPerl overview.Perl’s greatest fault(and a great attraction to some)seems to be its TMTOWTDI philosophy which can lead to inscrutable syntax and its somewhat non-standard object system,although the&HENRY STEWART PUBLICATIONS1467-5463.B R I E F I N G S I N B I O I N F O R M A T I C S.VOL3.NO3.296–302.SEPTEMBER2002299Software reviewBioPerl project and code have reined in this style diversity.The BioPython package($1.7MB gzipped)contains about30classes with approximately the same breadth as its siblings.What it covers is easy and straightforward to follow,and provides a good base for further development. Installation of the complete package along with all the dependencies involves separately downloading and installing components,some of which required manual intervention to convince them to install correctly.The included BioPython tutorial is an excellent overview not only into the BioPython structure but also to OO programming in general.I recommend it to anyone planning to use any of the BioÃlanguages or even learning to program.BioPython includes methods for biological and regular expression pattern matching,interacting with local and remote BLAST resources and local FastA and ClustalW,interacting with the BioSQL database schema,searching PubMed,parsing a large number of database formats,and provides code fragments and entire scripts showing how to do this.Personally,even though I have more experience with Perl than with Python,these code examples are considerably clearer than those from BioPerl,although the Perl examples are quite complete.For example,extracting a FastA query sequence from afile, preparing it and submitting it to NCBI BLAST as well as parsing and printing the returned results takes about30lines of uncommented but easily understood code.I heartily recommend the BioPython online course19prepared by the same authors as BioPerl one mentioned above.One of the areas where BioPython shines is in the area of being able to parse the many formats in bioinformatics. Rather than having to write a completely new parser for each new format, BioPython relies on the Scanner/ Consumer methods that are the core of the Martel regular expression parsing engine,20which allows the user to make use of many current formats and easilydefine others using a SAX-like21 approach.In this area,BioPython seems to outclass even the more regex-oriented BioPerl.BioPython also allows easier creation and manipulation of objects than does BioPerl,not too surprising as Python was designed as an OO language and Perl had Objects grafted on later in life. However,reflecting its youth and small subscription base,the depth of coverage and its documentation are not as well developed.This is unfortunate,as Python seems the ideal language to execute a distributed project such as this.It enforces a readable and succinct syntax,plays well with a number of other languages,and comes with good support for building GUIs.It almost seems that many programmers refuse to use it because it sounds too good to be true.The BioJava code(5.6MB gzipped source;1.5MB jar)is described in detail via the industry-standard JavaDoc API description format($40packages,720 classes,from AbstractAlignmentStyler to ZiggyFeatureRenderer).Unlike both BioPÃs,however,while the APIs are described reasonably well in the JavaDocs, details and examples about how the classes are actually used are sparse.This is made more problematic as I was not able tofind an external online tutorial that described it in the same detail as for BioPython and BioPerl,although there are numerous tutorials for the base language of course. While the included BioJava tutorial contains brief descriptions of the way BioJava handles Symbols,Sequences, Features,I/O and interprocess coordination,it is not nearly as beginner-friendly as the BioPÃs.In addition,while the introductory text provides some examples to illustrate its points,some of the sample code is based not on biological examples,but on a roulette wheel simulation.Until this lack of introductory material is addressed,BioJava will probably remain the toolkit of choice only of well-established Java300&HENRY STEWART PUBLICATIONS1467-5463.B R I E F I N G S I N B I O I N F O R M A T I C S.VOL3.NO3.296–302.SEPTEMBER2002 Software reviewprogrammers,as it is difficult to determine what methods do what simply from browsing the JavaDocs. BioJava,like its parent,uses Unicode for its basic string character.In Java,this can be quite useful,but in the strings of molecular biology,even one byte(which can code256characters)is generally overkill and BioJava by default extends the2byte Unicode character to4bytes for its object system of referring to resides,leading to considerable bloat for handling large sequences.In comparison, Perl and Python use single byte representations for residues.BioJava does provide many more biology-specific GUI elements than do its Biobrethren, including methods for rendering features and annotations onto a canvas,graphics specifically for multiple sequence comparisons,and pane decorations such as length tics and crosshairs so if designing custom graphical applications is a consideration,BioJava is certainly worth evaluating.BioJava also contains methods supporting some relatively esoteric numerical approaches such as support vector machines22(used in clustering)and suffix trees23(used in fast pattern searching),as well as the more common hidden Markov models19and direct pattern searching.BioJava also shares its parent’s affection for XML,including classes for handling various XML formats such as the aforementioned GAME XML and a large number of methods supporting AGAVE (now in limbo with Doubletwist’s demise).SummarySo the upshot is this:for small programs (,500lines)that will be used only by yourself,it is hard to beat Perl and BioPerl.These constraints probably cover the needs of90per cent of personal bioinformatics programming requirements.For beginners,and for writing larger programs in the Bio domain,especially those to be shared and supported by others,Python’s clarity and brevity make it very attractive.For those who might be leaning towards a career in bioinformatics and who want to learn only one language,Java has the widest general programming support,very good support in the Bio domain with BioJava, and is now the de facto language of business(the new COBOL,for better or worse).Note that a well-rounded bioinformaticist would be expected to know all of these languages and be able to choose the best for a particular effort.AcknowledgmentsMany thanks go to Jason Stewart for his Perl advice,Andrew Dalke for his Python advocacy and Don Gilbert for his comments on this manuscript.Harry Mangalamtacg Informatics,1Whistler Ct,Irvine,CA92612,USATel:+19498562847E-mail:hjm@References1.URL:(links to theBioPerl,BioPython,BioJava,BioCORBA,and BioDAS pages).2.URL:3.URL:4.URL:5.URL:6.Delano,W.(2000),PyMol URL:http://.This open sourceapplication uses Python to provide the GUIand glue code with compiled C and OpenGLlibraries to provide astonishing real-timegraphics performance.7.URL:8.Friedl,J.E.F.(1997),‘Mastering RegularExpressions’,O’Reilly and Associates,Sebastopol,CA.See also URL:http:///helpsheets/regex.html 9.URL:/library/an-introduction-to-tkinter.htm10.URL:11.URL:12.URL:/Core/external.shtml13.URL:14.Tisdall,J.D.(2001),‘Beginning Perl forBioinformatics’,O’Reilly&Associates,Sebastopol,CA.&HENRY STEWART PUBLICATIONS1467-5463.B R I E F I N G S I N B I O I N F O R M A T I C S.VOL3.NO3.296–302.SEPTEMBER2002301Software review15.Gilbert,D.G.(1990),‘ReadSeq program’.URL:/soft/molbio/readseq/16.Bioinformatic Sequence Markup Language,Labbook,Inc.,URL:http:///products/xmlbsml.asp 17.Genome Annotation Markup Elements,URL:/Projects/game/game0.1.html418.Letondal,C.and Schuerer,K.(2002),‘BioPerlCourse’,Pasteur Institute,Paris.URL:http:// www.pasteur.fr/recherche/unites/sis/formation/bioperl/19.Schuerer,K.and Letondal,C.(2002),‘PythonCourse in Bioinformatics’,Pasteur Institute,Paris.URL:http://www.pasteur.fr/recherche/unites/sis/formation/python/20.Dalke,A.P.(2001),Dalke Scientific.URL:http://www.dalkescientifi/Martel/ 21.SAX stands for Simple API for XML andfollows the event-based model for parsingXML(as opposed to the tree-based model,which creates an in-memory hierarchy ofXML objects).Like SAX,Martel follows anevent-based approach to allow completedstanzas to be‘consumed’immediately.SAX is described at the URL:http://22.Sturn,A.,Quackenbush,J.and Trajanoski,Z.(2002),‘Genesis:cluster analysis of microarray data’,Bioinformatics,Vol.18(1),pp.207–208.See also URL:http://www.support-23.Gusfield,D.(1997),‘Algorithms on Strings,Trees,and Sequences’,Cambridge University Press,Cambridge.302&HENRY STEWART PUBLICATIONS1467-5463.B R I E F I N G S I N B I O I N F O R M A T I C S.VOL3.NO3.296–302.SEPTEMBER2002 Software review。
网络管理员一、单项选择题(每小题2 分,共 100分)1、在一个动态分配IP地址的主机上,如果开机后没有得到DHCP服务器的响应,则该主机在()中寻找一个没有冲突的IP地址。
A、169.254.0.0/16B、224.0.0.0/24C、202.117.0.0/16D、192.168.1.0/24【答案】A【解析】自动专用IP寻址(Automatic Private IP Addressing,APIPA),是一个DHCP故障转移机制。
当DHCP服务器出故障时, APIPA在169.254.0.1到169.254.255.254的私有空间内分配地址,所有设备使用默认的网络掩码255.255.0.0。
2、在文件菜单中打印对话框的“页面范围”下的“当前页”项是指(13)。
A、最后打开的页B、最早打开的页C、当前窗口显示的页D、插入光标所在的页【答案】D【解析】在“文件”菜单中“打印对话框”中的“页面范围”下的“当前页”项是指插入光标所在的页。
如果只打印一页的话,那么就打印出这一页。
3、无线局域网新标准IEEE802.11n提供的最高数据速率可达到()。
A、11Mb/sB、54Mb/sC、100Mb/sD、300Mb/s【答案】D4、脚本语言程序开发不采用“编写,编译一链接.运行”模式,()不属于脚本语言。
A、DelphiB、PhpC、PythonD、Ruby【答案】A【解析】试题分析:脚本语言的特点是语法简单,一般以文本形式保存,并且不需要编译成目标程序,在调用的时候直接解释。
常见的有JavaScript、VBScript、Perl、PHP、Python、Ruby。
5、使用常用文字编辑工具编辑正文时,在“打印预览”方式下,单击“ (2)”按钮可返回编辑文件;A、打印预览B、放大镜C、关闭D、全屏显示【答案】C【解析】在“打印预览”方式下,单击“关闭”按钮即可返回编辑状态。
“打印预览”、“放大境”和“全屏显示”均为在预览状况下的操作。
webminWebmin: A User-friendly Web-based System Administration ToolIntroductionWebmin is a web-based system administration tool that allows users to manage various aspects of their server through a user-friendly interface. It provides a range of powerful features and is highly adaptable, making it a popular choice among system administrators. This document will provide an in-depth overview of Webmin, including its features, installation process, and usage.Features of Webmin1. Easy-to-use InterfaceWebmin's user interface is designed to be intuitive and user-friendly. It provides a graphical interface that simplifies system administration tasks, making it accessible even to users with little to no technical knowledge. With its clean and organized layout, users can easily navigate through the different modules and settings.2. Multi-platform SupportWebmin is available for various platforms, including Linux, Windows, and Unix-like systems. This allows users to install and use Webmin on their preferred operating systems, making it versatile and adaptable to different environments.3. Module-based ArchitectureWebmin is built on a modular architecture, where each module corresponds to a specific system administration task or feature. This modular approach allows users to enable or disable modules based on their specific needs, providing a tailored experience. Webmin provides a wide range of modules for managing various aspects of the server, including file systems, network configuration, user accounts, and more.4. User and Group ManagementWith Webmin, users can easily manage user accounts and groups on their server. The user administration module provides options to create, modify, and delete user accounts, manage user access rights, and set password policies. The group administration module allows users to create, edit, and delete groups, as well as assign users to specific groups.5. File ManagementWebmin provides a powerful file manager that allows usersto navigate and manage files and directories on their server. Users can perform common file operations such as creating, deleting, copying, and moving files and directories, as well as changing file permissions and ownership. The file manager also supports file editing, providing an integrated text editor for making quick changes to files.6. System Logs and MonitoringWebmin offers comprehensive system monitoring capabilities, allowing users to keep track of system performance and troubleshoot issues. It provides access to system logs, including Apache access and error logs, system logs, authentication logs, and more. Users can monitor system resources such as CPU usage, memory usage, disk space, and network traffic, enabling proactive monitoring and troubleshooting.Installation Process of Webmin1. PrerequisitesBefore installing Webmin, ensure that your server meets the following requirements:- A supported operating system (Linux, Windows, or Unix-like systems)- A web server (such as Apache or Nginx) with PHP support- Perl 5 or later- OpenSSL2. Downloading WebminTo download Webmin, visit the official website () and navigate to the Downloads section. Choose the appropriate package for your operating system and download it to your server.3. Installing WebminThe installation process varies depending on the operating system. Follow the specific installation instructions provided on the Webmin website to install Webmin on your server. The installation typically involves running a shell script or package manager command.4. Accessing WebminOnce Webmin is successfully installed, you can access it by opening a web browser and entering the URL \。
外文文献阅读与翻译第1章英文原文Scripting: Higher Level Programming for the 21st Century1 IntroductionFor the last fifteen years a fundamental change has been occurring in the way people write computer programs. The change is a transition from system programming languages such as C or C++ to scripting languages such as Perl or Tcl. Although many people are participating in the change, few people realize that it is occurring and even fewer people know why it is happening. This article is an opinion piece that explains why scripting languages will handle many of the programming tasks of the next century better than system programming languages.Scripting languages are designed for different tasks than system programming languages, and this leads to fundamental differences in the languages. System programming languages were designed for building data structures and algorithms from scratch, starting from the most primitive computer elements such as words of memory. In contrast, scripting languages are designed for gluing: they assume the existence of a set of powerful components and are intended primarily for connecting components together. System programming languages are strongly typed to help manage complexity, while scripting languages are typeless to simplify connections between components and provide rapid application development.Scripting languages and system programming languages are complementary, and most major computing platforms since the 1960's have provided both kinds of languages. The languages are typically used together in component frameworks, where components are created with system programming languagesand glued together with scripting languages. However, several recent trends, such as faster machines, better scripting languages, the increasing importance of graphical user interfaces and component architectures, and the growth of the Internet, have greatly increased the applicability of scripting languages. These trends will continue over the next decade, with more and more new applications written entirely in scripting languages and system programming languages used primarily for creating components.1.1 2 Scripting languagesScripting languages such as Perl[9], Python[4], Rexx[6], Tcl[8], Visual Basic, and the Unix shells represent a very different style of programming than system programming languages. Scripting languages assume that there already exists a collection of useful components written in other languages. Scripting languages aren't intended for writing applications from scratch; they are intended primarily for plugging together components. For example, Tcl and Visual Basic can be used to arrange collections of user interface controls on the screen, and Unix shell scripts are used to assemble filter programs into pipelines. Scripting languages are often used to extend the features of components but they are rarely used for complex algorithms and data structures; features like these are usually provided by the components. Scripting languages are sometimes referred to as glue languages or system integration languages.In order to simplify the task of connecting components, scripting languages tend to be typeless: all things look and behave the same so that they are interchangeable. For example, in Tcl or Visual Basic a variable can hold a string one moment and an integer the next. Code and data are often interchangeable, so that a program can write another program and then execute it on the fly. Scripting languages are often string-oriented, since this provides a uniform representation for many different things.A typeless language makes it much easier to hook together components. There are no a priori restrictions on how things can be used, and all components and values are represented in a uniform fashion. Thus any component or value can be used in any situation; components designed for one purpose can be used for totally different purposes never foreseen by the designer. For example, in the Unix shells, all filter programs read a stream of bytes from an input and write a string of bytes to an output; any two programs can be connected together by attaching the output of one program to the input of the other. The following shell command stacks three filters together to count the number of lines in the selection that contain the word "scripting":select | grep scripting | wcThe select program reads the text that is currently selected on the display and prints it on its output; the grep program reads its input and prints on its output the lines containing "scripting"; the wc program counts the number of lines on its input. Each of these programs can be used in numerous other situations to perform different tasks.The strongly typed nature of system programming languages discourages reuse. Typing encourages programmers to create a variety of incompatible interfaces ("interfaces are good; more interfaces are better"). Each interface requires objects of specific types and the compiler prevents any other types of objects from being used with the interface, even if that would be useful. In order to use a new object with an existing interface, conversion code must be written to translate between the type of the object and the type expected by the interface. This in turn requires recompiling part or all of the application, which isn't possible in the common case where the application is distributed in binary form.To see the advantages of a typeless language, consider the following Tcl command:button .b -text Hello! -font {Times 16} -command {puts hello}This command creates a new button control that displays a text string in a 16-point Times font and prints a short message when the user clicks on the control. It mixes six different types of things in a single statement: a command name (button), a button control (.b), property names (-text, -font, and -command), simple strings (Hello! and hello), a font name (Times 16) that includes a typeface name (Times) and a size in points (16), and a Tcl script (puts hello). Tcl represents all of these things uniformly with strings. In this example the properties may be specified in any order and unspecified properties are given default values; more than 20 properties were left unspecified in the example.The same example requires 7 lines of code in two methods when implemented in Java. With C++ and Microsoft Foundation Classes, it requires about 25 lines of code in three procedures (see [7]for the code for these examples). Just setting the font requires several lines of code in Microsoft Foundation Classes:CFont *fontPtr = new CFont();fontPtr->CreateFont(16, 0, 0,0,700, 0, 0, 0, ANSI_CHARSET,OUT_DEFAULT_PRECIS,CLIP_DEFAULT_PRECIS, DEFAULT_QUALITY,DEFAULT_PITCH|FF_DONTCARE, "Times New Roman");buttonPtr->SetFont(fontPtr);Much of this code is a consequence of the strong typing. In order to set the font of a button, its SetFont method must be invoked, but this method must be passed a pointer to a CFont object. This in turn requires a new object to be declared and initialized. In order to initialize the CFont object its CreateFont method must be invoked, but CreateFont has a rigid interface that requires 14 different arguments to be specified. In Tcl, the essential characteristics of the font (typeface Times, size 16 points) can be used immediately with no declarations or conversions. Furthermore, Tcl allows the behavior for the button to be included directly in the command that creates the button, while C++ and Java require it to be placed in a separately declared method.(In practice, a trivial example like this would probably be handled with a graphical development environment that hides the complexity of the underlying language: the user enters property values in a form and the development environment outputs the code. However, in more complex situations such as conditional assignment of property values or interfaces generated programmatically, the developer must write code in the underlying language.)It might seem that the typeless nature of scripting languages could allow errors to go undetected, but in practice scripting languages are just as safe as system programming languages. For example, an error will occur if the font size specified for the button example above is a non-integer string such as xyz. The difference is that scripting languages do their error checking at the last possible moment, when a value is used. Strong typing allows errors to be detected at compile-time, so the cost of run-time checks is avoided. However, the price to be paid for this efficiency is restrictions on how information can be used: this results in more code and less flexible programs.Another key difference between scripting languages and system programming languages is th at scripting languages are usually interpreted whereas system programming languages are usually compiled. Interpreted languages provide rapid turnaround during development by eliminating compile times. Interpreters also make applications more flexible by allowing users to program the applications at run-time. For example, many synthesis and analysis tools for integrated circuits include a Tcl interpreter; users of the programs write Tcl scripts to specify their designs and control the operation of the tools. Interpreters also allow powerful effects to be achieved by generating code on the fly. For example, a Tcl-based Web browser can parse a Web page by translating the HTML for the page into a Tcl script using a few regular expression substitutions. It then executes the Tcl script to render the page on the screen.Scripting languages are less efficient than system programming languages, in part because they use interpreters instead of compilers but also because their basic components are chosen for power and ease of use rather than an efficient mapping onto the underlying hardware. For example, scripting languages often use variable-length strings in situations where a system programming language would use a binary value that fits in a single machine word, and scripting languages often use hash tables where system programming languages use indexed arrays.Fortunately, the performance of a scripting language isn't usually a major issue. Applications for scripting languages are generally smaller than applications for system programming languages, and the performance of a scripting application tends to be dominated by the performance of thecomponents, which are typically implemented in a system programming language.Scripting languages are higher level than system programming languages, in the sense that a single statement does more work on average. A typical statement in a scripting language executes hundreds or thousands of machine instructions, whereas a typical statement in a system programming language executes about five machine instructions (see Figure 1). Part of this difference is because scripting languages use interpreters, which are less efficient than the compiled code for system programming languages. But much of the difference is because the primitive operations in scripting languages have greater functionality. For example, in Perl it is about as easy to invoke a regular expression substitution as it is to invoke an integer addition. In Tcl, a variable can have traces associated with it so that setting the variable causes side effects; for example, a trace might be used to keep the variable's value updated continuously on the screen. Because of the features described above, scripting languages allow very rapid development for applications that are gluing-oriented.To summarize, scripting languages are designed for gluing applications. They provide a higher level of programming than assembly or system programming languages, much weaker typing than system programming languages, and an interpreted development environment. Scripting languages sacrifice execution speed to improve development speed.中文翻译脚本语言:21世纪的高级编程语言1.简介在过去的十五年里,人们编写计算机程序的方法发生了根本的转变。
目前比较流行的开发语言有哪些?Java、C#(C Sharp)、C、C++、JavaScript、PHP、Ruby、Python等WEB端有哪些开发技术?Javascript、CSS、HTML、Ajax、Flex等比较常用的开发工具有哪些?团队协作:WinCVS、TortoiseSVN、TortoiseHG文本比较:Beyond Compare文本编辑:UltraEdit、EmEditor、Notepad3、Vim、Emacs网络抓包:Wireshark、Ethereal设计工具:Viso、Rational Rose、PowerDesigner、DRwin项目管理:Project、ClearQuest、ClearCase问题跟踪:Bugzilla、Jira、TestDirector数据库客户端:Toad、PL/SQL Developer远程工具:winscp、flashfxp、SecureCRT、putty、Xmanager虚拟机:Vmware 、Oracle VM VirtualBox压力测试工具:WinRunner、LoadRunner、Jmeter、webbench、ab(apache)linux/unix有哪些的发行版本?Suse Linux、Red Hat Linux、Ubuntu Linux、Centos Linux、Debian Linux、Gentoo Linux、IBM Aix、Sun Solaris、HP Unix等比较流行的数据库有哪些?Oracle、SQL Server、IBM DB2、Sybase、MySQL、PostgreSQL等比较流行的嵌入式数据库有哪些?BerkeleyDB、hsqldb、SQLite、Derby等比较流行的分布式内存缓存/NoSQL有哪些?Memcached、Cassandra、Redis、MongoDB、Hypertable等一个开发团队的组织架构?项目经理、产品经理、系统架构、开发人员、测试人员、美工等开发人员常去的一些网站?、、、、/cn、、、、、、、、、、、、/codesearch等IT行业的一些专业术语:SDK:SDK(Software Development Kit, 即软件开发工具包)一般是一些被软件工程师用于为特定的软件包、软件框架、硬件平台、操作系统等建立应用软件的开发工具的集合。
10个大类150条产品经理专业术语1、职称术语CEO:Chief Executive Officer「首席执行官」GM:General Manager「总经理」VP:Vice President「副总裁」CTO:Chief Technology Officer「首席技术官」COO:Chief Operations Officer「首席运营官」CFO:Chief Financial Officer「首席财务官」,类似财务总经理CIO:Chief Information Officer「首席信息管」,主管企业信息收集和发布HRD:Human Resource Director「人力资源总监」MD:Marketing Director「市场总监」OD:Operations Director「运营总监」PM:Product Manager「产品经理」或Project Manager 「项目经理」OP:Operations 「技术运维」HE:Hardware Engineer「硬件工程师」FE :Front End Engineer 「前端工程师」R&D:Research and Development engineer 「研发工程师」DBA:Database Administrator 「数据库管理员」QA:QA Engineer 「测试工程师」MRD:Market Requirements Document 市场需求文档,常见的为竞品分析,一般用于立项,基于目前市场数据及竞品等进行项目提出,一般用于提案。
PRD:Product Requirement Document 产品需求文档,一般是说明实现的过程,较为详细。
有些公司为了敏捷开发需要很多时候会直接在原型图上面通过注释方式进行更直观的展示。
PMD:Program Managment Document 项目管理文档,一般包括项目进度、项目资源、责任人和项目输出物,常规通过visio进行甘特图绘制管理。
VMware脚本与命令(PowerCLI)管理手册VMware脚本与命令(PowerCLI)管理手册由于VMware是个成熟的虚拟化平台,所以它拥有几个自带的和第三方的管理选项。
图形用户界面GUI提供了直观的、概念上的管理VMware环境的方式,但这些对于大型或者重复的任务来说就略有不足。
如大量贮藏和虚拟机配置这些任务最好使用VMware脚本和命令套件。
在本期虚拟化技术手册中,我们将详细介绍VMware脚本和命令工具,如PowerShell与PowerCLI,以便有效监控VMware环境。
PowerCLI入门VMware管理任务是一项耗时和易出错的工作。
但是vSphere PowerCLI的扩展,可以帮助管理员完成一些控制工作。
本部分将探究VMware脚本工具PowerCLI的概念以及其中五个比较重要的脚本。
如何使用VMware vSphere PowerCLI?五大必备vSphere PowerCLI脚本PowerCLI使用与管理如果您刚刚开始应用PowerCLI管理VMware环境,需要学习的内容很多。
首先,最常见和最重要的cmdlets是Get-VM。
那么它该如何使用?如何设置能自动化主机服务器任务呢?要创建host profiles,PowerCLI能做些什么?这部分中,我们TecgTarget中国的特约作者Hal Rottenberg将详细介绍PowerCLI的使用与管理技巧。
掌控PowerCLI:使用Get-VM来管理虚拟机使用PowerShell与PowerCLI自动化主机服务器任务跳出框外巧解PowerShell与PowerCLI难题如何使用vSphere PowerCLI创建host profiles?在vSphere PowerCLI PowerShell界面使用host profilesPowerCLI技巧如何把VMware PowerCLI脚本功能应用到VMware SRM(Site Recovery Manager)恢复计划中?如何借助PowerCLI配置标准交换机?本部分将给出解决方法与步骤。
10進数 decimal numeral 十进制数10進表記 decimal notation 十进制数法10進法 decimal 十进制16bit/チャンネル 16位/通道16進数 hexadecimal numeral 十六进制数16進表記 hexadecimal notation 十六进制数法16進法 hexadecimal 十六进制180°180度1ギガヘルツ 1G赫兹1つずつ取り出し一个个地取出1バイト single byte 单字节1バイトコード体系 ***CS(Single Byte Code System) 单字码系统1週間用 1周用2000年問題计算机两千年问题2階調化阈值2次キャッシュ secondary cache 辅助高速缓冲存储器2次記憶 secondary storage 辅助存储器2進化10進数 BCD (Binary Coded Decimal) 2进制编码的10进制表示法2進数 binary numeral 二进制数值2進数字 binary digit 二进制数位2進表記 binary notation 二进制数法2進法 binary 二进制2値論理 two valued logic 2值伦理3Dトランスフォーム 3D trance form 3D变换3D画像 three-dimension image 三维图像3D枠 3D框8bit/チャンネル 8位/通道90°(時計回り) 90度(顺时针)90°(反時計回り) 90度(逆时针)abstract クラス AbstractClass 抽象类ADCチェックプログラム ADCcheckprogram 模拟信息变数字信息的转换器检验程序ADSG Application Development Standard Guide 应用程序开发标准向导ADSL Asymmetrical Digital Subscriber Loop 非对称数字用户环线AD値 AD值Agilent 安捷伦(一种模拟器)AI artificial intelligence 人工智能Altキー Alt键API Application Programming Interface 应用编程接口ARP Address Resolution Protocol 地址解析协议ASCII American Standard Code for Information Interchange 美国信息交换标准码ASIC Application Specific Integrated Circuit 特定用途集成电路ASP Application Specific Integrated Circuit 程序开发语言AT&T AT&T 美国电话电报公司ATM Automatic Teller Machine 自动取款机B2B Business to Business 商家対商家B2C Business to Custom 商家对客户BASIC Beginner's All-purpose Symbolic Instruction Code 初学者通用符号指令码BBS Bulletin Board System 电子布告栏系统BCC 密件抄送Big5コード Big5 code 大五码BIOS Basic Input Output System 标准输入输出系统BMP Bitmap 位图BOOTP Bootstrap Protocol 网络引导协议Borland 美国著名软件开发公司bps bits per second 波特Bフレッツ Bflets Bflets宽带技术CAD Computer Aided Design 计算机辅助设计CAI Computer Assisted Instruction 计算机辅助教学catch ブロック catch block catch块CC 抄送CD-R compact disc-record 可录光盘CD-R/RWドライブ compact disc-record/read-write 刻录机CD-ROM compact disc read-only memory 光盘CD-ROMドライブCD-ROMDrive 光驱CD-RW compact disc read-write 可擦写光盘CD-RWドライブ CD-RW drive CD-RW驱动器CD-RWレコーダー CD-RW recorder CD-RW刻录器CD-Rドライブ CD-R drive CD-R驱动器CD-Rレコーダー CD-R recorder CD-R刻录器CDオーディオトラックの再生播放CD乐曲CDからコピー从CD复制CDドライブ compact disc driver 光驱CGI Common Gateway Interface 公共网关接口CHTML 简化超文本标记语言CIF Common Intermediate Format 公共媒介格式CMOS complementary metal-oxide-semiconductor 互补金属氧化物半导体CMS Conversational Monitor System 会话式监督系统CMM 能力成熟度模型CMMI 能力成熟度模型集成CMYKカラー CMYK color CMYK颜色COMポート COM port 串行通讯端口Cooksの削除删除CooksCPU central processing unit 中央处理器CRT cathode-ray tube 显像管CSS cascading style sheet 层叠式样式表CSVファイル CSV file CSV文件Ctrlキー Ctrl键Cue cue 快速提示Cue cue 热点Cコンパイラ C语言编译器DBA Data Base Administrator 数据库管理员DB更新情報 DB更新信息DD data dictionary 数据字典DDB distributed database 分布式数据库DDK Device Drivers Kit 设备驱动程序开发包DDL Data Definition Language 数据定义语言DDNS Dynamic DNS 动态DNSDHCP Dynamic Host Configuration Protocol 动态主构造协议DLL Dynamic Link Library 动态链接库DMA Direct Memory Access 直接存储器访问DML data manipulation language 数据操作语言DNS Domain Name Server 域名服务器DOM Document Object Model 文档对象模型DOS Disk Operating System 磁盘操作系统DOSモードDOS mode DOS模式DSL digital subscriber line 数字用户线路DSN data source name 数据源名DSP Digital Signal Processing 数字信号处理DVD Digital Video Disk 数字化视频光盘DVD/CD-ROMドライブ DVD/CD-ROM drive DVD/CD-ROM驱动器DWDM Dense Wavelength Division Multiplexing 密集波分复用技术e-book electronic-book 电子图书(E)メール mail 邮件ebXML electronic business XML 电子商务XMLe-mail e-mail 伊妹儿e-mailアドレス e-mail address 电子邮件地址EMS Express Mail Service 邮政特快专递EMS extended memory standard 扩展内存规范E-R図EntityRelationship数据库表关联图Exchangeフォルダ Exchange folder Exchange文件夹EXE 可执行程序扩展名Eコマース electronic-commerce 电子商务Eメール E-mail 电子邮件e-ラーニング e-running 网上教程FAQ Frequently Asked Questions 常见问题Faxの宛先传真收件人FEM計算 FEM计算FEP front end processor 前端处理器File名文件名final 変数 final variable final变量FTP File Transfer Protocol 文件传输协议FW fire wall 防火墙GBコード GB code 国标码GB拡張(GBK)コード GB extension code 国标扩展码GIF Graphic Interexchange Fromate 可交换图像文件格式GPS Global Positioning System 全球定位系统GUI Graphical User Interface 图形用户界面HDML Handheld Device Markup Language 手持设备标记语言Hi-loプログラマー Hi-lo programmer 河洛烧写器HSM High-Speed Memory 高速存储器HTML HypeText Markup Language 超文本链接标示语言HTMLエディタ HTML editor HTML编辑器HTTP Hypertext Transfer Protocol WWW服务所使用的协议(超文本传输协议)HUB 集线器I love you ウィルスI love you virus 爱虫病毒I/F InterFace 界面IBM International Business Machines 美国国际商用机器公司ID identifier 身分IDE 集成电路设备IE Internet Explorer 微软WEB浏览器IIS Internet Information Services 互联网信息服务inaction ブロック inaction block 静块INI 初始化设置文件扩展名IP internet protocol 网际协议IPアドレス IP address IP地址IRDA 红外线ISDN Integrated Services Digital Network 综合服务数字网ISP Internet Service Provider 互联网服务提供者IT Information Technology 信息技术Iモード I mode I模式JAN Digital Equipment Corporation 美国数字设备公司JAVA JAVA语言JDK Java Development Kit JAVA开发工具包JPEG Joint Photographic Expert Group 联合图像专家组KPA 关键过程域Labカラー Lab color Lab颜色LAN Local Area Network 局域网LANの設定局域网设置LDAP Lightweight Directory Access Protocol 轻量级目录访问协议LDB logic database 逻辑数据库LIPS 页面描述语言LPR Line Printer 打印协议Lucent Lucent 美国郎讯公司mainメソッド主方法MAN Metropolitan Area Network 城域网Mbps Mega bits per second 兆比特每秒MDEファイルの作成生成MDE文件MDI Multiple Document Interface 多文档界面程序MFC Microsoft Foundation Class ++的类库Microsoft Webページ Microsoft Web page Microsoft网站MIDI Musical Intrument Data Interface 乐器数字接口MIPS Million Instructions Per Second 每秒百万条指令MMC Microsoft Managemet Console 微软管理控制台MO Magnet Optical disk 磁光盘MOドライブ MO drive 磁光盘驱动器MP3プレイヤー Mpeg Audio Layer3 player MP3播放器MPEG Motion Picture Expert Group 运动图像专家组MSDE MicroSoft Database Engine 微软数据库引擎MSP Moduler System Program 摸块化系统程序MSS Mass Storage System 海量存储系统MTA Mail Transfer Agent 邮件传输代理NEC Nippon Electric Company 日本电气公司Netscapeユーザーのために Netscape用户NIC network interface card 网络接口卡Nimda 尼达NIS Network Information Services 网络信息服务NNTP Network News Transfer Protocol 网络新闻传输协议NS Netscape 网景WEB浏览器NTSCカラー NTSC color NTSC颜色NTT Nippon Telegram and Telephone Corp 日本电信电话公司NTTコム NTT Com NTT ComNTT子局 NTT子局NTT接続局NTT连接局OA Office Automation 办公自动化OA化办公自动化OCR Optical Character Recognition 光学字符识别ODBC Open DataBase Connectivity 开放式数据库连接OFFする设为OFFOLE Object Linking and Embedding 对象链接和嵌入OLE DB OLE DataBase OLE数据库OLTP OnLine Transaction Processing 联机事务处理OOP Object Oriented Programming 面向对象程序设计Oracle Oracle数据库管理系统OS OS (Operating System) 操作系统PCI Peripheral Component Interconnect 周边元件扩展接口PCX 图形文件PCコマンド PC command PC命令PCとの同PC的PC側 PC端PDA Personal Digital Assistant 个人数字助理PDF Portable Document Format adobe的可移植文档格式Perl 后端服务器程序语言PG名 PG名PHP 新型CGI网络程序开发语言PL/2 programming language 程序设计语言PLC 通用次序控制器POP Post Office Protocol 邮件处理协议POPメール POP mail POP邮件POSIX Portable Operating System Interface 便携式操作系统接口PostgreSQL 一种数据库系统PPP Peer-Peer Protocol 点对点协议QCIF Quarter CIF 四分之一CIFQMS Quality management system 质量管理系统QQVGA Quarter Quarter Vga 十六分之一VGAQVGA Quarter Vga 四分之一VGARAM Random Access Memory 随机存储器RDBMS Relation DataBase Manage System 关系型数据库管理系统RDF Report Document Format 报表文档格式RGB red,green,blue 三原色(红绿蓝)RGBカラー RGB color RGB颜色ROM read-only memory 只读存储器ROM焼き烧入ROMRPC Remote Procedure Call 远程过程调用RPM Redhat Package Manager 红帽软件包管理器RTC real time clock 实时时钟RTCP Real-time Transport Control Protocol 实时传输控制协议RTP Real-time Transport Protocol 实时传输协议SA2100 SA2100SCSI通信 SCSI通信SDI Single Document Interface 单文档界面程序SDK Software Development Kit 软件开发工具包SE system engineer 系统工程师SEPG software engineer process group 过程改善推进组SMTP Simple Mail Transfer Protocol 简单邮件传输协议SNMP Simple Network Management Protocol 简单网络管理协议SNTP Simple Network Time Protocol 简单网络时间协议SOAP simple object access protocol 简单对象访问协议Spaceキー Space键SPI 软件过程改进SQA 软件质量保证SQL Structured Query Language 结构化查询语言SQL文 SQL statement SQL语句SRS WOWエフェクト SRS WOW effect SRS WOW效果SSL Secure Sockets Layer 加密套接字协议层SSLの状態のクリア清除SSL状态ST System Test 系统测试STS System Test Spec 系统测试式样书SVGA Super VGA 超级VGATCP/IP Transmission Control Protocol/Internet Protocol 传输控制协议/网际协议TDG test data generator 测试数据生成器TIF Tagged Image File 标签图像文件格式UDDI universal description, discovery and integration 通用发现、描述和集成UDP User Datagram Protocol 用户数据报协议UML unification modeling language 统一建模语言UPS Uninterrupt Power Supply 不间断电源URL Uniform Resource Locator 统一资源定位器URLを追加添加URLU*** Universal Serial Bus Intel公司开发的通用串行总线架构U***コントローラ U*** controller 通用串行总线控制器U***ポート Universal Serial Bus U***接口VCD Video Compact Disc 视频高密光盘VCDプレーヤー VCD player 影机VGA Video Graphic Array 视频图形阵列VIP Very Important Person 贵宾VIPカード VIP card 贵宾卡VPN Virtual Private Network 虚拟个人网络VSS Visual Source Safe 开发环境VxWorks VxWorks 一种操作系统W4C World Wide Web Consortium 3W协会WAN Wide Area Network 广域网WAP wireless application protocol 无线应用协议WDM技術 wavelength division multiplexing 波分复用技术Webコンポーネント Web component Web组件Webサーバー Web Server 网络服务器Webサービス記述言語 web Services Description Language web服务描述语言Webサイト Web site 网站Webストレージ Web Storage 网络存储器Webツール Web tool Web工具箱Webディスカッション Web discussion Web讨论Webの検索搜索Webwebページ web page 网页Webページとして保存另存为Web页Webレイアウト Web layout Web版面Web上のツール网上工具Web設定のリセット重新设置WebWindows XPツアー Windows XP tour 漫游Windows XP Windows2000 Windows2000 Windows2000WLAN Wireless LAN 无线局域网WSDL web Services Description Language web服务描述语言WWW WWW (World Wide Web) 环球网WWW World Wide web 万维网XML extensible markup language 扩展标示语言Yahoo 雅虎Yコマンド Y command Y命令アーカイバ archiver 档案库存储器アーカイバー archiver 档案库存储器アーカイビング archiving 归档アーカイブ archive 档案文件/存档アーキ Archi Archiアーキテクチャー architecture 体系结构アーギュメント argument 参数アークコサイン arc cosine 反余弦アークタンジェント arc tangent 反正切アーチ形 arch 弧アーティスティック艺术效果アービトレーションフェーズ arbitration phase 裁决状态アイク IKE 光电摄像管アイコン icon 图标,图符アイコンの自動整列自动排列アイコンの整列排列图标あいさつ文问候语アイデア idea 主意アイテム item 项,项目アイドル時間 idle time 空闲时间アイリス iris 光圈アウェイ away 客场アウトソーシング out-sorcing 外加工アウトプット output 输出アウトライン outline 轮廓,大纲アウトラインからスライド幻灯片(从大纲)アウトラインのクリア清除分级显示アウトラインの自動作成自动建立分级显示アウトルック outllook 邮件收发软件アカウント帐户名アカウントロック accountlock 帐户锁アカウント名 account name 帐户名アカデミック academic 教学工具アキュムレータaccumulator 累加器アクション action 行为,动作アクセサリ accessory Windows中的附件アクセシビリティ accessibility 可接近性アクセス access 存取,访问アクセスアドレス access address 存取地址アクセスカウンター access counter 访问计数器アクセスセキュリティ access seculity 访问安全アクセスナンバー access number 访问号アクセスビット access bit 访问位アクセスポイント access point 接入点アクセスメソッド access method 访问方法アクセスログ access log 访问日志アクセス許可 access permission 存取许可アクセス権 access authority,access right 存取权限アクセス権限 access permission 访问权限アクセス識別子 access identifier 访问修饰符アクセス制限ステータス access control status 访问限制状态アクセス制御修飾子访问控制修饰符アクセス頻度 access frequency 访问频率アクセス優先度 access priority 存取优先级アクセッサ accessor 存取器(MSS中使用)アクセプタ Acceptor 受主アクセプター acceptor 接收器アクセル accerelator 加速装置アクセンチュア accenture Accenture公司アクター actor 行动器アクチュエータ actuator 传动器アクティビティ図 activity diagram 活动图アクティブ active 活动アクティブデスクトップ active desktop 活动桌面アクティブウィンドウ active window 活动窗口アクティブエクス ActiveX 网络化多媒体对象技术アクティブにする active 激活アクティブファイル active file 活动文件アクティブフィルター active filter 有源滤波器アクティブユーザー active user 现时用户アクティブレポート active report 活动报表アグレッシブ aggressive 攻击性的アゴラコール agora call 公共调用アサーション assertion 断言アサイン assign 分配アジェンダ agenda 议程アシスタント assistant 助手,助理アシスタントを表示する显示帮助アスキーコード ASCII code ASCII码アスタリスク asterisk 星号アスペクト比 aspect ratio 纵横比アセス assess 评估版アセンブラ assembler 装配工アセンブラー assembler 汇编程序アセンブラ言語 assembler 汇编语言アセンブリ assembly 程序集アセンブリー言語 assembly language 汇编语言アタッチ attach 附加,连接アダプタ adapter 适配器アダプタシミュレータ adapter simulator 适配模拟器アダプタビリティ adaptability 适应性アダプテック Adaptec Adaptec公司アッセンブラー assembler 汇编程序,汇编语言アッセンブリー assembly 程序集アップ(ロード) up(lord) 上传アップグレード upgrade 升级アップグレード版 upgrade version 升级版アップサイジングウィザード upsizing wizard 升迁向导アップダウンキー up down key 上下键アップデート/更新 update 更新アップリンク uplink 上行路线,向上传输アップル apple 美国苹果公司アップローディング up-loading 加载アップロード upload 上传アドイン add-in 内插附件アドイン add-in 加载宏アドインマネージャ add-in manager 加载项管理器アドバンスト Advanced 高级的アドバンストパワーマネージメント APM 高级电源管理アドバンテージ advantage 优点,有利,长处アドビ adobe Adobe公司アドホックマネジメント ad hoc manegement 特别管理アドミニストレーター administrator 管理员アドミン admin 管理アトリビュート Attribute 属性アドレス/番地 address 地址アドレスグループ address group 地址组アドレスバー address bar 地址栏アドレスバス address bus 地址总线アドレスフィールド address field 地址段アドレスマルチプレクサー address multiplexer 地址复用混合器アドレスライン address line 地址线アドレス演算子 address 地址运算符アドレス元 address 源地址アドレス先 address 目的地址アドレス帳 address book 地址簿アドレス領域 address area 地址区域アドレッシング addressing 寻址方法、编址技术アナウンス announcement 宣告アナライザ analyser 分析器アナリストanalyst 分析者アナログ analog 模拟量,模拟アナログディジタル変換器 analog-digital converter 模拟-数字转换器アナログデータ analog data 模拟数据アナログベースクラス analog base class 虚基类アナログ回路 analog circuit 模拟电路アナログ出力 analog output 模拟输出アナログ信号 analog signal 模拟信号アナログ制御 analog control 模拟控制アナログ値 analog value 模拟值アナログ入力 analog input 模拟输入アナログ入力設定模拟输入设定期アニメ anime 动画アニメーション animation 动画アニメーションコントロール animation control 动画控件アニメーションの設定自定义动画アニメリソース anime resource 动画资源アニュアル annual 年鉴アノード anode 阳极,正极アノテーション annotation 注释アパッチ Apache 一种程序开发语言アプウィザード Appwizard 应用程序向导工具アブストラクト abstract 摘要アフターサービス after-service 售后服务アフタファイブ after five 5点之后アプライアンス Appliance 器具アプリ application 应用程序アプリケーション application 应用(程序)アプリケーションシリーズ application series 应用程序系列アプリケーションソフトウェア application software 应用软件アプリケーションの自動修復检测并修复アプリケーションヒープ application heap 应用程序堆アプリケーションプログラム application program 应用程序アプリケーション配置应用程序配置アプリケーション配置ドキュメント程序配置文档アプリケーション名应用程序名アプレット applet 小程序アプレットビューアー applet viewer 小程序阅读器アプレット状態遷移 applet状态迁移アプローチ approach 探讨,接近アベイラビリティ availability 可用性アペンド append 附加アボート abort 异常终止,异常中断アボリジン aborigine 土著人アミューズメント amusement 消遣アラート alert 警告アラーム alarm 报警アラームメッセージ alarm message 警告信息アラームリスト alarm list 警报列表アライアンス alliance 联合アライン aline 排列あらかじめ预先アラジンドロップスタッフ aladdin dropstuff 阿拉延开发工具あらまし概要アリアス alias 别名アルガス Algas Algasアルカリ alkali 碱アルゴリズム algorithm 运算法则アルゴリズム algorithm 算法アルバム album 影集アルファベット alphabet 字母表アルファベット alphabet 字母アレイ array 数组。