User Tools

Site Tools


architecture_styles

====== Differences ====== This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
architecture_styles [2015/02/28 09:34]
apaschke
architecture_styles [2015/04/24 10:11]
rmbell [Introduction: Software Communication]
Line 3: Line 3:
 ===== Introduction:​ Software Communication ===== ===== Introduction:​ Software Communication =====
  
-The two things needed for software ​communication ​are a message transport ​and a message protocol. A message transport is the physical means to convey a message. Examples of transport mechanisms include Ethernet, shared memory, and the Peripheral Component Interconnect (PCI) bus. Wi-Fi and Bluetooth are examples of wireless transports.+Software ​communication ​requires ​a message transporta message protocol, and a destination address. A message transport is the physical means to convey a message. Examples of transport mechanisms include Ethernet, shared memory, and the Peripheral Component Interconnect (PCI) bus. Wi-Fi and Bluetooth are examples of wireless transports.
  
-If the source and destination happen to be in the same virtual address space; the transport can be optimized into a set of parameters that are passed in a simple ​function ​call. Otherwise communication must take place through ​transport facilityVirtually ​all CORBA implementations automatically recognize when this optimization can be used.+All three concepts of transport, protocol, and destination address are interrelated. A change to one affects the others. For example: if the source and destination happen to be in the same virtual address space; the source will know the virtual address ​of the receiving ​function ​and will know how to invoke it and how to pass message through parametersNearly ​all CORBA implementations automatically recognize when this optimization can be used
 + 
 +A simple function call is not possible when the source and destination are physically separated. Distributed software communication is accomplished by serializing the message according to a protocol that destination understands. A remote destination addresses could be something simple like the combination of an IP address and port number or it could be expressed as a URL, or an IRI, or a CORBA Inter-operable Object Reference (IOR).
  
 All physical message transports including Ethernet and Wi-Fi just transport bytes. It is left up to the source and destination to agree on a message protocol. The protocol specifies the set of rules for how these messages will be serialized for transport. A protocol could be ad-hoc and unsophisticated or it might have the sophistication necessary for the source and destination to remain oblivious of the distributed nature of the system. This in turn allows the developer to choose the style that best fits the application. All physical message transports including Ethernet and Wi-Fi just transport bytes. It is left up to the source and destination to agree on a message protocol. The protocol specifies the set of rules for how these messages will be serialized for transport. A protocol could be ad-hoc and unsophisticated or it might have the sophistication necessary for the source and destination to remain oblivious of the distributed nature of the system. This in turn allows the developer to choose the style that best fits the application.
Line 21: Line 23:
 ===== Direct Strongly-Coupled API4KB Access ​ ===== ===== Direct Strongly-Coupled API4KB Access ​ =====
  
-Strong coupling with the local client requiring direct knowledge of the (downloaded) API4KB ​libraries and knowledge artifacts ​or direct knowledge about how the inter-process interaction and access with the remote API4KB works in ad-hoc network programming (e.g. via socket programming).+Strong coupling with the local client requiring direct knowledge of the (downloaded) API4KB ​**Artifacts** ​or direct knowledge about how the inter-process interaction and access with the remote API4KB works in ad-hoc network programming (e.g. via socket programming).
  
-Example: OntoMaven and RuleMaven.+Example: ​[[http://​www.corporate-semantic-web.de/​ontomaven.html|OntoMaven and RuleMaven]].
  
  
Line 47: Line 49:
 A unit of composition with contractually specified interfaces and explicit content dependencies only. Component is specified in terms of a contract which includes a set of provided interfaces (interfaces that the component offers as a service to other components) and required interfaces (dependencies that this component has on other components). Container provides managed server-side hosting environment for components and deals with the distributed systems and middleware issues. ​ A unit of composition with contractually specified interfaces and explicit content dependencies only. Component is specified in terms of a contract which includes a set of provided interfaces (interfaces that the component offers as a service to other components) and required interfaces (dependencies that this component has on other components). Container provides managed server-side hosting environment for components and deals with the distributed systems and middleware issues. ​
  
-Examples, e.g. Java Beans, Corba Component Model, ​API4KB ​OntoMaven Aspect-Oriented Component Model, ...+Examples, e.g. Java Beans, Corba Component Model, ​[[http://​www.corporate-semantic-web.de/​ontomaven.html|OntoMaven Aspect-Oriented Component Model]], ...
  
 ===== Decoupled Indirect Communication ===== ===== Decoupled Indirect Communication =====
architecture_styles.txt · Last modified: 2015/04/24 10:11 by rmbell