JAVA远程通信与应用问题的初探

发表时间:2019/6/13   来源:《知识-力量》2019年9月30期   作者:尚红
[导读] JAVA编程语言功能十分强大,作为面向对象语言的典型代表,它不仅具备平台无关性的特点,还提供包括多线程在内的多种特性。与此同时,JAVA在远程通信方面的应用也十分广泛,J2ME等技术也是广受欢迎。尽管应用广泛,但是JAVA远程通信的详细技术并不为人所熟知。于是,对于JAVA远程通信及应用问题是值得探讨的。本文基于网络远程通信的原理及相关技术,介绍了JAVA语言有关远程通信部分的技术及其解析,阐述了
(辽宁广告职业学院,辽宁省 沈阳市 110148)
摘要:JAVA编程语言功能十分强大,作为面向对象语言的典型代表,它不仅具备平台无关性的特点,还提供包括多线程在内的多种特性。与此同时,JAVA在远程通信方面的应用也十分广泛,J2ME等技术也是广受欢迎。尽管应用广泛,但是JAVA远程通信的详细技术并不为人所熟知。于是,对于JAVA远程通信及应用问题是值得探讨的。本文基于网络远程通信的原理及相关技术,介绍了JAVA语言有关远程通信部分的技术及其解析,阐述了JAVA远程通信相关技术的应用及其有关问题。
关键词:JAVA;远程通信;应用

 
           随着计算机网络技术的快速发展,通过网络传输数据已经十分普遍。与此同时,利用计算机网络进行远程通信的技术应用也就更容易受到用户的喜好和欢迎。远程通信不仅仅可以满足用户的社交需求,还可以为企业用户提供远程会议等工作需要。JAVA语言功能强大,在远程通信方面也具有自己的特点,并且能够为远程通信提供可靠稳定的技术支持与服务,比如JMS、SOAP等。我们能够在包括Android Application、JSP Web等多类熟悉的软件应用当中看到JAVA远程通信技术的身影。本文将对上述技术及其应用进行详细的阐述,并给出应用实践建议。
           1.远程通信
           1.1远程通信概述
           远程通信,本义指的是遥远的通信共享,但是在技术领域,我们将远程通信定义为:根据实际传输需要,采取模拟信号调制技术或者数字信号调制技术,在需要建立连接的两个系统之间进行的多媒体及其他电子数据信息的远程传输。在许多国家,远程通信及其相关应用都会交由政府部门来进行管理和控制。美国甚至成立了美国邮政总局,并且制定了相关法案来确保有关部门的控制能力。
           1.2远程通信传输分类及方式
           远程通信的传输方式,包括了同步传输方法和异步传输方法。其中需要强调的是,同步传输方式以始终信号同步的数据位的块的形式进行传输,它通过使用特殊的字符进行同步工作,并且将会对同步情况采取周期性检查的方式来确保相关工作的正确性。关于异步传输方式,需要传输的数据信息将采用一组位形式的字符进行单词发送。具体实现方法为:字符将以两个位置上,分别代表“开始位”和“停止位”的数据为“分界线”。同时,“分界线”中还存在一个校验位来实现错误的检查和控制。
           这里我们介绍两种远程通讯的技术手段选择:RPC和Web Service。
           RPC的全称是Remote Procedure Call Protocol,即远程过程调用。RPC采用的具体方式位C/S模式,即客户端/服务端结构。它采用HTTP协议,将相关请求发送到服务端之后,等待服务端返回所需结果。
           关于Web Service,顾名思义,此项技术所提供的服务方案是以Web容器位基础的。在底层,Web Service使用的同样是HTTP协议。我们可以将Web Service视作一个运行在远端的服务器。
           2.JAVA远程通信技术
           2.1 JAVA语言概述
           JAVA语言不仅是应用广泛、功能强大的面向对象编程的语言,而且还被认为是一种极具特点和优势的互联网编程选择。起初,JAVA语言由美国的SUN公司研制与开发,当时的开发初衷正是基于如今我们所熟知的国际互联网——Internet。JAVA语言能够应对复杂的系统设计,进行安全可靠的处理。JAVA语言拥有强大的类库和符合网络通信开发特点的特性和选项,因此,JAVA远程通信技术值得我们去进行深层次的开发与研究。
           2.2 JAVA远程通信技术基础[1]
           JAVA编程语言的出现与成功,充分证明了面向对象编程的优势。通过充分发扬面向对象的特点,JAVA语言能够轻松地适应大型复杂系统的开发需要。JAVA语言并不仅仅是在应用软件的设计与开发上十分成功,它在网络开发领域中也极具竞争力并且已经占据了重要的位置。JAVA可以轻松地实现网络通信,实现数据在网络上进行远程通信传输。不仅如此,使用JAVA可以方便地开发出各类中间件、Web服务器来实现负载均衡的效果,你甚至可以使用JAVA开发一套属于自己的邮件通信系统、消息通信系统等通信类系统。
           2.3 JAVA远程通信技术程序接口[2]
           2.3.1 InetAddress和InetSocketAddress类
           JAVA中的InetAddress和InetSocketAddress类是将IP地址相关功能以对象的形式进行封装的类,他们提供对于IP地址的字节数据表示和字符串表示两种方式,同时,InetSocketAddress类还支持端口信息的表示。
           InetAddress类不提供构造方法,它支持在代码中直接采用静态方法获取对象。比如,通过“InetAddress addr = InetAddress.getLocalHost();”这行代码可以返回本地地址的对象。而InetSocketAddress则提供了构造方法,因此通过传入参数可以直接创建新的对象。比如,通过“InetSocketAddress addr2 = new InetSocketAddress("localhost",8080);”这部分代码,可以为本地地址创建对象,同时还包含了端口8080的信息。


           2.3.2 URL和URLConnection类
           URL的全称实际上是Uniform Resource Locator,即统一资源定位器。它所指向的是网络中的资源地址,本质上是对应于IP地址等内容的映射。在JAVA中,创建URL对象和URL连接,首先需要使用URL类的构造方法,以字符串为参数获得对象;其次,调用URL类的openConnection()方法来获取返回的URLConnection对象并设置相关参数;最后,调用对应方法向网络资源发起POST或GET请求。
           2.3.3 Socket和ServerSocket类[3]
           通信过程中,两个应用程序通过一个名为双向通信连接的链路实现数据信息的交换。而Socket实际上指的就是双向中的一端。在TCP/IP协议下,Socket由IP地址和相应的端口来对顶一个对象。服务端监听是否有客户端发出连接请求,于是当客户端向服务端发出连接请求时,服务端会向客户端返回一个接受消息。到此刻,连接便正式建立。总而言之,Socket可以使得客户端程序与服务端程序进行数据通信,其基本步骤为创建Socket、打开连接到Socket的I/O流、对Socket执行R/W操作、关闭Socket。而ServerSocket在C/S的通信方式中,Server端用来监听特定端口上Client端连接的同时,还可以发送相关的信息。
           2.4 JAVA远程通信详细技术
           2.4.1 JMS
           JMS全称为JAVA Message Service,即JAVA消息服务应用程序接口。它实际上是一个JAVA平台提供的关于面向消息中间件的API。JMS的具体用途是在两个需要建立通信连接的应用程序之间发送消息数据,以此来实现异步通信。与此同时,JMS还具有很多优势。得益于JAVA语言本身的特性,JMS技术也是具有平台无关性的特性的。因此,绝大多数的消息中间件都能够直接支持JMS。
           我们可以将JMS通俗地理解为两个应用程序之间传递通信消息的中间人,通过它所能提供的中间转发服务,两个建立连接的应用程序可以较好地实现耦合程度的降低。
           我们之所以需要JMS,是因为在JAVA开发的过程中,两个应用程序如果需要建立连接并进行通信操作,首先应当对互相有一个基础的认识和了解。如果不是这样,那么二者的通信将会变的非常复杂且困难。也正是基于这样的考量,JMS被设计称为一个解决上述问题的有效方案。同时,与下文将要介绍的RMI不同的是,JMS发送方发送消息的时候,接受方不需要实时在线建立连接。这其实就是我们所熟知的一部传输。此外,JMS会确保消息只会被发送一次,这样做可以有效地避免出现重复消息创建的问题。
           JMS提供多种传送模型,同时支持点对点模型和发布/订阅模型。在点对点的发送模型中,应用程序主要由发送者、接收者和消息队列构成。该模型具有以下几个特点:一个消息只有一个接收者,发送者和接收者无时间依赖以及接收者接受消息的同时会给发送者发送确认消息。关于发布/订阅模型,发布者发布任何的消息,都会传递给所有的客户端。它所具备的特性如下:一个消息可以有多个接收者,发布者和订阅者有时间依赖等。
           3.JAVA远程通信的应用[4]
           众所周知,JAVA能够构建多个种类的大型复杂系统。当今市场上应用到远程通信技术的软件系统也是层出不穷,JAVA也正在其中发挥着重要的作用。在JAVA Web应用当中,JAVA通过远程通信技术为Browser端的使用者们提供者各项访问服务。通过JAVA支持的Web服务,完全可以实现基于浏览器的远程通信,如视频会议、远程面试等功能。作为移动开发的重要手段,JAVA远程通信技术在Android开发中发挥着无可替代的作用。社交类、视频类安卓应用的背后,都是JAVA远程通信技术在背后提供可靠且安全的技术支撑。在企业级应用当中,远程通信则有着更加频繁的需求。分公司之间,企业与企业之间的数据通信,都需要通过JAVA构建的专属系统发光发热。
           总之,JAVA出现的地方几乎都存在着网络编程的特性,而这种现实特性也使得JAVA远程通信技术的应用范围也随着日益增长的需求正在不断地发展。
           4.远程通信技术应用的建议
           尽管JAVA远程通信技术的应用已经十分成熟,并且能够支撑起大多数的应用需求。但是,我们还是希望JAVA远程通信能够与其他技术相互融合,互相学习,从而产生更好的效果。与此同时,我们需要更多地给予远程通信技术及其应用的安全问题以关注。只有在面临复杂的运行环境时保护好远程通信的安全,才能取得用户的信任并取得真正的长远发展。
           除此以外,我们期待更多的远程通信技术方案与实施模型的创新。技术能够解决管理问题,而管理的思想又能够给技术的发展以启发。通过实践不断地去检验技术及其方案本身,勇敢地将JAVA相关技术应用到更多的场景当中,相信一定能够取得更多更大的进步。
           5.结语
           JAVA网络通信技术已经十分成熟,远程通信的发展和壮大也期待着JAVA不断的进步。本文对于JAVA远程通信技术及其应用问题的详细阐述,能够为阅读者提供较好的参考和收获。我们也希望通过努力,将远程通信技术的问题变得更少,将包括JAVA在内的各类远程通信技术方法和应用方案模型变得强大。
参考文献
[1]吴建东,黄国辉.基于客户机服务器模式的Java通信程序的实现[J].计算机与现代化,2005(10):78-79.
[2]刘邦桂,李正凡.用Java实现流式Socket通信[J].华东交通大学学报,2007,24(5):110-112.
[3]资武成,贺志苗.基于SOCKET的JAVA网络编程[J].湖南人文科技学院学报,2003(2):36-38.
[4]苗专生.基于Java多线程的远程Client/Server通信的实现[J].红河学院学报,2005,3(3):28-30..
 
 
投稿 打印文章 转寄朋友 留言编辑 收藏文章
  期刊推荐
1/1
转寄给朋友
朋友的昵称:
朋友的邮件地址:
您的昵称:
您的邮件地址:
邮件主题:
推荐理由:

写信给编辑
标题:
内容:
您的昵称:
您的邮件地址: