Part TWO: Large distributed Java applications and SOA

SOA is an architectural idea of service integration that goes beyond specific technologies and architectures to encompass specific technologies and architectures. The most common solutions for SOA are SCA and ESB.

Apache Tuscany is a concrete implementation technology for SCA that provides an open and extensible runtime environment to support current and future technologies. This removes the dependency and coupling of the application to the underlying technology, enabling and greatly simplifying the assembly of cross-technology network platforms. A variety of component implementation, including Java, BPEL, XQuery, JavaScript, a variety of communication protocols, including RMI, Web Services, JSONRPC, Feed, EJB, CORBA, a variety of interface languages, including Java, WSDL Multiple data bindings, including XML, JavaBeans, JAXB, SDO, XMLBeans, JSON, AXIOM Advantage: Unified interaction support for services is better

Mule is one of the ESB implementation frameworks. The only differences from Tuscany are in the configuration file and startup code. Support: RMI, Web Services, etc. Advantages: Service interaction requiring decoupling and complex multi-service interaction scenarios.

SOA: Publish services, invoke services, support communication and interaction features: 1. A high-performance, extensible lightweight framework; 2. Support for monitoring, security control and flow control :(Qos quality of service) 3. Service registry and service repository 4. Development tools

Micro service

Microservices ArchitectureAn architectural style and idea that advocates the separation of system services into more fine-grained services by function, that is, each service is an independent application. These applications provide public apis for application scheduling.



Conclusion:

RPC: Remote procedure callIt is a protocol that requests services from remote computer programs over a network without the need to understand the underlying network technology. PRC is cross-language and cross-system.

That is, two problems have been solved:

1. Solve the invocation problem between services in a distributed system.

2. The remote invocation should be as convenient as the local invocation, so that the caller cannot perceive the logic of the remote invocation.

Advantages: 1. Controllable complexity 2. Independent deployment 3. Easy fault tolerance 5. Easy expansion 6. Specific functions with low correlation.

Disadvantages: 1. Difficult to create and test distributed 2. Complex to deploy 3. Multiple services are relatively memory consuming

Differences between microservices and SOA