Felhasználói eszközök

Eszközök a webhelyen


tanszek:oktatas:iss_t:evolution_of_software_integration_methods

Különbségek

A kiválasztott változat és az aktuális verzió közötti különbségek a következők.

Összehasonlító nézet linkje

Előző változat mindkét oldalon Előző változat
Következő változat
Előző változat
tanszek:oktatas:iss_t:evolution_of_software_integration_methods [2023/03/26 18:17]
knehez
tanszek:oktatas:iss_t:evolution_of_software_integration_methods [2024/02/19 08:16] (aktuális)
knehez [Native development method]
Sor 1: Sor 1:
-Following figure shows the six classical Software Integration ​methods.+==== Six standard software integration ​methods ​==== 
  
-{{tanszek:​oktatas:​integration_evolution.png|}}+{{tanszek:​oktatas:​integration_evolution.png?600x0|}}
  
  
Sor 35: Sor 35:
  
   * the standard handling of used dependencies (components developed by others) is not uniform, but after 2020, we can use [[https://​conan.io/​]] or [[https://​vcpkg.io/​en/​]] or the modern [[https://​cmake.org/​cmake/​help/​latest/​guide/​using-dependencies/​index.html]]. ​   * the standard handling of used dependencies (components developed by others) is not uniform, but after 2020, we can use [[https://​conan.io/​]] or [[https://​vcpkg.io/​en/​]] or the modern [[https://​cmake.org/​cmake/​help/​latest/​guide/​using-dependencies/​index.html]]. ​
-  * RELEASE/​DEBUG mode compilation method slows down development+  * RELEASE/​DEBUG mode compilation method slows down development ​(see: https://​godbolt.org)
   * it is possible that the operation of the program is different (erroneous, slower) with another compiler   * it is possible that the operation of the program is different (erroneous, slower) with another compiler
  
Sor 51: Sor 51:
  
 ==== Development on a software "​Virtual Machine"​ ==== ==== Development on a software "​Virtual Machine"​ ====
 +
 +{{tanszek:​oktatas:​informatikai_rendszerek_epitese:​vm_fejlesztes.png|}}
  
 It has been widespread since the introduction of the Java VM (1997-). It defines a virtual processor and its associated so-called Byte Code, a set of instructions with its own machine code. It does not translate the source code directly to the CPU, but to the virtual machine'​s own byte code. Then VM converts the byte code to the machine code of the host system, when running. A virtual machine is usually a native application written in c/c++, which usually works on several platforms. It has been widespread since the introduction of the Java VM (1997-). It defines a virtual processor and its associated so-called Byte Code, a set of instructions with its own machine code. It does not translate the source code directly to the CPU, but to the virtual machine'​s own byte code. Then VM converts the byte code to the machine code of the host system, when running. A virtual machine is usually a native application written in c/c++, which usually works on several platforms.
Sor 57: Sor 59:
  
   * Java Virtual Machine (JVM)   * Java Virtual Machine (JVM)
 +  * Nodejs, chromium engine
   * Common Language Runtime (CLR): **.NET** system   * Common Language Runtime (CLR): **.NET** system
   * Zend Engine: **php**   * Zend Engine: **php**
Sor 64: Sor 67:
   * LLVM: this is not the classic VM, but it compiles the source into an llvm byte code, which then turns into native code. "LLVM is designed around a language-independent intermediate representation that serves as a portable, high-level assembly language that can be optimized with a variety of transformations over multiple passes.   * LLVM: this is not the classic VM, but it compiles the source into an llvm byte code, which then turns into native code. "LLVM is designed around a language-independent intermediate representation that serves as a portable, high-level assembly language that can be optimized with a variety of transformations over multiple passes.
  
 +**Just in Time (JIT) translation**
 +  * The virtual machine can continuously optimize the application code, the byte code conversion is dynamic.
 +
 +**Memory management**
 +  * use of pointers is prohibited (generally)
 +  * a special '​Garbage collection'​ algorithm is responsible for freeing unused memory
 +
 +**Resource management**
 +  * resource management is the responsibility of the developer
 +  * but the VM has basic resource management capabilities
 +  * Built-in, widely used dependency management is available (maven, pip, npm)
 +
 +**RELEASE/​DEBUG mode compilation method is not distinguished**
 +  * we are running the code in "DEBUG mode", the optimization remains hidden in the VM.
 +  * the speed of the modern VM's are enough for general tasks.  ​
 +
 +The life cycle of the application (starting, stopping, monitoring) is managed by the virtual machine
 +
 +**Development of components**
 +it is ideal for developing collaborative components, as applications running on the VM can easily communicate with each other using TCP/IP network objects can be easily used and modified with the help of self-analysis. (Java reflection)
 +
 +==== Middleware development method ====
 +
 +{{tanszek:​oktatas:​informatikai_rendszerek_epitese:​jee_fejlesztes.png|}}
 +
 +Application server development method. It was originally released by Sun Microsystems in 1999 under the name J2EE (Java 2 Enterprise Edition). The standard specification is currently at version 8 (2017): https://​javaee.github.io/​javaee-spec/​
 +
 +  * It typically uses middleware implemented in Java. [[https://​en.wikipedia.org/​wiki/​List_of_application_servers]]
 +  * famous implementations:​ Glashfish, Websphere, Weblogic, JBoss, Wildfly
 +
 +The entire life cycle of applications is managed by middleware.
 +
 +**Web Container** : managing the life cycle of web components.
 +
 +**Servlet**:​ a Java class responsible for standard processing and responses to HTTP requests. Originally responsible for creating dynamic Web content. The generated content is HTML , but more recently JSON. It also includes URL mapping. It was first presented as a concept in 1996!
 +
 +  * Automatically generated servlets can also be created using JSP technology, where the HTML code can also contain Java codes.
 +  * HTTP requests : GET, POST, PUT, DELETE, OPTIONS
 +
 +<code java>
 +        ​
 +  public class MyServlet extends HttpServlet{  ​
 +    ​
 + public void doGet(HttpServletRequest req, HttpServletResponse res) throws ServletException,​ IOException  ​
 + {  ​
 + res.setContentType("​text/​html"​);​
 + PrintWriter pw=res.getWriter();  ​
 +   ​
 + pw.println("<​html><​body>"​);  ​
 + pw.println("​Hello from servlet"​);  ​
 + pw.println("</​body></​html>"​);  ​
 +   ​
 + pw.close();  ​
 + }
 +
 +</​code>​
 +
 +In the first versions, metadata was managed with XML descriptors. In these, it was possible to specify how a class should behave: URL mapping, number of running instances, etc.
 +
 +==== ESB - Enterprise service bus ====
 +{{tanszek:​oktatas:​informatikai_rendszerek_epitese:​esb.png|ESB}}
 +
 +Service BUS: Service Oriented Architecture (SOA). It is based on loosely coupled components (services). Analogy of the BUS concept known in networks.
 +
 +**Main functions**:​
 +
 +  * Message forwarding - Message Routing between services
 +  * Service discovery
 +  * Support conversion of different protocols
 +  * Validation - schema validation
 +  * Version management of services
 +  * Monitoring services
 +  * Business process management
 +
 +**Advantages:​**
 +
 +  * easily scalable use - from local service to full enterprise access
 +  * instead of implementing (coding) the integration,​ creating configurations
 +  * services can be easily started and stopped due to loose connection
 +
 +**Disadvantages:​**
 +
 +  * slow communication
 +  * due to centralization,​ a complete shutdown may occur in the event of an error
 +  * high complexity in configuration
 +
 +Known implementations:​
  
 +Azure Service Bus, Microsoft Biztalk Server, Mule ESB, Oracle ESB, IBM Websphere ESB, JBOSS ESB
  
tanszek/oktatas/iss_t/evolution_of_software_integration_methods.1679854663.txt.gz · Utolsó módosítás: 2023/03/26 18:17 szerkesztette: knehez