第二章 软件开发平台与软件系统架构

声明:本文为作者阅读《软件系统框架与开发环境》后的摘录笔记

1  Java的三个开发平台

Java EE 企业版

Java SE 标准版

Java ME 微型版

 

Applet技术

<HTML>

 <BODY BGCOLOR="#FFFFF0">

       <H1 ALIGN=CENTER>Running AnApplet</H1>

       <APPLET codebase="bin/"CODE=demoApplet.class   archive=”demoApplet.jar”

WIDTH=300 HEIGHT=100>

                   <paramname ="msg" value = "Hello, this is a test.">

         </APPLET>

 </BODY>

</HTML>

 

  <applet>标签有三个属性,code属性提供载入的Applet字节码文件名;

   Codebase为文件路径,相对路径

   Archive

<applet>属性表

align

·          left

·          right

·          top

·          bottom

·          middle

·          baseline

·          texttop

·          absmiddle

·          absbottom

定义 applet 相对于周围元素的对齐方式。

alt

text

规定 applet 的替换文本。

archive

URL

规定档案文件的位置。

codebase

URL

规定 code 属性中指定的 applet 的基准 URL

height

pixels

定义 applet 的高度

hspace

pixels

定义围绕 applet 的水平间隔。

name

unique_name

规定 applet 的名称(用在脚本中的)。

vspace

pixels

定义围绕 applet 的垂直间隔。

width

pixels

定义 applet 的宽度

HTML5 中不支持<applet> 标签。请使用 object 元素 标签代替。

HTML 4.01 中不赞成使用 <applet> 元素。

java 1.2 之后利用数字签名来证明外来applet代码源的可靠性,从而获得访问本地资源的更多权限。为此,将class文件打包成jar文件,在利用JDK提供的jarsign工具对其进行签名,例如:

jarsigner -keystore bin/demo.jks bin/demoApplet.jar kpDemo

 

.jks 文件为是JAVAkeytools证书工具支持的证书私钥格式。

cer是证书的公钥。

 

 

<Object>标签

定义一个嵌入的对象。请使用此元素向您的 XHTML 页面添加多媒体。此元素允许您规定插入 HTML 文档中的对象的数据和参数,以及可用来显示和操作数据的代码。

<object> 标签用于包含对象,比如图像、音频、视频、Java appletsActiveXPDF 以及 Flash

object 的初衷是取代 img applet 元素。不过由于漏洞以及缺乏浏览器支持,这一点并未实现。

 

Servlet技术

运行在服务器端的小程序。运行在Web容器中,客户通过HTTP协议发送请求。

搭配配置文件 web.xml

<servlet>包含如下子元素

<servlet-name>,用于为Servlet命名

<servlet-class>,指定Servlet程序代码文件的路径

<servlet-mapping>,指定Servlet程序的URL,作为用户界面网页与该程序之间的对接标识。一个完整的URL包含三个部分(服务器域名,应用名,逻辑路径名)。

<init-param>,提供环境参数,相当于JavaApplet配套HTML文档中的<param>,包含<param-name><param-value>

 

2  Java集成开发工具

2.1   Java SE的架构相关技术

Java SE软件架构重要技术:对象反射,对象序列化,异常处理,线程并发控制,集合类。

  1  Java的反射技术

      Java的反射技术支持对象的动态辨识和动态创建,甚至是对象结构的动态修改,而对象序列化特性则支持对象在分布式系统构件之间的交换。

 2  Java的对象序列化技术

 3  Java的异常处理技术

 4  Java线程的并发控制

 5  Java的集合类

 

3   Visual Studio.NET框架

  Visualstudio是微软.NET平台的系列继承开发工具。.NET平台主要有visual Studio系列工具、CLR.NET类库组成,其特点是通过多种开发语言提供了众多的软件框架及其配套的构建,并且通过CLR把上述框架集成为一个整体,微软将其称为.NET框架。Java EE.NET平台比较,主要区别:①Java EE主要面向B-S应用,而.NET平台在桌面应用开发方面也提供了许多新技术,例如基于Windows FormsWPFwindows presentation foundation)的开发技术;②Java EE 1.4规范定义的本质上还是一种面向对象的开发平台,Java EE 1.5及其后续版本的规范才全面向基于框架的方向发展,而.NET平台一开始就是基于框架的开发平台;③Java EE是基于Java语言的开发平台,而.NET支持的开发语言包括VBVC++C#F#

