软件系统的互操作性

图片

在本文中,我将讨论程序之间的关系。程序之间的关系,或者换句话说,在大多数情况下,程序之间的交互是从一个程序接收另一个程序的数据。例如,电子投标程序可以从其他程序中请求货币汇率。或者,文本编辑器可以由操作系统使用键盘驱动程序由用户输入的文本发送。程序可以提供一组交互功能-API。甚至当使用许多连续的函数调用(例如,用于任何参数的复杂协调)时,甚至具有称为协议的整个交互机制。向前迈出的一大步是创建通用结构-XML和Json。程序可以以“不礼貌”的方式与其他程序进行交互-无需协议和开放的API:在出现抓取程序的情况下步进页面数据,将自身作为病毒引入可执行文件,或者在出现反病毒的情况下将其杀死。

在信息技术中,例如生活中的生态系统,软件系统之间会产生非常强烈的相互影响,并且通常来说,它可以分为两种类型:

  1. 首先,系统可以根据层次结构级别使用底层(而通常,位于上方的层不会影响底层)。
  2. 其次,一个系统可以使用各种接口在相同的层次结构级别上与另一个系统进行交互。

您可以分别谈论层次结构,但是简化层次结构,我们是指类似以下的层:OS(依次具有自己的层),平台,程序,附加组件(插件)等。

此外,根据交互程序的性质,交互可以分为两种类型:不同部分交互或相同。观察表明,在第一种情况下,它们的数量可能相对较小-例如,体内有十二个器官或计算机的多个组件,如果术语相同,则通常会有很多器官:器官中的细胞,处理器中的晶体管,文明中的人们,程序还包含数百万种数十种机器指令。而且,神经网络中的每个机器命令,单元,每个晶体管或每个神经元执行非常简单的功能。可以假设,在任何事物,任何系统的基础上,正是这些简单的基本组件。

与野生动植物的不同之处在于,不同级别的系统非常独立,并且在底层更改为另一层时可以继续工作:例如,如果将双绞线以太网电缆更改为Wifi,则网站将继续打开。

通常,软件系统的交互可以有几种类型:

  • 建立在“基础结构”上(例如,在操作系统或某些平台上,例如IBM Notes或社交网络中)。

  • 它使用其他软件系统(例如,一个网站可能使用关系型DBMS,例如MySQL,MS SQL Server或Oracle)。

  • 包括(可以使用各种库和单个产品,例如,站点使用tinyMCE或组件显示日历)。

  • 与(例如,我们的CPM系统与1C,IP电话系统,获取系统集成。站点可以与支付系统,社交网络等集成)集成。

与任何其他系统一样,该程序也由组件组成。在编程中,如果他们已经具有实现类似功能的组件,则他们喜欢重用组件。这比编写组件,调试然后进行维护要快。发送信件是一个组成部分,写到日志是另一个组成部分,图形是第三个组成部分,站点上的文本编辑器是tineyMCE,搜索是lucene。因此,许多程序使用相同的组件。

通常,程序允许您扩展功能:文本编辑器和电子表格允许您创建宏,浏览器-添加扩展名,所有CMS-用第三方组件和插件对其进行补充。一些程序沿着这条道路走得更远,它们实际上是启动其他应用程序的平台:例如,浏览器或ibm Lotus notes。

操作系统本身是一个程序,其唯一目的是存在其他程序。它简化了它们的存在,与铁隔离,提供了使用图形界面和访问网络的能力,其目的是确保其他程序的工作。

同时,由于单个组件而安装的操作系统,平台甚至CMS在许多情况下都比使用它们的程序复杂得多,它们可以包括许多提供工作的功能:共享资源,提供授权机制,简化了对数据库的访问。这是由于其多功能性(例如Windows操作系统包含多个Win32,OS / 2子系统),以确保所有可能程序的运行。

多功能性总是导致额外的复杂性。这也适用于程序员在编写程序时使用的那些组件,它们更加复杂并且具有更多的功能集,其中许多功能不是必需的,也不使用。程序通常被迫提供向后兼容性-例如,在Windows中,可以运行DOS应用程序。当系统交互时,可能会发生一些有趣的影响。

第一个叫做协同作用他的想法是,该术语不仅仅是术语的总和。也就是说,如果您在一项技术中添加其他一些功能,则通过协同作用,最终技术将超过第一项和第二项。而且它可能是质量不同的产品。也就是说,如果使用该程序将铁骨架添加到计算机,则将获得比铁和计算机更大的机器人。大量简单事物的交互可能导致某种复杂的交互。简单的事情加起来很困难-一组晶体管创建计算机,一组原子创建对象,体内的细胞创建器官。人口总数-文明-不只是70亿人口,还更多。

Peter Norvig在报告《一切都是杂项》中表达了第二个想法。对我来说,这似乎很令人惊讶:如果您看到一只黑猩猩和一个人,就会发现它们之间有很多共同点。好吧,很显然,黑猩猩要强一些,人要聪明一些,但是总的来说,它们的外表有点相似,它们的身体甚至智力都可以相提并论。但是现在,如果您看一下黑猩猩的文化和人类的文化,就会发现巨大的不同。人的文明甚至不能与黑猩猩文明相提并论。出于某种原因,这使我想起0.99和1.01似乎并没有很大的不同,但是在很大程度上提高时,一个数字趋向于零,另一个数字趋于无穷大。

对于那些只是滚动到最后的人:程序的交互可以是各种类型,其结果可以导致软件系统从根本上进入新的高度。整体并不总是反映其组成部分中正在发生的事情。感谢您的关注!

Source: https://habr.com/ru/post/zh-CN399489/


All Articles