First, Introduction
In a distributed system, a complete middleware needs to demonstrate a certain abstraction of the upper-level programming language as well as the underlying physical facilities. Distributed objects and distributed components are exactly 2 important implementations.
1. The distributed object package integrates the features and advantages of object-oriented language. Enables a user to implement a remote method call with a hierarchy of similar object-oriented language calls.
2, distributed objects have some of the following advantages: 1, packaging. 2, he separates the implementation of an object from the object itself. 3, with dynamic and extensibility.
3, distributed components in order to overcome some of the shortcomings of distributed objects developed, he solved in the distributed system in the following problems: 1, incomplete independence, the description of the interface too little information. 2, the complexity of the program. 3, the application developers lack of complete and specific control of the distribution, can not handle some such as security, transmission and so on. 4. Distributed objects do not support deployment. All of this can be solved in a distributed component.
Ii. Distributed Objects
1, the Distributed object is developed by the following 3 phenomena: 1, in the distributed system, people's expectations of the abstraction of the program language is getting higher. 2. The emergence of high-level languages like C++,java makes the language in distributed languages more extensible. 3, with the object-oriented ideas and ideas of the popularity of procedural ideas and related tools software, such as the emergence of UML, so that the object-oriented design concept more extensive.
2, in the distributed object, there are some additional complexities: 1, the interactive communication between distributed objects. 2, the life cycle management of distributed objects. 3. The transformation of the active and inactive states of the distributed object along with the invocation and the invoked operation. 3, the management of eternal objects.
Three, learning: CORBA
CORBA is a typical middleware based on distributed object. There is a very important concept called the ORB, the object requests the interrupt device.
1, CORBA RMI is more similar to Java RMI, but there are some different places, some new concepts need to understand: 1, CORBA provides the object model. 2, his interface definition language. 3, CORBA for the implementation of multi-language mapping.
2, CORBA structure includes the core of the Orb, object adapter, Stub-skeleton structure, repository, which contains the mapping of the name adapter.
3, CORBA remote object reference has its own unique format, which includes the following fields of information: 1, the ID identifier of the object interface. 2. Specify the protocol for the transmission. 3. Specify an orb for the CORBA object.
4, CORBA internal contains a variety of services: 1, naming services. 2, security services. 3, concurrency control services. 3, the event notification service. 4. Service of affairs. Wait a minute
5, in the CORBA client and server call process, the client can also use its own callback callback as a parameter to make it remote invocation, when the end of the server processing operation, you can actively invoke the client's callback function.
third, distributed components
As mentioned above, the service of distributed objects is very large and complex, although he has now been deployed and used on a large scale. There is a growing desire for a lightweight service similar to this. With the widespread use of distributed objects, his shortcomings and limitations gradually exposed.
1, the disadvantage of distributed objects (mentioned in the previous section): 1, the absolute independence, requirements for distributed objects can have more configuration and operational capabilities. 2, the simplification of the interaction, the entire communication process of distributed objects is too complex, need to simplify, clear. 3, lack of distributed control, such as security, you can not do what you want to do. 4. Deployment services are not supported, that is, configurable deployment services are not supported.
2, the component-based Distributed component service solves some of the above problems, in a word, he is a complex of multiple components, and each component has a correlation. Each component contains a number of external interfaces.
3. An example of a typical distributed component is EJB. In EJBs, multiple components appear in the form of contain containers. A container contains a client and a component that contains a lot of business processing logic.
4, in the contain, a very important mechanism is interception, through interception, can achieve a lot of convenience and benefits.
5, in the distributed components, is to support configuration deployment, the configuration of the description in XML format can be parsed and configured.
Iv. Examples of learning: EJB and fractal
EJB is a simplified middleware for distributed components, while Fractal is a lightweight and most streamlined component-based service.
1, in the EJB, for each component and the role of the great separation, including some of the following components: 1, Bean provider2, the application Seesembler3, the service provider4, the Persistence Provider5, the contain provider 6, the system administrator.
2. In EJB, one or more business interfaces are provided to potential objects. The EJB has implemented a lot of Di (Dependency injection) control in the way of annotation annotations. By injecting, you can intercept multiple calls, and you can do what you want to do, such as ACL access control, or log operations, and so on.
3, fractal is a lightweight distributed Component Services, he can also support multiple languages. His core consists of 2 parts, a server-side interface and a client interface.
4, fractal has a similar structure with EJB, between the main content and the outside interaction, there is a membranes diaphragm layer, which contains a plurality of controller controllers, these controllers are to achieve the function of interception.
References: <<distributed sysytems Concepts and design>> original version fifth, Author:george Coulouris,jean Dollimore, Tim Kindberg,gordon Blair
Distributed Systems reading notes (eight)-----distributed objects and components