计算机世界里总有新名词,搞清楚一些基本的含义就不会人云亦云了,这些是我在两年的开发工作中遇到并记录下来的名词解释。
1. xDoclet是一种通过读取JAVA源文件中的特定标签,然后生成指定文件的工具。
2. hbm文件: Hibernate mapping files.
3. jTDS is an open source 100% pure Java (type 4) JDBC 3.0 driver for Microsoft SQL Server (6.5, 7, 2000 and 2005) and Sybase (10, 11, 12). 即数据库驱动。
4. JUnit是一个回归测试框架(regression testing framework),供Java开发人员编写单元测试之用。
5. EDI(Elecctronic Data Interchange,电子数据交换)是信息技术向商贸领域渗透并与国际商贸实务相结合的产物。
6. XP(Extreme Programming), 极限编程使用了Agile(敏捷方法)。是一种以人为本的开发方式,提倡0文档,提高代码质量,代码即文档,两人公用一台电脑进行编程且互相监督减小出错的纪律,拥抱需求变化,尽快交付,测试先行(即先写测试用例后编码来使得用例运行)等理念。个人觉得XP适合开发人员不多,开发周期及维护周期较短的项目。
7. IoC(Inversion of Control)。控制反转。Inversion of Control, 用白话来讲,就是由容器控制程序之间的关系,而非传统实现中,由程序代码直接操控。这也就是所谓“控制反转”的概念所在:控制权由应用代码中转到了外部容器,控制权的转移,是所谓反转。
8. DI(Dependency Injection)。注入机制。组件之间的依赖关系由容器在运行期决定, 即在运行期由容器将依赖关系注入到组件之中。个人的理解是类之间的依赖关系通过配置的方式来关联。对象的依赖关系通过工厂模式读取配置文件进行动态注入。减小类之间的耦合度。
9. XPath 和 XQuery是查询语言,用它们可以从XML文档中吸取单个的数据项或者数据项列表。
10. SOAP是Web services间进行通讯的标准协议, 是建立在传输文件类型的协议(Http,ftp)之上的高层协议。(不一定总是Http协议)
11. CORBA=Common Object Request Broker Architecture,是一组用来定义“分布式对象系统”的标准,由OMG(Object Management Group)作为发起和标准制定单位。CORBA的目的是定义一套协议,符合这个协议的对象可以互相交互,不论它们是用什么样的语言写的,不论它们运行于什么样的机器和操作系统。
12. 黑盒测试:已知产品的功能设计规格,可以进行测试证明每个实现了的功能是否符合要求。即对接口进行测试。
13. 白盒测试:已知产品的内部工作过程,可以通过测试证明每种内部操作是否符合设计规格要求,所有内部成分是否以经过检查。即对对软件的过程性细节做细致的检查。
14. Scalable Vector Graphics (SVG) 1.1 [W3C 推荐标准]是一种描述二维图像的语言。它主要是一种向量图形语言,尽管也支持一些光栅图形特性。SVG 的非凡雄心是提供一种实用的、灵活的、使用(以冗长闻名的)XML 表示的图像格式,而且在这点上做的很成功
15. Standard Generalized Markup Language, 即标准通用标记语言,简称SGML。早在Web未发明之前,SGML就早已存在。正如它的名称所言,SGML是一种用标记来描述文档资料的通用语言,它包含了一系列的文档类型定义(简称DTD)。由于SGML体系过于庞大,不方便使用,所以人们用HTML,也就是SGML的一个子集来定义WEB内容。同样,XML也是SGML的一个子集。
16. XML中包括可扩展格式语言XSL(Extensible Style Language) 和可扩展链接语言XLL(Extensible Linking Language)。
17. W3C: World Wide Web Consortium. 是一个定制Web标准的国际联盟。它定义的DOM( Document Object Model文档对象模型),包括Html, xml的标准。
18. CVS: Concurrent Version System用于版本控制
19. VSS: Visual Source Safe。 微软的版本控制工具(微软啥都要是Visual 的。。。)
20. B/S结构,即Browser/Server(浏览器/服务器)结构,是随着Internet技术的兴起,对C/S结构的一种变化或者改进的结构。在这种结构下,用户界面完全通过WWW浏览器实现,一部分事务逻辑在前端实现,但是主要事务逻辑在服务器端实现,形成所谓3-tier结构。Client/Server是建立在局域网的基础上的.Browser/Server是建立在广域网的基础上的.
21. POJO: Plan Ordinary Java Object
ORM: Object Relationship Mapping 关系对象映射,表现为持久对象。
ORM: Object Relationship Mapping 关系对象映射,表现为持久对象。
22. JTA: JTA specifies standard Java interfaces between a transaction manager and the parties involved in a distributed transaction system: the resource manager, the application server, and the transactional applications.
23. 持久性的定义: 持久性就是将获取的临时数据,比如说内存中的对象,程序数据,用更持久的方式存贮起来,比如说关系数据库。而持久性框架负责管理数据库以及在数据库和关系对象之间建立映射(ORM), hibernate就是一个开源的持久性框架
24. CMP: 容器管理持久性
25. Java Socket: Socket 提供了两台计算机之间进行通信的一种机制。JAVA提供了对于SOCKET通信的高层抽象,使得创建和使用socket变得容易。程序员不必了解太多的底层超作系统的机制。Socket操作使得对网络以一种流的方式进行读写操作,可以是字节流,也可以是字符流(已经有了特定编码的字符)。Java中的Socket和ServerSocket分别定义了客户端Socket和服务器Socket的解决方案。
26. Cactus是一种集成的、通用的、开放源码的计算科学和工程问题解决环境。Cactus允许用户将原来在个人计算机上开发的程序(不管它们原来是用C语言、C++写的,还是用Fortran、Java语言写的),转换成能够在虚拟的“网格计算机”上运行的并行程序;
27. RMI-Remote Method Invocation, 就是远程方法调用. RMI原理: 我的理解是,RMI客户端使用一种叫做"stub"(个人认为是个代理)的机制来和服务器进行通信. stub负责所有的调用,连接,异常的工作, 使得调用远端方法的时候看起来想本地一样.
28. DLL文件即动态链接库文件,是一种可执行文件,它允许程序共享执行特殊任务所必需的代码和其他资源。Windows提供的DLL文件中包含了允许基于Windows的程序在Windows环境下操作的许多函数和资源。
29. JAVA WEBSTART: Using Java Web Start technology, standalone Java software applications can be deployed with a single click over the network. Java Web Start ensures the most current version of the application will be deployed, as well as the correct version of the Java Runtime Environment (JRE). 是一种JAVA部署技术,用于在客户端部署JAVA程序,通过此工具可以与服务端通信并确认软件版本和下载最新更新。
30. WSDL : Web Services Description Language的缩写,是一个用来描述Web服务和说明如何与Web服务通信的XML语言。
31. Web Services: Web Service是能够通过多网络环境互相合作发送一个结果到最终用户的松耦合的组件。在这个过程中,通过杠杆作用一组用于管理它们的描述和交互标准正在出现,包括SOAP (Simple Object Access Protocol),UDDI (Universal Discovery and Description Integration),XML (Extensible Markup Language),和WSDL (Web Services Description Language)。
32. servlet: 一种扩展Web服务器功能的Java程序,动态生成文档,并且使用求应答的方式和用户交互, http request 和http response.
33. Bean: Java 的类,但是是一个可重用的组件,可以通过组合Bean来创建应用程序。
34. Enterprise JavaBeans(TM) (EJB)。一个用于开发和使用面向对象的,分布式的,企业级应用程序的组件体系结构。使用Enterprise JavaBeans体系结构编写的软件是可扩展的,面向事务的,多用户的,安全的。
35. 存储过程(Stored Procedure)是一组为了完成特定功能的SQL语句集,经编译后存储在数据库中。用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。
36. WIKI。 源自夏威夷语,表示“快点快点”。含义是网络知识库。 WIKI提倡网络上的网民均为知识库的构建者和使用者,使得知识快速地被传播及共享。
37. CMM:Cability Maturity Model。能力成熟度模型。源自美国国防部委托卡内基-梅隆大学开发软件工程研究所(SEI)定制的用来评估软件合同承包组织的能力模型,后在世界范围内采用来评估软件开发过程的模型。
38. CMMI:为SEI 2000年发布的新版本。改进了原有CMM的一些不足之处。CMMI不仅包括了软件过程的内容,还加入了系统集成,软硬件采购的内容。CMMI将有取代CMM的趋势。
39. JAR:Java Archive; JAR是JAVA中一种以ZIP技术为基础,可将多个文件打包成一个文件的技术。JAR能做的远大于集成文件。通过JVM,JAVA API对其的支持,它还可以用在改进文件加载效率(生成索引文件的方式,特别是用在Applet),利用keystore和javasign进行jar文件的签名和验证,封装和扩展jar文件的引用等方面。JAR是WAR和EAR的基础。
40. WAR: Web Archive; WAR用于在J2EE容器中部署SERVLET和JSP.
41. EAR: Enterprise Archive; EAR用于在J2EE服务器中部署EJB.
42. 线程。线程是在一个程序或进程当中执行的多个控制流,一个程序或进程能包括多个线程。线程间共享处理器,内存地址空间及一切可共享的资源。线程能提供处理的效率及利用CPU的分时机制最大限度地利用资源。常用在需要迅速响应的用户界面及后台程序。线程的基本状态有已创建,可执行(等待分配cpu时间),死亡(执行完毕),阻塞(等待资源)。
43. 进程。进程是程序在计算机上的一次执行活动。即处于运行状态的程序。进程独占系统资源和内存空间。进程可以进一步划分更小的执行单元线程。
44. 数字证书。Certificate. 也称公钥数字证书。是经过数字签名的数字或秘文,包含了标志一个实体的公钥及其他相关信息(实体信息,有效日期等)。第三方认证机构对这些相关信息和实体的公钥使用认证机构的私钥进行签名,第三方称为CA(证书授权机构),CA通常为大众所信任且CA的公钥预装在常见浏览器中以便认证。
45. 数字签名。Digital Signature. 使用发送方的私钥对一段数据进行签名以供接收方验证。这段被签名的秘文数据就是数字签名。如果是动词,就表示签名的动作。
46. X.509. 为国际电信联盟制定的数字证书标准。符合X.509标准的数字证书叫X509数字证书。与X.500证书命名标准结合使用。
47. 消息摘要。Message Digest. 消息摘要是通过接受任何长度的数据块进行选定的一种Hash算法进行计算,产生一个唯一长度的摘要信息。不同的数据库不能产生同样的摘要。且某些摘要的算法是不可逆的,即不可通过摘要获得原始报文。常用的算法有MD2, MD4,MD5, SHA,SHA1,SHA256,SHA383,SHA512
48. 对称加密。Symmetrical Cryptography. 制发送方和接受方公用一个相同的密钥来验证彼此的一种方式。常见的有RC2, RC4,RC5,AES, BlowFish.
49. 非对称加密。Asymmetriacl Cryptography. 即公钥私钥系统。常用的算法有RSA,DSA. 验证来源为发送方使用自己的私钥签名,接受方使用发送方的公钥验签。加密方式为发送方使用发送方的公钥加密,接受方使用自己的私钥解密等。
50. 公钥。Public Key。与实体有对应关系的一组数字或秘文。公钥是要发布给大众来辨认实体的,验证实体的方法使用公钥来验证实体发送过来的签名。
51. 私钥。Private Key。 实体保存在自己站点且不外泄的数字或秘文。私钥的作用是对要发送的数据进行数字签名,以便让接收方使用发送方的公钥进行验证。
52. CA。Certification Autority. 认证授权组织。该组织为社会上或法律上为大众所信任的认证授权机构。它对要求认证的组织进行审核并为其发放数字证书。通过此证书用户可以验证并辨识请求服务的组织的可靠性。常见的有VeriSign, Thawte, Entrust.
53. 安全套接字。SSL(Secure Socket Layer). 是在客户机和服务器之间建立安全通信通道的协议。客户机验证服务器身份后(也叫握手。有时服务器也需验证客户机),两者之间通过即使产生的一个会话密钥和其他的保障机制来确保安全通信。SSL是建立在http协议上的,使用如https的协议进行通信。要使用SSL,服务器需安装SSL证书,SSL证书一般有需认证机构生成认证请求,发送给CA进行认证,认证成功后CA发会SSL证书。
54. 回归测试: Regression Test. 在软件开发的任何一个阶段或迭代,都可能对上个阶段获得迭代已经测试成功的代码进行修改或变动。回归测试即使用之前的测试用例重新测试认为已经可以运行的代码。
55. I18N:Internationalization 国际化。源自第一个字母I 和最后一个字母N之间有18个字母。
56. 网关:Gateway. 连接两个不同网络之间关口。访问一个处于不同网段上的网络资源的时候,必须要通过网关。我们为一台在网络上的机器配置默认网关,当从这台机器上请求一个主机的资源,如果目的主机和请求主机不在一个网段上,请求经由请求主机的网关发送给目的主机的网关,再由目的主机的网关发送给本网段内的目的主机。路由器经常担任网关的角色,如路由互联网和内部局域网。
57. 子网掩码:Subnet Mask. 子网掩码是一个16位的IP地址。TCP/IP用子网掩码+IP地址来判别计算机是否位于一个子网当中。判别的依据是计算机设置的IP和子网掩码做AND操作。结果IP如果相同即判定为在一个子网当中。子网掩码决定了一个子网能容纳多少台机器。如经常地被设置为255.255.255.0的子网可以容纳255台计算机。
58. CSR(Certificate Signing Request)证书签名请求. 在向一个可信机构,如verisign,申请服务器证书时,您必须提交您服务器的CSR 。此CSR 包含了证实申请者的关键信息,以及需要安装证书的服务器信息。
59. 证书链:将多个证书链接起来就组成一个证书链。证书链中的每个实体(除了最后一个实体)都是一个CA,如果一级CA证书是可信的,他的下级CA签署的证书也是可信的。
60. CRL(Certificate Revoke List)证书撤销清单。证书在有效期内是可以被CA撤销的。CRL登记了所有被撤销这个证书的清单。CA会公布或让人下载CRL来检查一个已颁发的证书是否被撤销。由于比较麻烦,应用程序一般很少做这个检测。
61. BASE64,在仅允许传输ASCII字符(8位字节的低7位)的网络协议下传输非ASCII字符如中文时,8位字节的最高位不为零,因此base64编码将3个8位字节转换为4个6为字节。解决了这个问题。通常二进制数按8位1字节保存,而ASCII仅有7位。因此如果将二进制数以ASCII显示,每字节将失去一位。BASE64编码将每字节8位转换为6位的块(留一位作为控制字符)。另外一个作用是对人类肉眼可读的字符进行了简单加密,达到“防君子不防小人的效果”。
简言之:BASE64解决了在网络上传输非ASCII字符(如中文)编码的问题,并进行简单加密。
62 CASE Computer Aided Software Engineering。主要指通过一整套的方法和规格对系统设计进行建模。
63 PKCS12: Public Key Cryptography Standard。公钥加密技术12号标准。是一种可移植的密钥格式标准,规定了用二进制存储公钥,私钥和证书等的格式,使用这种标准的通用格式的文件叫PFX文件,开发人员通常需要实现从pfx到 PEM(Privacy Enchanced Mail)或JKS(Java Key Store)格式。
在Security编程中,有几种典型的密码交换信息文件格式:
DER(Distinguishing Encoding Rules)-encoded certificate: .cer, .crt; .cer/.crt是用于存放证书,它是2进制形式存放的,不含私钥。
PEM-encoded message: .pem. .pem跟crt/cer的区别是它以Ascii来表示,即通过base64encoded过
PKCS#12 Personal Information Exchange: .pfx, .p12. pfx/p12用于存放一对个人证书和私钥,他通常包含保护密码来保护私钥,2进制方式
PKCS#10 Certification Request: .p10; p10是证书请求
PKCS#7 cert request response: .p7r; p7r是CA对证书请求的回复,只用于导入
PKCS#7 binary message: .p7b; p7b以树状展示证书链(certificate chain),同时也支持单个证书,不含私钥。
DER(Distinguishing Encoding Rules)-encoded certificate: .cer, .crt; .cer/.crt是用于存放证书,它是2进制形式存放的,不含私钥。
PEM-encoded message: .pem. .pem跟crt/cer的区别是它以Ascii来表示,即通过base64encoded过
PKCS#12 Personal Information Exchange: .pfx, .p12. pfx/p12用于存放一对个人证书和私钥,他通常包含保护密码来保护私钥,2进制方式
PKCS#10 Certification Request: .p10; p10是证书请求
PKCS#7 cert request response: .p7r; p7r是CA对证书请求的回复,只用于导入
PKCS#7 binary message: .p7b; p7b以树状展示证书链(certificate chain),同时也支持单个证书,不含私钥。
64. keyStore: 密钥库(证书库),有JKS和PCKS#12等格式。是一个可以包含多个证书,密钥对的数据库。不同的证书,密钥对中的私钥,证书通过别名(alias)来区分。KeyStore本身有密码来保护数据库,里边包含的密钥对也包含密码以保护私钥。
65. RFC: Request For Comments.由一系列草案组成,内容主要与Internet有关。草案讨论了计算机通讯的方方面面,包括网络协议,过程,程序等。它是IETF(Internet Engineering Task Force)的一个无限制分发文档,RFC被编号且以编号来识别,编号越大代表是越新的草案。
66. CLOB: Character Large Object. 代表大的字符对象,和数据库的CLOB类型对应
67. BLOB: Binary Large Object. 代表大的二进制对象。和数据库的BLOB类型对应
68. ASCII: Amercian Standard Code 4 Information Interchange. 美国标准信息交换码。是互联网上应用最广的字符集编码方式。有7位码和8位码两种形式。7位ASCII码使用7位二进制数进行编码,因此可以表示2的7次方即128种字符。其中0~32号用于通讯专用控制码。32~126为字符。48~57号为0~9十个阿拉伯数字;65~90号为26个大写英文字母,97~122号为26个小写英文字母,其余为一些标点符号、运算符号等。计算机存储中,一个ASCII码占1个字节(8位),最高位用于奇偶校验用途。例如传输00110000代表编号48的ASCII码,接收方解析为数字0
69. DHTML: Dynamic HTML. 这不是一个W3C标准,是厂商的叫法,DHTML即是HTML+CSS+JAVASCRIPT技术加在一起以实现的动态网页效果。
70. XHTML:XHTML 1.0是一种在HTML 4.0基础上优化和改进的的新语言,目的是基于XML应用。XHTML是一种增强了的HTML,它的可扩展性和灵活性将适应未来网络应用更多的需求。
71. CNNIC: CN Network Information Center:中国互联网信息中心。cn等中文域名通过此机构进行注册。
72. ICANN: The Internet Corporation for Assigned Names and Numbers.互联网名称与数字分配机构。是一个集合了全球网络界商业、技术及学术各领域专家的非营利性国际组织,负责互联网协议(IP)地址的空间分配、协议标识符的指派、通用顶级域名(gTLD)以及国家和地区顶级域名(ccTLD)系统的管理、以及根服务器系统的管理
73.cookie:Cookie是服务器发送给浏览器的体积很小的纯文本信息,用户以后访问同一个Web服务器时浏览器会把它们原样发送给服务器。cookie可以设置有效时间,是否写文件,服务器可读取的路径等。
74.JSR: Java Specification Request。
75.JCP: Java Community Process.
76.JAXB: Java API for Xml Binding: Java中对XML和Java对象绑定的实现机制API.
77.WS-I: Web Service Interoperability: WS规范中的一个关于WS互操作性的规范,规定了不同平台之间使用WS进行通讯需要遵循的原则。
78.WS-Addressing: 一种将寻址信息放到SOAP消息中的WS规范。使得WS的调用,特别是异步的调用,不单依赖与传输层的寻址信息,而可以通过解析SOAP消息中的一个或多个(通常位于SOAP HEAD中)寻址信息对于不同的要求返回不同的地址。
79. SSH: Secure Shell.It is protocol for logging on and executing commmands on the remote machine, it provides security policies, all communication data is encrypted.
80. Telnet: It is a protocol for logging into remote machines, the data is not encrypted, it provides little security from network snooping attacks.
81. MDD,MDA: Model Driven Delopment or Mode Driven Architecture.由OMG组织所定义的一种能使用UML或XMI对代码进行建模,并能通过逆向的方式使用模型生成代码的开发架构或方式。
82. OMG: Object Management Group。对象管理组织。制定了如UML的标准。
83. XMI: XML Based Interchange。基于XML的原数据交换。它通过XML定义(DTD or XSD)为UML原模型和其他模型定义了一种基于XML的数据交换格式,即定义了UML和XML的转换模型。XMI为不同的CASE工具之间共享遵循某个UML标准的模型提供的转换的标准。