1 Echo客户客户表示逻辑被封装在类EchoClient1中,该类提供了提示服务器信息的用户界面,然后通过循环向Echo服务器发送文本行。EchoClientHelper1类的getEcho方法负责文本字符串发送,以及回显消息接收的处理。类
Internet协议Echo是一项著名Internet服务的基础。Echo协议只允许客户每次向服务器发送一行文本,并接收服务器的、关于每行文本的回显。在实际中,许多Internet主机都有一个默认Echo服务器(运行于端口号7上),软
前面介绍了如何使用无连接数据包Socket IPC机制实现Daytime服务。现假如我们希望使用流式Socket取代无连接数据包Socket,以实现同样的服务。由于修改只影响服务逻辑,因此只需要对服务逻辑层的java类进行进一步
1 客户端软件表示逻辑:DaytimeClient1 java类封装了客户端的表示逻辑。该类的代码只关注从用户处获取输入(服务器地址)和向用户显示输出(时间戳)。为获取时间戳,向helper类发起了一个方法调动。该方法隐藏了
如图3-13所示,三层软件体系结构(包括客户端软件和服务器端软件)一般可以分成表示层、应用层和服务层三层。基于三层软件体系结构来构建客户 服务器应用,可以按如下方式定义每一层的具体内容:表示层:在服务端
为了更好地向读者介绍客户 服务器应用的实现方法,下面将阐述基于三层软件的客户 服务器应用开发方法和过程,即如何构建提供网络服务所需要的软件。这里涉及两套软件或程序:一套针对客户进程,另一套针对服务器
尽管客户 服务器范型的概念是比较简单的,但是在实际应用中仍然有许多关键问题需要解决,如服务会话、服务协议、进程间通信、数据表示等。1 服务会话在客户 服务器应用环境中,用术语会话(session)表示服务器和
3 4 客户 服务器范型概述与应用开发方法3 4 1 客户 服务器范型概念术语客户 服务器在计算领域中有多种含义。它可以指网络体系结构,其中的网络计算机为实现资源共享而分别承担不同功能的角色。在客户 服务器体
数据包Socket API支持离散数据单元(即数据包)交换,流式Socket API则提供了基于UNIX操作系统的流式IO的数据传输模式。根据定义,流式Socket API仅支持面向连接通信。如图3-7所示,流式socket为两个特定进程
面向连接数据包Socket API并不经常使用,因为该API提供的连接非常简单,通常不能满足面向连接的通信要求。而流式Socket是面向连接通信中更典型和实用的方法。表3-2介绍了在DatagramSocket类中用于创建和终止连接
3 2 数据包Socket API3 2 1 无连接数据包Socket API数据包Socket在应用层可以支持无连接通信及面向连接通信。这是因为,尽管数据包在传输层发送和接收时没有连接信息,但Socket API的运行时支持可以为进程间
Socket API最早作为Berkeley UNIX操作系统的程序库,出现于20世纪80年代早期,用于提供IPC功能。现在主流操作系统都支持Socket API。在BSD、Linux等基于UNIX的系统中,Socket API都是操作系统的一部分。在个
本章首先介绍Socket API的基本概念,接着详细阐述了数据Socket和流式Socket的区别和编程方法,然后讨论客户 服务器范型的基本概念和实现,接着重点介绍基于三层软件的客户 服务器应用开发方法,最后给出客户 服
美国国家标准与技术研究院(NIST)定义了云计算的三种服务模型:基础设施即服务(IaaS)、平台即服务(PaaS)、软件即服务(SaaS)。3种类型云服务对应不同的抽象层次,如图2-14所示,它们的详细描述如下。1)基
移动代理是一种可移动的程序或对象。如图2-13所示,在移动代理范型中,一个代理从源主机出发,然后根据其自身携带的执行路线,自动地在网上主机间移动。在每一主机上,代理访问所需的资源或服务,并执行必要的任
如图2-11 所示,网络服务范型由服务请求者、服务提供者(对象)和目录服务三者组成。网络服务范型的工作原理为:服务提供者将自身注册到网络上的目录服务器上;当服务请求者(进程)需访问服务时,则在运行时与
对象请求代理范型由对象请求者(object requestor)、对象提供者(object)和对象请求代理(Object Request Broker,ORB)组成(如图2-10所示)。在对象请求代理范型中,进程向对象请求代理发出请求,对象请求
2 6 分布式对象范型分布式对象范型将面向对象应用到分布式系统中,是面向对象软件开发技术的自然扩展。该范型使应用程序可访问分布于网络上的各个对象。通过调用对象的方法,应用程序可获取对服务的访问。2 6 1
对于基本的网络协议和基本的网络应用程序来说,消息传递范型是适用的。但是,随着应用程序变得越来越复杂,需要为网络编程提供进一步的抽象。最好有一种范型能使开发人员可以像编写在单处理器上运行的传统应用程
消息系统范型或面向对象的中间件(Message-Oriented Middleware,MOM)是在基本的消息传递范型的基础上扩展而来的。如图2-5所示,在这种范型中,消息系统充当一些相当独立的进程之间的中介。不同的进程以非耦合