目前大多数的程序开发都与网络有关,除了文件传输、电子邮件等基本的应用外,网络资源搜索、网络游戏、网络电视、网络购物等与网络相关的各种应用软件也都属于网络应用编程,即使是MIS(信息管理系统)和GIS(地理信息系统)等现在也都基于网络来开发。编程模式既可以是C/S,也可以是B/S。
网络程序的开发可以基于操作系统提供的支持,也可以基于各厂商的网络应用体系结构,利用其提供的平台和接口函数(API)开发网络应用程序。
1.操作系统网络协议栈结构
目前的操作系统都是网络操作系统,对TCP/IP协议栈的支持是每个操作系统必备的功能。以Windows操作系统为例,图10-1从开发者的角度显示了Windows网络协议栈的结构。最上层对应于TCP/IP的应用层。WinSock API是Windows的网络程序设计接口,位于TCP、UDP和IP层之上,提供基于套接字编程所需的基本函数,基于WinSock可以开发具体的上层应用程序。NDIS(网络驱动接口规范)和网卡驱动程序属于操作系统层,二者一起负责驱动网卡发送和接收MAC帧,并向上层协议交付IP数据报。
操作系统协议栈决定了所开发的网络程序的控制层次,例如,如果基于WinSock API编写一个FTP服务器程序,那么FTP协议的所有命令和响应报文都可以通过程序编写实现,而TCP、IP协议则内置在操作系统中,在程序中可以提供端口号、IP地址等,但绝无可能修改MAC帧的MAC地址。
图10-1 Windows网络协议栈
2.网络应用体系结构和开发平台(www.daowen.com)
为了开发基于Web的应用,主要厂商都推出了自己的软件基础架构和集成化开发平台,如Microsoft的.NET、IBM的WebSphere、Oracle的Oracle9和Sun的ONE,以便提供全面的解决方案。
微软的.NET是基于因特网和Web的体系结构,使用HTTP、XML、SOAP(用于请求Web服务的标准格式)和UDDI(用于搜索和发现Web服务的标准)为用户提供Web服务。.NET定义了.NET框架(.NET Framework),为开发应用程序提供类库和开发平台,其中包括ASP.NET(用于Web编程)、ADO.NET(用于数据库)等。应用程序运行需要两个核心模块CLR(通用语言运行时,CLR用于解释中间代码)和.NET Framework类库(为程序员提供软件组件)
Sun的ONE(开放网络环境)体系结构以Java语言为核心,包括J2SE、J2EE、J2ME等一系列的标准、技术及协议。J2SE(Java 2标准版,现已改名为JavaSE)用于桌面应用系统。J2ME(Java 2微缩版)用于智能卡、手机、PDA、电视机顶盒等嵌入式系统。J2EE(Java 2企业版)平台指定了一系列的接口和方法,包括JSP(用于Web编程)、JDBC(用于数据库)等。
3.API
API(应用程序编程接口)是一套集成在操作系统中的函数集,是开发人员开发应用程序的编程接口。例如,Windows操作系统提供了功能强大的Windows API,它和Windows系统一起被安装在计算机中。
Windows操作系统除了能协调应用程序的执行、分配内存、管理系统资源外,它同时也是一个庞大的服务中心,调用这个服务中心的各种服务(每个服务实际上就是一个API函数),可以帮助用户编写各种Windows应用程序。
API函数是开发系统底层程序的重要接口,Windows本身的许多应用程序都是通过API来实现的。API函数封装在动态链接库(DLL)中,对API函数的调用都需要加载相应的DLL,对Win32来说,常用的API函数大多封装在KERNEL32.dll、GDI32.dll、USER32.dll等几个动态链接库中,但在Microsoft Visual C++中调用API函数不需要额外加载动态链接库,因为默认的Visual C++设置中已将常用的DLL加载到程序中了。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。