应用程序之间的独立数据/服务交换,需要一种软件架构 [英] Independent data/service exchange between applications,a software architecture needed

查看:91
本文介绍了应用程序之间的独立数据/服务交换,需要一种软件架构的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

亲爱的软件专家

我需要寻找办法在正在开发的应用程序与已经为某些业务开发的其他应用程序之间交换一些数据,但是这些应用程序将来有可能会被替换.我不希望我必须更改自己的应用程序我正在寻找一种通用的方式来进行这些数据交换,以便每个应用程序都可以与我的应用程序交换数据.当其他应用程序想要使用我的应用程序提供的数据或服务时,WEB服务是一个好主意并且它们是调用者,但是当我的应用程序成为调用者时,我的应用程序如何从其他软件系统获取数据或使用服务,如果替换了该系统,则无需更改源代码?

我认为如果我可以编写一个提供一些接口的软件组件,而其他软件系统实现这些接口,那么我可以通过某种方式调用这些接口的函数,就可以实现.但是我不知道如何在上面共享一个组件一台服务器(或任何其他机器),其他软件开发人员可以实现该服务器的某些接口,而我仍然可以调用其功能.

这个想法可以实现吗?如果可以,请给我一个指导,如果不能,请问我有什么解决方案吗?是否有任何文件详细讨论这种软件体系结构?

最好的问候

Dear software experts

I need to find away to exchange some data between the application I''m developing and some other applications that already developed for some business,But it is possible these applications get replaced in future.I don''t want I have to change my source code when they are replaced.I''m seeking a generic way for these data exchanging,so that every application can exchange data with my application.WEB service is a good idea when other applications want to use data or services which my application provide and they are caller,but how can my application get data or use service from other software systems when my application is caller,without I have to change my source code if that system replaced?

I think if I can write a software component which offers some interfaces,and other software systems implement those interfaces,so I can call functions of those interfaces somehow,I achieve it.But I don''t know how can I share a component on a server(or any other machine) that other software developers can implement some interfaces of it and still I can call its functions.

Is this idea can comes true?if yes may you please give me a guide line how and if no,is there any solution for my need?Is there any document to discuss this type of software architecture in detail?

Best Regards

推荐答案

有多种方法可以在应用程序之间共享信息.

一种常见的实现是基于服务器-客户端的模型(也是Web服务模式的核心).在服务器-客户端模型中,在两个应用程序(传输方法,消息,数据类型和结构等)之间定义了一个接口,您只需根据要在哪一侧(服务器或客户端)实现一个接口即可. ).您可以基于接口套接字,然后将服务器和客户端放在同一位置还是在不同的大陆都没关系.

由于您是为某些业务而构建的,因此安全性从一开始就可能值得关注(取决于应用程序).
There are a number of ways to share information between applications.

One common implementation is a server-client based model (at the heart of the web service schema as well). In a server-client model, an interface is defined between the two applications (transport method, messages, data types and structures, etc...) and you simply implement an interface depending on what side you want to be on (server or client). You can make the interface socket based and then it doesn''t matter if the server and client are co-located or in a different continent.

Since you''re building this for some business, security should probably be of concern from the start (depending on application).


我可以找到一种几乎可以解决此问题的技术,名为
"插件框架".我可以在MSDN中找到标题为"Creating
"的插件 一个插件框架".如本文所述,该技术
用于:
-无需扩展
即可扩展应用程序的功能 重新编译并将其分发给客户.
-添加功能而不需要访问
原始源代码.
-应用程序的业务规则经常更改,
或经常添加新规则.

但是此解决方案的弱点是,插件程序必须
与主应用程序位于同一文件夹中,并且必须
发生在每个客户端上.

如果服务器应用程序(在这里是该插件)可以
会很好 仅安装在本地网络和所有客户端中的服务器计算机上
只能使用服务器应用程序的安装.

让我们想象一个包含接口的通用库程序集
定义.客户端和服务器应用程序均引用此库,
服务器应用程序具有一些实现此接口的类.
LAN上某处只有一个服务器应用程序安装
并且客户端可以在本地上创建此服务器应用程序的实例
机器并使用其功能.但是关键是像插件,客户端
必须能够将服务器找到为实现该服务器的应用程序
界面,换句话说,服务器必须以某种方式向客户端介绍自己.

此规范有任何技术吗?受到人们的高度赞赏
如果您向我介绍这项技术.

最好的问候
I could find a technology which almost solve this problem,named
"plug-in framework".I could find it in MSDN with title "Creating
a plug-in framework".As mentioned in this paper this technology
is used:
-To extend an application''s functionality without the need
to re-compile and distribute it to customers.
-To add functionality without requiring access to the
original source code.
-The business rules for the application change frequently,
or new rules are added frequently.

But the weak point of this solution is that plug-in assembly must
located in the same folder as the main application and this must
happens on each client.

It would be nice if the server application (here that plug-in) could
install only on a server machine in the local net and all clients
could use that only installation of server application.

Let''s imagine a common library assembly which includes an interface
definition.Both client and server application refer to this library,
and server application has some classes which implement this interface.
There is only one installation of server application somewhere on a LAN
and clients can create an instance of this server application on local
machine and use its functions.But the key point is like plug-ins,client
must be able to find the server as an application which implements that
interface,in other word,server must introduce himself to client somehow.

Is there any technology with this specification?it is higly appreciated
if you introduce me to this technology.

Best regards


这篇关于应用程序之间的独立数据/服务交换,需要一种软件架构的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