Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sockets 如何使用OSGi开发客户机-服务器系统?_Sockets_Client Server_Osgi - Fatal编程技术网

Sockets 如何使用OSGi开发客户机-服务器系统?

Sockets 如何使用OSGi开发客户机-服务器系统?,sockets,client-server,osgi,Sockets,Client Server,Osgi,最近几天我正在学习如何使用OSGi进行开发,但面临很多问题 我不知道如何以Equinox为框架设计基于OSGi的客户机-服务器系统。我应该使用套接字连接来实现这一点,还是使用分布式模型 我还不清楚是否需要导入一些第三方软件包来支持我在socket、jdbc、swing等上的编程,或者Equinox或其他OSGi开源项目提供的现有软件包 第一次在这里提问,有人能帮我吗?请看一下OSGi远程服务实现(更多详细信息请参见OSGi规范): Web服务(Apache CXF:分布式OSGi)—— Ecl

最近几天我正在学习如何使用OSGi进行开发,但面临很多问题

我不知道如何以Equinox为框架设计基于OSGi的客户机-服务器系统。我应该使用套接字连接来实现这一点,还是使用分布式模型

我还不清楚是否需要导入一些第三方软件包来支持我在socket、jdbc、swing等上的编程,或者Equinox或其他OSGi开源项目提供的现有软件包


第一次在这里提问,有人能帮我吗?

请看一下OSGi远程服务实现(更多详细信息请参见OSGi规范):

  • Web服务(Apache CXF:分布式OSGi)——

  • Eclipse通信框架-

干杯


Dmytro在OSGi中使用套接字并不比在“普通”Java中复杂多少。您设计应用程序的方式与通常的方式基本相同,但通过使用OSGi获得模块化和服务的好处

例如,您可以通过引入类似于
WorkerFactory
的东西来分离连接接受和请求处理,或者在客户端和服务器上重用服务;这些都是OSGi擅长的事情

OSGi作为一种“技术”(就其概念而言)并不要求任何特定的交互方法。概要规范提到了远程服务(又称分布式OSGi),但它也包含一个HTTP服务规范,即Servlets是您的东西


简而言之,只需选择最符合您的场景的交互解决方案,并让OSGi帮助您实现服务和模块化。

HTTP模型可能是最简单的实现,而不是基于低级套接字处理和二进制协议的协议

我要问的第一个问题是,您的客户机和服务器需要交换什么样的信息。如果您可以使用HTTP(在许多情况下您可以),那么您可以在服务器端使用servlet,在客户端使用HTTP客户端库,并使用RESTful通信模型


Servlets很容易在OSGi中使用HttpService实现,例如,请参见

您可以使用Socket或RMI、Web服务、Servlets或MQ或您知道的任何其他分发机制。我第一次收到的答案是:)我知道两种方法,您提到的Apache CXF和Socket。考虑到我只想构建一个演示程序,比如一个用户登录和注册模块,我想知道最简单的socket方式会怎么样,Equinox框架中是否包含任何实现?u建议的第二种方法是第三方软件包吗?Equinox系统包仅包含OSGi核心规范。其他一切都是可选的。交换的数据主要是关于数据库查询和更新,我不熟悉servlet编程,因此,我对使用http服务犹豫不决。使用http可能需要您在开始时多学一点,但会阻止您通过做其他人已经为您整理好的低级工作来重新发明轮子;-)