3.1  CLR及其相关概念

   把不同开发语言的框架集成起来具有重大意义,.NET平台能做到这点,主要得益于CLRCommon Language Runtime),它实际上是微软为.NET平台提供的虚拟机,比Java平台中的JVM功能更强大。CLR不仅可以为高级语言屏蔽不同计算机平台之间的差别,还可以支持多种语言开发。

CLR相关的四个基本概念:

CILCommon IntermediateLanguage),它是一种平台无关的中间语言,基于CLR的高级语言编写的程序编译后都将成为CIL代码,CIL代码不能直接在操作系统上执行,需要在CLR的支持下才能运行。

JITJust-In-Time)即时编译器,它负责CIL的解释与执行。

③程序集,在.NET平台上,应用软件“build”结果通常不是单一的EXE文件,而是一个目录结构,其中除了CIL代码外,还可包括含元信息以及资源信息文件,这就是所谓的程序集。元信息可以实现程序集的自描述,保证其在脱离开发环境后还能正常使用。

④托管代码,理论上,在一个程序集中可能同时出现需要依托CLR运行的代码和自己能够直接与操作系统进行交互的目标代码,为了区别,一般称前者为托管代码,后者为非托管代码。

3.2  扩展的B-S架构

Silverlight, 可指浏览器插件,也可指一种有微软提供的、用于支持上述插件运行的软件包,还可指一种RIArich Internet application)解决方案。Silverlight插件程序一律编译打包成一个XAP文件,他是一个标准的zip压缩文件,主要包含一个DLL文件和一个名为AppMainfest.xaml的文档,前者包含插件的程序集。后者的内容主要描述入口点信息(程序名称、类型)、运行时版本。Silverlight可以镶嵌到HTML文件中。

ActiveX控件技术,它是一种基于组件对象模型(COM)的可重用组件,可以运行在普通ActiveX控件容器中,也可以镶嵌在HTML中,有浏览器加载运行。浏览器加载ActiveX方法:浏览器通常根据系统注册表中注册的class ID从本地文件中加载运行一个控件,只有当控件还没有注册,或者已注册的版本偏低时,浏览器才会从codebase指定的位置下载控件的代码,它是一个后缀为OCX的文件,其必须是经过签名的。开发ActiveX可以用CSMFC模板,MFC ActiveX控件向导。

 4   Android平台

4.1  Android操作系统

    基于Linux内核的操作系统,对GNULinux内核进行大幅精简,删除/换掉了其中的GNU C标准库、窗口系统。图形界面开发工具等内容。

4.2  Dalvik虚拟机

    在Android平台上,每个程序都在属于自己的Dalvik虚拟机实例中运行。Android不同于J2MEDalvik虚拟机也不是按照Java 虚拟机的规范来实现的,两者区别如下:

1Java虚拟机运行Java字节码,而Dalvik虚拟机运行的则是其专有的DEXDalvikExecutable)格式代码。Android采用的是Java变成,它们被编译成CLASS文件后再转换为DEX文件后执行。

2Java虚拟机是基于栈的,而Dalvik是基于寄存器的(同.NETCLR的虚拟机一样),采用模拟寄存器可以提升虚拟机在多个方面的性能,如编译速度。

3Java虚拟机与操作系统相对立,有多重版本,可用于支持不同的操作系统,Dalvik虚拟机依赖于Linux内核的一些功能,如线程和底层内存管理机制,只能运行在Android操作系统中。

 

4.3  Android应用软件框架及其Activity构件

   系统框架分文5层:Linux内核、AndroidRuntimeDVM和核心库)、Android库、应用框架和应用层。上述构件的具体形式都是单个派生类,其基类有平台的类库提供,包括:

   1activity类,主要提供UI

   2Service 类,运行在后台,主要提供各种业务处理功能

   3 Broadcast类,主要向其他构件广播消息,并接收、处理来自其他构件的广播消息

   4ContentProvider类,主要实现了一套标准的数据存取方法,可以为其他应用提供存储于文件系统,SQLite数据库中的数据管理服务。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值