User Tools

Site Tools


tanszek:oktatas:iss_t:evolution_of_software_integration_methods

Differences

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

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
tanszek:oktatas:iss_t:evolution_of_software_integration_methods [2023/03/26 18:28] kneheztanszek:oktatas:iss_t:evolution_of_software_integration_methods [2025/02/17 10:11] (current) – [Development on a software "Virtual Machine"] knehez
Line 1: Line 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|}}
  
  
Line 35: Line 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
  
Line 67: Line 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**+**Just in Time (JIT) compilation**
   * The virtual machine can continuously optimize the application code, the byte code conversion is dynamic.   * The virtual machine can continuously optimize the application code, the byte code conversion is dynamic.
  
Line 89: Line 89:
  
 ==== Middleware development method ==== ==== 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.1679855282.txt.gz · Last modified: 2023/03/26 18:28 by knehez