核心服务采用Web Services等Internet/Intranet技术标准
Web services是建立可互操作的分布式应用程序的新平台。它定义了应用程序如何在Web上实现互操作性。具有平台无关性、编程语言无关性。构成Web service平台的技术有:XML 、UDDI、SOAP、WSDL。
在我们的设计的系统中对异构环境及跨网络其它业务系统的通信与协作采用Web Service实现。
采用基于模块化组件的软件结构基础
模块化组件技术是一种近来才开始日益普及的软件开发技术。模块化组件,是一种可部署软件的代码包,其中包括某些可执行模块。模块化组件单独开发并作为软件单元使用,它具有明确的接口,软件就是通过这些接口调用组件所能提供的服务,多种组件可以联合起来构成更大型的组件乃至直接建立整个系统。组件必须是自包含的,组件设计中必须包括需求、源代码和可执行代码、接口规范、分析和设计模型、测试和其他同类术语。组件的实现必须支持一种或者多种其用户所希望获得的接口。
模块化组件技术的多样性让采用组件技术的项目大大降低系统风险。当软件工作人员更新系统中旧有的组件时,采用模块化组件系统的机构仍然可以正常运转。
采用模块化组件技术开发大规模、不同类乃至分布式的系统速度快而成本也得到降低。项目研发可建立标准结构、业务服务构件、组件库和构件重用策略,快速生产出效率高、成本低、质量好的企业级软件。
J2EE技术体系
该项目网站建设需要充分考虑扩展业务范围,建立高效、可靠、易扩展的对外发布服务及后端信息发布平台。这些服务要具备以下的特点:
高可用性:保证系统的不间断运行;
安全性:保护系统和数据的安全;
可依赖性和可扩展性:保证处理的正确和迅捷。
通常这些服务是由分布的应用程序组成的,包括前端数据端和后端数据源以及它们之间的一层或几层,这些中间层提供了把商业功能和数据相结合的功能。这些中间层把客户端从复杂的商业逻辑中分离出来,利用成熟的INTERNET技术使用户在管理上所花费的时间最小化。
根据上述特点,我们将主流的服务器端技术架构.NET和J2EE进行比较。
|
Microsoft.NET |
J2EE |
主要差异 |
|
C# 程序语言 |
Java 程序语言 |
C# 和 Java 都源自 C/C++。两者有相当多共同的主要特色(包括:自动内存管理、阶层式名字空间)。C# 从JavaBeans 学来一些组件观念(propertie/attribute、event),还新增了一些特色(比方说 metadata tag),但是使用不同的语法。
Java 可以在任何有 Java 虚拟机器的平台上执行。C# 目前只能在 Windows 上执行。
C# 使用IL的执行时期系统。透过 just-in-time (JIT) 的编译方式或原生码编译方式来执行。Java 程序是透过 Java 虚拟机器来执行,但是也可以编译成原生码。 |
|
「.NET」通用组件 |
Java core API |
高阶的「.NET」组件将支持透过 XML 和 SOAP 来存取。 |
|
Active Server Pages+ (ASP+) |
Java ServerPages (JSP) |
ASP+ 将可以使用 Visual Basic、C#、和其它语言来撰写程序片断,然后被编译成IL的格式(不像以前的 ASP 每次都需要直译)。JSP 使用 Java 的程序代码,编译成 Java 的 bytecode(可以需要时才编译,也可以预先编译好)。 |
|
IL 执行时期系统 |
Java 虚拟机器、CORBA IDL、CORBA ORB |
「.NET」允许不同的程序语言使用 Windows 上的同一套组件。
Java 允许 Java bytecode 在兼容的虚拟机器上都可以执行。
CORBA 允许不同语言和不同平台的对象互相沟通(必须有适合的 ORB)。J2EE 中可以使用CORBA,但两者的整合度不算是很紧密。 |
|
Win Form 和 Web Form |
Java Swing |
类似的 Web 组件在标准的 Java 平台中非常多,有些其它厂商在 Java IDE 中提供一些组件。
MS Visual Studio IDE 提供 Win Form 和 Web Form 的 RAD 工具,目前尚未有其它厂商宣称要支持 Win Form 和 Web Form。许多 Java IDE 工具都支持 Swing。 |
|
ADO+ 和 SOAP 的Web 服务 |
JDBC、EJB、JMS 和 Java XML 链接库(XML4J、JAXP) |
ADO+ 允许透过 HTTP 进行 XML 资料交换(在远程资料对象和多层的程序之间),也就是SOAP。「.NET」的 Web 服务使用 SOAP 的讯息模型。EJB、JDBC 等则是把资料交换的通讯协议交由程序员自行决定,用 HTTP、RMI/JRMP 或 IIOP 都可以。 |
此外,J2EE除了借助java语言在的平台无关性,能运行在任何支持java虚拟机的平台,而需不依赖于产品厂商外,在性能上也会有所保证。在一些测试结果表明java在 –server编译参数下,性能超过 C++和C#。估计java –server参数内部有惊人优化手段。java 1.4中的无意义计算剔除。
在该项目中,我们建议采用SUN的J2EE架构。J2EE 平台提供了一个基于组件的方法,来设计、开发、装配及部署企业应用程序。J2EE 平台提供了多层的分布式的应用模型、组件再用、一致化的安全模型以及灵活的事务控制。基于此可以比以前更快的速度向市场推出创造性的客户解决方案,而且,由于平台独立的、基于组件的J2EE 解决方案不会被束缚在任何一个厂商的产品和API上。使用J2EE的特性:
组件开发: Applet组件,Application Client 组件,Web组件和EJB组件。
层次化:客户层、WEB层、业务层、企业信息系统层。
查询服务:能让客户层和Web 层代码查询并引用其他代码和资源的方法。
安全模型:J2EE 安全模型允许配置一个Web 或enterprise bean 组件,使系统资源只能由授权的用户访问。例如,一个Web 组件可以被配置成提示输入用户名和密码。一个enterprise bean 组件可以被配置成只让特定团体中的成员调用其某些方法。或者,一个servlet 组件可以被配置成让某个组织中的所有人都能访问其某些方法,同时只让该组织中的某些享有特权的人访问一些方法。同样是该servlet 组件,可以针对另外一个环境而被配置成让每个人都能访问其所有方法,或者仅让选定的少数人访问其所有方法。
事务处理: J2EE 事务模型使得能够在部署时定义构成一个单一事务的方法之间的关系,以使一个事务中的所有方法被处理成一个单一的单元。这是我们所希望的,因为一个事务是一系列步骤,这些步骤要么全部完成,要么全部取消。
分8页 当前为第