- Object-oriented Programming (Object-oreinted programming) is a programming paradigm. Refers to the way in which class instance objects are used extensively when designing programs. Once OOP is used in a project, it becomes a time to think about things.
- Service Oriented Architecture (Service-oreinted Architecture) is a set of principles or methodologies for designing software as a set of interoperable services. SOA is usually only touched when the system architecture is considered.
- Component-based development (component-based development) is a software engineering practice that typically requires high cohesion and loose coupling between components. Its interface may be OO, and may be invoked in a service-mode manner. Component-based development focuses on the design of system hierarchy, subsystem boundaries, and inter-subsystem communication, at the code level but unlike OOP, it is something that needs to be used at all times.
For xx is to solve the system growth process encountered problems, and adopted some of the paradigm.
For example: You start to do MIS system for an enterprise.
when the enterprise came to a very small time, with simple object-oriented programming, database + server + browser has been satisfied with the needs. There is no need to consider component-oriented development and SOA.
slowly, this enterprise grew up, the original simple MIS system, become more and more complex and huge. There is a lot of code for repeating functions in the system. When the business of these functional modules is changing when you have headaches: there are many places in the code to modify, new employees, and sometimes not all. The problem of system on-line is more and more, and demand response time is getting longer. Often scolded by customers: he x, so simple demand for half a month can not go to the line. XXXXXXX was on the line two days last year.
at this point, you will consider how to unify the duplicated code in the system. You will consider the component, which is "component oriented". You have a more independent business module to contract a good interface, developed into components. In the future, there are similar functional modules, directly call this component, that is, to save development costs, and easy to maintain.
later, the Enterprise became a group company. have been online a lot of various mis systems. Although most systems are modular. But as a group company, there are still a lot of common business, different MIS system has many functions of repetitive modules. At this time also faced with business upgrade difficult, difficult to use problems: a requirement may involve many sets of MIS system upgrade. At the same time each system has its own interface, customer input a data, to open n pages, to log n times, complain incessantly. The problems of inconsistent data have followed.
SOA comes. The architect abstracts the modules of the various systems into service, the duplicated modules no longer, and the service interfaces are called to each other between different systems. Before you write a lot of code, now make clear the interface, directly call another set of MIS system service interface is OK. Also has a single point of landing, with the portal, with a search service, with a knowledge base and so on.
But here's the problem:
There are always some very important services, all systems will depend on it, it is a bit of a problem, all systems are stopped. You start thinking about dual-machine, hot-standby, load balancing.
previously used IBM host +oracle database +EMC storage, then later buy more expensive performance better. Slowly you find that the money that the business earns is the fucking ioe. You start thinking about distribution and start thinking about using open source products.
OOP SOA CBD