




免费预览已结束,剩余42页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
本 科 毕 业 论 文 J2EE和.NET平台体系结构分析 .NET平台体系结构分析Analysis of J2EE and .NET Architecture Analysis of .NET Architecture姓 名:李子攀 学 号:学院:软件学院系:软件工程专 业:软件工程年 级:指导教师: 年 月 摘要随着企业应用系统日益复杂,企业对应用系统开发技术和平台的要求越来越高。J2EE平台与.NET平台企业该如何选择合适的开发技术和平台,以建立具有生命力的企业应用系统,成为很多企业面临的一个问题,同时程序员们对二者是极其关注的。本文对目前市场上两个主要的企业级应用开发平台J2EE和.NET进行了简要的阐述,并从技术和市场这两个角度对它们进行分析和比较。试图帮助企业选择合适的技术和平台来构建系统,并给程序员选择技术的建议。本文共分五章:第一章简要论述了J2EE和.NET的异同点。J2EE是一组规范,而.NET更象是一组产品,他们都是为了企业应用提供分布式的,高可靠性的解决方案.它们在架构上有着很多的相似之处,列举出两者相同应用不同技术的比较。并给出.NET的开发框架,更直观的了解.NET平台。第二章介绍了.NET的运行环境时。Common Language Runtime是一种多语言执行环境,支持众多的数据类型和语言特性。并且根据企业级应用的三层架构,从展示层、中间层、数据层对.NET平台的各关键技术和应用做详细介绍。从安全角度,介绍了.NET平台构建安全的应用程序时的一些技术和设计原则。第三章介绍了十个提供给开发者使用.NET平台的使用工具。第四章从市场角度比较.NET和J2EE平台,引dinJ做的一项调查,对.NET和J2EE的使用者的 就业市场和薪资做比较。 第五章比较剖析J2EE和.Net的技术,并通过市场的比较,帮助企业选择合适的平台构建系统,并对程序员选择技术提出意见。关键词:.NET;J2EE;体系结构 Abstract With the increasingly complex applications of enterprise, the demanding of enterprise application development technology and platform is higher. How do companies and programmers choose the appropriate technology and development platform between J2EE and .NET to build a viable enterprise application, as many enterprises are facing a problem.This paper makes a brief statement for two major enterprise application development platform of J2EE and .NET on the market,at one time,analyses and compares them from two perspectives technology and market of enterprise applications system,trying to help enterprise choose a suitable technology and platform to build a perfect applications,and trying to help programmers the advice of how to choose the technology.The thesis divided into five parts: The first part studied with similarities and differences spot of the J2EE and .NET platform.J2EE is a set of standards,and .NET is a group of products.Both of them provide the enterprise with distributional,redundant reliable solution.They have many similarities on the framework,and we enumerate the comparison of the different technical on the same application.At the same time,we show you the development framework of .NET,direct-viewing to understand the .NET platform. The second part introduced Common Language Runtime.It is a multi-language execution environment and it can support a large number of data types and language.Making the detailed introduction of the .NET platforms various key technologies and applicatio form the layer of dispaly,middle and data,according form the three-tier enterprise application architecture.It aslo introduced some technologies and principles of how to design from the security angle. The third part introduced ten useful tools provided for the developers using the .NET . The fourth part compares .NET and the J2EE platform from the market angle, directs an investigation which dinJ does, makes the comparison to .NET and the J2EE users employment market and the salary. The fifth part discussed the comparison of the J2EE and .Net technology,and through the comparison of the market tried to help Enterprise choose a suitable Technology and platform to build a perfect applications,and gave the suggestion for the programmer how to choose the suitable technology.Key word: .NET;J2EE; Architecture目 录第一章 引言11.1J2EE与.NET之争11.2技术要点11.3 .NET开发框架3第二章 技术比较42.1 运行时环境42.2WinForm胖客户端52.2.1WinForm概述52.2.2创建WinForm应用程序52.2.3可视化继承52.2.4精确的窗体设计52.2.5功能强大的图形功能62.2.6更低的总拥有成本62.3表示层技术72.3.1ASP.NET概述72.3.2执行效率大幅提高72.3.3世界级的工具支持72.3.4强大性和适应性72.3.5简单性和易学性82.3.6高效可管理性82.4目录服务92.5异步消息处理122.5.1MSMQ概述122.5.2基本术语和概念122.5.3队列类型132.5.4同步和异步通信132.5.5同消息队列交互142.6中间层组件模型142.6.1COM152.6.2COM+162.7事务处理162.8 数据层182.9安全202.9.1安全 ASP.NET 应用程序202.9.2身份验证212.9.3授权212.9.4安全通信212.9.5与技术的配合212.9.6设计原则22第三章 开发工具243.1Visual Studio253.2Snippet Compiler253.3Regulator263.4CodeSmith283.5NUnit283.6FxCop293.7.NET Reflector293.8NDoc293.9NAnt303.10转换工具30第四章 就业市场和薪资比较324.1平均薪资:324.2就业趋势334.3薪资图354.4调查结论35第五章 总结与展望36参考文献37致谢39CONTENTSChapter One Preface11.1Comparison OfJ2EE And.NET11.2Foucs Of Technology11.3 .NETframework3Chapter Two Comparison Of Different Technology42.1 Common Language Runtime42.2WinForm52.2.1Overview Of WinForm52.2.2Create An Application Of WinForm52.2.3Visualable Inheritance52.2.4Precise Form Design52.2.5Powerful Capabilities Of Graphics 52.2.6Lower Cost 62.3ASP.NET62.3.1Overview Of ASP.NET72.3.2Improve The RunningEfficiency72.3.3Tool Support72.3.4Powerful And Adaptability82.3.5Simple And Easy To Learn82.3.6Efficient Manageability92.4ADSI92.5MSMQ122.5.1Overview Of MSMQ122.5.2Basic Terms And Concepts122.5.3The Type Of Queen132.5.4Synchronous VS. Asynchronous Communication132.5.5Interacting with Message Queues142.6Component Model Of Middle-tier142.6.1COM152.6.2COM+162.7Transaction162.8Layer OF Data182.9Security202.9.1The Security OF ASP.NET202.9.2Authentication212.9.3Authorized212.9.4Secure Communications212.9.5Cooperation With Technology212.9.6TheDesign Principles22Chapter Three Development Tools243.1Visual Studio253.2Snippet Compiler253.3Regulator263.4CodeSmith283.5NUnit283.6FxCop293.7.NET Reflector293.8NDoc293.9NAnt303.10Conversion Tools30Chapter Four Comparison Of The Job Market And Wages324.1Average salary324.2Employment Trends334.3Salary334.4Conclusion Of Survey35Chapter Five Conclusion And Future Work36Bibliography37Acknowledgments39厦门大学本科生毕业论文 J2EE和.NET平台体系结构分析 第1章 引言1.1 J2EE与.NET之争J2EE与.NET之争由来以久,网络上每一次争论都可说是波澜万千。这说明程序员们对二者是极其关注的,而且说明大家其实都处在左右为难的境地,否则就没有什么好争论的了。说得再清楚一点,这与大家现在及未来的前途关系很大。现在的软件开发市场,只要打上“J2EE”这个招牌,就意味着较高的就业率和薪水,也意味着产品较高的卖价。但.NET是野心勃勃的,而且它又出自MS。故未年几年的走势很难说。所以对于现在还未充分掌握J2EE和.NET的多数程序员来说,在二者之间如何选择无疑就是一场赌博了。这一点高手们或许不以为然,的确,只要能成为任何技术的高手,就业率与薪水都是不用愁的。可是所谓高手就必然是少数派,大多数的同道仍然要受技术主流的影响。这正是“水涨船高”的道理。而且现在不论是J2EE或是.NET,由于体系的大而全,都是很费时日的。而且随着企业应用系统日益复杂,企业对应用系统开发技术和平台的要求越来越高。J2EE平台与.NET平台企业该如何选择合适的开发技术和平台,以建立具有生命力的企业应用系统,成为很多企业面临的一个问题,同时程序员们对二者是极其关注的。本文对目前市场上两个主要的企业级应用开发平台J2EE和.NET进行了简要的阐述,并从技术和市场这两个角度对它们进行分析和比较。试图帮助企业选择合适的技术和平台来构建系统,并给程序员选择技术的建议。1.2 技术要点.NET来自于微软,是一套全能的框架平台,支持C+、C#、J+、VB、ASP等语言,能够解决C/S、B/S和单机等结构的软件开发需求。.NET平台将这些语言编译成CLR语言,使它们可以无差别的运行在.NET Framework上,是2000年以后微软最为重要的软件开发套件产品。.NET框架入门门槛较低、使用方便,并且微软对其提供了良好的文档支持和在线服务,目前已经拥有了一大批使用者和拥护者,也为很多程序员创造了良好的就业机会。在表现形式上,J2EE是一组规范,而.NET更象是一组产品。但它们的目的都是为了企业应用提供分布式的,高可靠性的解决方案.它们在架构上有着很多的相似之处,下表1-1是一个简单对照: 表1-1 J2EE和.NET技术比较J2EE.NET运行时环境Java Virtual Machine (JVM)Common Language Runtime (CLR)胖客户端Java SwingWindows Forms目录服务Java Naming and Directory Interface (JNDI)Active Directory Services Interface (ADSI)数据访问Java Database Connection (JDBC) ,Java ConnectorsADO.NET异步消息处理Java Message Service (JMS)Microsoft Message Queue表示层技术Servlets, Java Server Page(JSP)ASP.NET中间层组件模型EJB,JavaBeanCOM+,COM安全访问JAASCOM+ Security Call Context事物处理Java Transaction Server (JTS)Microsoft Distributed Transaction Coordinator (MS-DTC)开发工具WebGain Visual Caf Borland JBuilder IBM VisualAge 等Visual Studio.NET1.3 .NET开发框架 为了让我们对Microsoft.NET开发框架有一个整体的认识,请参阅图1-1。图1-1 .NET平台框架首先是整个开发框架的基础,即通用语言运行时以及它所提供的一组基础类库;在开发技术方面,.NET提供了全新的数据库访问技术ADO.NET,以及网络应用开发技术ASP.NET和Windows编程技术Win Forms;在开发语言方面,.NET提供了Visual Basic、Visual C+、C#和Javascript等多种语言支持;而Visual Studio.NET则是全面支持.NET的开发工具。下面就让我们一步步地来了解它们。 第2章 技术比较2.1 运行时环境共通语言运行平台(Common Language Runtime,CLR)是微软为他们的.NET的虚拟机所选用的名称。这是共通语言基础(Common Language Infrastructure,CLI)的微软实现版本,它定义了一个代码运行的环境。CLR运行一种称为微软中继语言的bytecode,这个是微软的共通中继语言实现版本。.NET是一种多语言执行环境,支持众多的数据类型和语言特性,管理着代码的执行,并使开发过程变得更加简单。这是一种可操控的执行环境,其功能通过编译器与其他工具共同展现。开发人员使用高级编程语言撰写程序。接下来编译器将代码编译成微软的中继语言(Microsoft Intermediate Language,MSIL)。运行的时候CLR会将MSIL码转换为操作系统的本地码(Native Code)。CLR内置有JIT(Just In Time)Compiler,如图2-1所示。图2-1 CLR运行机制依靠一种以运行时为目标的编译器开发的代码叫做可操控代码。为了使运行时环境可以向可操控代码提供服务,语言编译器需要产生一种元数据,它将提供在使用语言中的类型、成员、引用的信息。运行时环境使用元数据定位并载入类,在内存中展开对象实例,解决方法调用,产生本地代码,强制执行安全性,并建立运行时环境的边界。对象在执行的过程中完全被运行时环境所控制。运行时环境提供以下服务:自动内存管理、调试支持、增强的安全性及与非可操控性代码的互操作性。条件:选择以运行时为目标的语言编译器,如VB、C#;在组件的输出类型中使用CLR要求的语言特性。2.2 WinForm胖客户端2.2.1 WinForm概述 WinForm是.Net开发平台中对Windows Form的一种称谓。.Net为开发WinForm的应用程序提供了丰富的Class Library(类库)。这些WinFrom类库支持RAD(快速应用程序开发),这些类库被封装在一个名称空间之中,这个名称空间就是System.Windows.Forms。在此名称空间中定义了许多类,在开发基于.Net的GUI应用程序的时候,就是通过继承和扩展这些类才使得我们的程序有着多样的用户界面。 Windows Forms(Windows窗体)是一个新的窗体包,它使得开发人员可以创建基于Windows的应用程序,来充分利用Microsoft Windows操作系统中丰富的用户界面特性。Windows Forms是新的Microsoft .NET Framework的一部分,它使用了许多新技术,包括一个公共应用程序框架、受控的执行环境、集成的安全性和面向对象的设计原则。此外,Windows Forms完全支持快速、容易地连接XML网络服务和在ADO.NET数据模型基础上创建丰富的、数据感知(Data-aware)的应用程序。利用Visual Studio中新的共享开发环境,开发人员可以使用任何支持.NET平台的语言,包括Microsoft Visual Basic和C#创建Windows Forms应用程序。2.2.2 创建WinForm应用程序 开发人员可以像今天创建基于Visual Basic的窗体那样创建Windows Forms应用程序(尽管使用Windows Forms,他们可以在Visual Studio中的所有语言,而不仅仅是在Visual Basic中获得相同的生产力)。要编辑源代码,开发人员只需双击某个控件,然后源代码将显示出来,这使得用户可以迅捷地访问控件和窗体的所有事件模型。2.2.3 可视化继承 可视化集继承是Windows Forms中的一个重要的新特性,它将提高开发人员的生产力,促进代码的重用。例如,一个组织可以定义一个包含诸如公司徽标,可能还包括一个公共工具栏等项目的标准的基本窗体。这个窗体可以通过继承由开发人员使用,并进行扩展以满足特定应用程序的需求,而同时在组织内使用公共的用户界面。基本窗体的创建者可以指定哪些元素可以被扩展,哪些元素必须按原样使用,这样可以确保窗体能够被适当地重用。2.2.4 精确的窗体设计 当开发人员设计Windows Forms应用程序的外观和感觉时,将拥有空前水平的控制能力和生产力。菜单设计器(Menu Designer)、控件锚定(Control Anchoring)、控件入坞(Control Docking)和其他特性使得开发人员可以更精确地创建基于Windows的用户界面。利用菜单设计器,开发人员可以既快速又容易地给窗体添加菜单,修改菜单,然后在不允许应用程序的情况下查看菜单的外观。利用控件锚定,窗体上的控件将更有效,从而使得窗体能够在用户调整窗体的大小时自动调整控件的大小。利用窗体入坞(Control Docking)特性,控件可以停靠在窗体的任何一侧,从而在布局方面提供了更大的灵活性。可以使用现有的ActiveX控件,并且它们可以在任何窗体上运行,从而可以保护在现有技术方面的投入。 新控件包括链接标签(Link Label)、托盘式图标(Tray Icon)、打印预览(Print Preview)为开发人员提供了额外的通用功能。链接标签(Link Label)提供了类似HTML的到特定URL的链接。使用这个控件显示的文本将显示有下划线,并且当鼠标移动到上方时,光标将变成一只手,当被点击时将引起一个可动作的事件。托盘式图标(Tray Icon)使得开发人员可以创建在Windows托盘中运行的应用程序,这类似于Microsoft SQL Server Service Manager(服务管理器)。Windows Forms还提供了一个打印框架,使得定义变得非常简单,它包括一个带有打印预览(Print Preview)控件的打印预览(Print Preview)窗口。开发人员可以使用Windows Forms创建支持最广泛的用户群的应用程序。Windows Forms控件实现了Microsoft Active Accessibility程序设计接口,这使得可以直接创建支持诸如屏幕阅读器的辅助功能的应用程序。2.2.5 功能强大的图形功能 Windows Forms应用程序采用了GDI+,提供了更丰富的图形控件,包括多更多图形格式的支持。开发人员可以很容易地使用高端的图形特性,如Windows 2000支持的alpha混合、处理梯度连贯性(Manipulating Gradients Consistency)、OnPaint事件的双缓冲,以及透明的分层窗口等特性。利用这些特性,开发人员可以创建更丰富更复杂的、具有客户需求的性能的图形化应用程序。2.2.6 更低的总拥有成本Windows Forms不仅仅是提供了一种创建丰富的基于Windows的应用程序的重要方法。开发人员还将从容易的部署能力和集成的应用程序安全模型中获益匪浅。Windows Forms利用了Microsoft .NET平台的版本处理(Versioning)和部署特性,提供了更低的部署成本和更高的应用程序健壮性。这极大地降低了在Windows Forms中编写的应用程序的维护成本(总拥有成本)。使用Windows Forms应用程序,不需要将应用程序部署到最终用户的桌面上。用户可以通过在浏览器中输入一个URL地址即可调用这个应用程序。应用程序将下载到客户端机器中,在一个安全的执行环境中运行,然后在完成后自我删除。 对于希望物理地将应用程序部署到桌面上的组织来说,不需要经历消耗资源的安装过程。简单地将应用程序复制到桌面上,然后它就可以工作了。Windows Forms提供了所需的灵活性,使得应用程序能够以与你的企业相适应的方式为最终用户使用。Windows Forms给开发人员提供了创建基于Windows的应用程序所需的多种技术。不仅有用于调整用户界面的新控件和特性,Windows Forms还提供了灵活的部署和集成的安全性。创建基于Windows的应用程序的开发人员,使用Windows Forms将比以前任何时候更有生产能力。2.3 表示层技术2.3.1 ASP.NET概述ASP是一种使嵌入网页中的脚本可由因特网服务器执行的服务器端脚本技术,是一项微软公司的技术,运行于IIS之中的程序。ASP.net不仅仅是Active Server Page(ASP)的下一个版本,而且是一种建立在通用语言上的程序构架,能被用于一台Web服务器来建立强大的Web应用程序。ASP.net提供许多比现在的Web开发模式强大的的优势。2.3.2执行效率大幅提高ASP.net是把基于通用语言的程序在服务器上运行。不像以前的ASP即时解释程序,而是将程序在服务器端首次运行时进行编译,这样的执行效果,当然比一条一条的解释强很多。2.3.3世界级的工具支持 ASP.net构架是可以用Microsoft(R)公司最新的产品Visual S开发环境进行开发,所见即为所得(What You See Is What You Get)的编辑。这些仅是ASP.net强大化软件支持的一小部分。2.3.4 强大性和适应性 因为ASP.net是基于通用语言的编译运行的程序,所以它的强大性和适应性,可以使它运行在Web应用软件开发者的几乎全部的平台上。通用语言的基本库,消息机制,数据接口的处理都能无缝的整合到ASP.net的Web应用中。ASP.net同时也是language-independent语言独立化的,所以,你可以选择一种最适合你的语言来编写你的程序,或者把你的程序用很多种语言来写,现在已经支持的有C#,VB,Jscript。将来,这样的多种程序语言协同工作的能力保护您现在的基于COM+开发的程序,能够完整的移植向ASP.net。ASP.NET一般分为两种开发语言,VB.NET和C#,C#相对比较常用,因为是.NET独有的语言,VB.NET则为以前VB程序设计,适合于以前VB程序员,如果新接触.NET,没有其他开发语言经验,建议直接学习C#。2.3.5 简单性和易学性ASP.net使运行一些很平常的任务如表单的提交客户端的身份验证、分布系统和网站配置变得非常简单。例如ASP.net页面构架允许你建立你自己的用户分界面,使其不同于常见的VB-Like界面。另外,通用语言简化开发使把代码结合成软件简单的就像吃饭。2.3.6 高效可管理性ASP.net使用一种字符基础的,分级的配置系统,使你服务器环境和应用程序的设置更加简单。因为配置信息都保存在简单文本中,新的设置有可能都不需要启动本地的管理员工具就可以实现。这种被称为“Zero Local Administration”的哲学观念使A的基于应用的开发更加具体,和快捷。一个ASP.net的应用程序在一台服务器系统的安装只需要简单的拷贝一些必须得文件,不需要系统的重新启动,一切就是这么简单。多处理器环境的可靠性ASP.net已经被刻意设计成为一种可以用于多处理器的开发工具,它在多处理器的环境下用特殊的无缝连接技术,将很大的提高运行速度。即使你现在的ASP.net应用软件是为一个处理器开发的,将来多处理器运行时不需要任何改变都能提高他们的效能,但现在的ASP确做不到这一点。自定义性和可扩展性ASP.net设计时考虑了让网站开发人员可以在自己的代码中自己定义plug-in的模块。这与原来的包含关系不同,ASP.net可以加入自己定义的如何组件。网站程序的开发从来没有这么简单过。安全性基于Windows认证技术和每应用程序配置,你可以确性你的原程序时绝对安全的。ASP.NET的语法在很大程度上与ASP兼容,同时它还提供一种新的编程模型和结构,可生成伸缩性和稳定性更好的应用程序,并提供更好的安全保护。可以通过在现有ASP应用程序中逐渐添加ASP.NET功能,随时增强ASP应用程序的功能。ASP.NET是一个已编译的、基于.NET的环境,把基于通用语言的程序在服务器上运行。将程序在服务器端首次运行时进行编译,比ASP即时解释程序速度上要快很多.而且是可以用任何与.NET兼容的语言(包括Visual Basic .NET、C#和JScript.NET.)创作应用程序。另外,任何ASP.NET应用程序都可以使用整个.NET Framework。开发人员可以方便地获得这些技术的优点,其中包括托管的公共语言运行库环境、类型安全、继承等等。 ASP.NET可以无缝地与WYSIWYG HTML编辑器和其他编程工具(包括Microsoft Visual Studio .NET)一起工作。这不仅使得Web开发更加方便,而且还能提供这些工具必须提供的所有优点,包括开发人员可以用来将服务器控件拖放到Web页的GUI和完全集成的调试支持。当创建ASP.NET应用程序时,开发人员可以使用Web窗体或XML Web services,或以他们认为合适的任何方式进行组合。每个功能都能得到同一结构的支持,使您能够使用身份验证方案,缓存经常使用的数据,或者对应用程序的配置进行自定义.如果你从来没有开发过网站程序,那么这不适合你,你应该至少掌握一些HTML语言和简单的Web开发术语(不过我相信如果有兴趣的话是可以很快的掌握的)。你不需要先前的ASP开发经验(当然有经验更好),但是你必须了解交互式Web程序开发的概念,包含窗体,脚本,和数据接口的概念,如果你具备了这些条件的话,那么你就可以在A的世界开始展翅高飞了。2.4目录服务ADSI(Active Directory Services Interface)是Microsoft新推出的一项技术,它统一了许多底层服务的编程接口,程序员可以使用一致的对象技术来访问这些底层服务。ADSI把这些服务的公共部分提取出来,同时隔离出相异的部分,程序员可以用统一的接口访问底层服务的公共部分,并延伸到底层服务的专有部分。 为了说明ADSI的接口标准和用法,首先我们解释几个重要的概念: 目录(Directory):目录类似于一个数据库,它通常包含一些描述性的、基于属性的信息。由于目录中的信息被读访问的频率比写访问的频率要高得多,所以,目录并不象数据库那样必须实现复杂的事务或者回滚机制。在许可的条件下,目录的更新操作通常是简单的更改操作。对于大量的信息查找或者信息检索要求,目录应该快速给出应答。为了提高性能和可靠性,并降低应答时间,分布式的目录信息可能需要在广阔的网络范围内进行复制操作。因为引入了复制机制,所以在复制点之间,暂时的不一致是难以避免的,只要最终能够同步即可。目录服务(Directory Service):目录服务所表达的含义与目录紧密相关,它是指目录信息源与针对这些信息源的服务结合起来使得这些信息可被用户使用。 一个典型的目录服务具有以下几个特性: 安全特性:管理员可以对目录强制使用安全特性,以便保护目录信息不被非法获取。 分布特性:一个目录可以跨越机器边界,也即目录信息可以在网络上的不同机器上。 复制特性:目录信息应尽量让更广阔范围的用户所利用。 目录服务既是一个信息管理工具,同时也是一个面向最终用户的工具。在网络上各种各样的对象数量迅速增长的今天,目录服务非常有意义。类似于网络硬件设施的集线器(hub)的概念,目录服务相当于软件集线器。 活动目录(Active Directory):活动目录是Microsoft在Windows 2000中实现的目录服务,它不仅实现了作为一般目录服务的特性,包括安全特性、分布特性以及复制特性等。它同时也扩充了一些新的特性,以便使得目录信息、更加易于管理和搜索。活动目录在实现目录服务的同时,充分考虑了目录信息的可伸缩性,从包含上百个对象的单服务器结构到成千上百服务器的百万以上的对象信息,它都可以正常工作。 目录服务是一个抽象的概念,从用户使用的角度来看,通常最为关心的是目录的名字空间以及相关的访问协议。名字空间限定了目录服务的描述能力,而访问协议必须要标准化,以便支持分布式特性。访问协议的标准为LDAP(Light-weight Directory Access Protocol)协议,它是建立在TCP/IP基础上的目录服务协议,它的信息模型包括了数据和名字空间。与其它Internet协议不同的是,LDAP还提供了一组API以便简化LDAP应用的编写工作。 LDAP也遵守客户-服务器模型,包含目录数据的一个或多个LDAP服务器建立起一个LDAP 目录树,LDAP客户通过网络连接到服务器,向服务器发出请求或者执行一些操作。LDAP服务器响应客户的请求,或者把客户的请求指引到其它包含客户指定信息的另外的LDAP服务器上。不管客户连接到哪个LDAP服务器上,他所看到的目录树视图应该是一样的。 Microsoft提供了ADSI用于开发客户方的目录服务应用系统。ADSI是一组COM接口标准,它通过LDAP协议访问目录服务。ADSI实现了目录服务的客户模型,利用ADSI,我们可以在Windows平台上开发目录服务客户应用。如果不使用ADSI,那么用到目录服务的应用必须编写代码处理每个它所用到的名字空间结构,当有新的名字空间加入时,必须修改代码以适应变化,而且,在访问目录服务时,可能要调用到底层与网络有关的API函数。从技术角度来看,ADSI用到了与ADO(Active Data Object),Microsoft推出的一致数据访问接口非常类似的技术,它通过一组双接口(Dual Interface,既可以通过vtable也可以通过自动化接口IDispatch访问属性和方法的自动化对象)提供了目录服务功能。客户程序可以根据性能要求或者开发语言的特点选择不同的编程模型。由于ADSI使用了COM和自动化对象技术,所以ADSI的编程用法比较简单,但要真正掌握ADSI,首先必须理解ADSI接口标准中用到的一些基本概念,下面列出如下:(1)名字空间(Namespace):名字空间是LDAP的基本概念,也是ADSI的基本概念。名字空间是一个有界区域,每一个给定的名字都必须在特定的名字空间中被解析,解析的过程是把名字翻译成某个对象或者名字所代表的信息。比如,电话簿形成了一个名字空间,每一个电话订户的名字被解析成电话号码;NTFS文件系统也构成了一个名字空间,每个文件名可被解析成文件对象。活动目录也形成了一个名字空间,目录中的每个对象可被解析到对象本身。(2)对象(Object)或目录对象(Directory Object):对象是指一组属性的集合,它往往代表了有形的实体,比如用户、文件等。对象通过属性描述它的基本特征,比如,用户的属性可能包括姓名、电话号码、电子邮件地址等。 (3)包容器(Container):包容器是名字空间的一部分,与目录对象一样,它也有属性,但与目录对象不同的是,它不代表有形的实体,而是其它目录对象或者包容器的容器。(4)目录树(Directory Tree):在一个名字空间中,由包容器和对象构成了一个完整的树结构。在ADSI中,树是基本的结构,从每一个包容器对象作为起点,层层深入,都可以构成一棵子树。一个简单的目录可以构成一棵树,一个计算机网络或者一个NT域也可以构成一棵树。(5)标识名(Distinguished Name,DN):活动目录中的每一个对象都有一个标识名,标识名包含对象在名字空间中的完整路径名,从基本的名字空间包容器开始,通过层层包容器对象,一直到达对象节点。不同的名字空间有不同的标识名命名规则,ADSI提供了一个命名框架,通过名字即可识别相应的目录服务和名字空间。(6)对象标识符(Object Identity):对象除了其DN名之外,它还有一个128位的全局标识符(GUID)。在ADSI内部,对象是通过标识符来识别的,而不是名字。当对象被创建时,目录服务代理程序首先为对象分配一个标识符,客户可以通过对象的“ObjectGUID”属性获得标识符,这是一个只读属性,不管对象被移动或者改名,它的标识符都不会被改变。(7)命名环境(Naming Context):命名环境是指任何一个目录子树,在ADSI中,一个服务器至少包含三个命名环境:表结构(Schema)、配置(Configuration)和用户命名环境。(8)域(Domain):在ADSI中,域是Windows NT网络的安全性边界。ADSI由一个或多个域组成。在单独的计算机上,域即指计算机本身。当多个域通过信任关系连接起来之后,所有的域共享公共的表结构、配置、全局目录(Global Catalog),从而形成域树(Domain Tree),多个域树连接在一起形成域林(Domain Forest)。域林中的所有域共享公共的表结构、配置、全局目录(Global Catalog)。 (9)站点(Site):站点是指一个或多个通过TCP/IP连接起来的子网。通常,站点内部的子网通过可靠的网络连接起来。从编程技术来看,ADSI只是一些COM接口和COM组件的标准,但ADSI表达信息的方式是革命性的。名字空间的概念体现了ADSI表达信息的广泛性;域和站点的概念体现了ADSI的空间广阔性,从单机到局域网,再到广域网,都可以纳入ADSI的表达范围;命名环境的概念体现了ADSI对信息的自组织、自描述特性。对象、包容器、目录树的概念体现了ADSI表达信息的基本结构方式。对象标识名和标识符两种机制结合起来,使得目录对象既有直接面对最终用户的名字特性,又有内部唯一标识的可编程特性。在ADSI出现之前,实际上我们已经有了很多可按目录方式管理的应用系统,比如文件系统、用户管理、电子邮件应用等等。ADSI抽取了这些应用对象的共性,通过一组标准化的接口实现目录对象的管理。2.5 异步消息处理2.5.1 MSMQ概述利用MSMQ(Microsoft Message Queue),应用程序开发人员可以通过发送和接收消息方便地与应用程序进行快速可靠的通信。消息处理为您提供了有保障的消息传递和执行许多业务处理的可靠的防故障方法。MSMQ与XML Web Services和.Net Remoting一样,是一种分布式开发技术。但是在使用XML Web Services或.Net Remoting组件时,Client端需要和Server端实时交换信息,Server需要保持联机。MSMQ则可以在Server离线的情况下工作,将Message临时保存在Client端的消息队列中,以后联机时再发送到Server端处理。显然,MSMQ不适合于Client需要Server端及时响应的这种情况,MSMQ以异步的方式和Server端交互,不用担心等待Server端的长时间处理过程。虽然XML Web Services和.Net Remoting都提供了OneWay属性来处理异步调用,用来解决Server端长方法调用长时间阻碍Client端。但是不能解决大量Client负载的问题,此时Server接受的请求快于处理请求。一般情况下,OneWay属性不用于专门的消息服务中。2.5.2基本术语和概念“消息”是在两台计算机间传送的数据单位。消息可以非常简单,例如只包含文本字符串;也可以更复杂,可能包含嵌入对象。消息被发送到队列中。“消息队列”是在消息的传输过程中保存消息的容器。消息队列管理器在将消息从它的源中继到它的目标时充当中间人。队列的主要目的是提供路由并保证消息的传递;如果发送消息时接收者不可用,消息队列会保留消息,直到可以成功地传递它。“消息队列”是Microsoft的消息处理技术,它在任何安装了Microsoft Windows的计算机组合中,为任何应用程序提供消息处理和消息队列功能,无论这些计算机是否在
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025第十三届贵州人才博览会黔东南州企事业单位招聘模拟试卷及1套参考答案详解
- 2025广东清远市英德市招聘教师222人模拟试卷及答案详解(必刷)
- 2025年4月重庆市妇幼保健院部分岗位招聘考前自测高频考点模拟试题及答案详解(名师系列)
- 2025年宜昌市西陵区公开招聘40名社区专职工作人员考前自测高频考点模拟试题附答案详解(模拟题)
- 2025江西省中小学教师及特岗教师招聘笔试有关事项提示模拟试卷及答案详解(名师系列)
- 商业摄影师安全培训强化考核试卷含答案
- 2025贵州省自然资源厅直属事业单位第十三届贵州人才博览会引才8人模拟试卷及一套答案详解
- 2025年盱眙县事业单位公开招聘人员87人模拟试卷及参考答案详解1套
- 胶囊剂工安全素养水平考核试卷含答案
- 2025福建石狮农商银行春季招聘8人考前自测高频考点模拟试题完整答案详解
- 2024年度造纸厂并购合同
- 资深船长:18天终于把船舶抵达美国加州的注意事项理清了
- 植物生理学第七章细胞信号转导
- DB32T-乡镇农产品质量安全监管机构建设规范编制说明
- CJ/T 124-2016 给水用钢骨架聚乙烯塑料复合管件
- 一例晚期直肠癌多发转移患者镇痛治疗病例分享
- 七年级数学(上)有理数混合运算100题(含答案)
- 公共事业行业财务人员培训:财务管理与预算编制
- 《工业互联网技术导论》 课件全套 第1-10章 智能制造与工业互联网-工业人工智能
- 定向钻机弯头调整方法
- 离婚协议书(完整版)WORDx(二篇)
评论
0/150
提交评论