Systemic Issues of Software Confederations

20
Systemic Issues of Software Confederations Jaroslav Král, Michal Žemlička Charles University, Prague {kral,zemlicka}@ksi.mff.c uni.cz

description

Systemic Issues of Software Confederations. Jaroslav Král, Michal Žemlička Charles University, Prague {kral,zemlicka}@ksi.mff.cuni.cz. Problem. SW support of decentralized organizations like international enterprises and/or state or municipal administration. - PowerPoint PPT Presentation

Transcript of Systemic Issues of Software Confederations

Page 1: Systemic Issues of Software Confederations

Systemic Issues of Software Confederations

Jaroslav Král, Michal Žemlička

Charles University, Prague

{kral,zemlicka}@ksi.mff.cuni.cz

Page 2: Systemic Issues of Software Confederations

Problem

• SW support of decentralized organizations like international enterprises and/or state or municipal administration.

• Some of the activities (probably all) are already supported by legacy systems. But these services are not integrated. They do not collaborate.

Page 3: Systemic Issues of Software Confederations

“Modern” Solution

• The first solution given by young and „predatory“ consultants is to build from scratch a wonderful big (and monolithic) object-oriented system with lots of new technologies.

• It is no feasible solution!!!

Page 4: Systemic Issues of Software Confederations

Monolithic Approach:Technical Issues

• Huge monoliths are very difficult to develop: the complexity of the development grows super linearly with size. -> In some cases the complexity is too high, such system are practically impossible to develop within budget, schedule and quality.

• They are hard to modify and maintain.• They need stable requirements for several years of

development, sometimes and for all its life-cycle.

Page 5: Systemic Issues of Software Confederations

Monolithic Approach:Unsolvable Crucial Systemic Issues

• Collaboration of independent/autonomous bodies (e.g. business partners).

• Collaboration of autonomous subunits.

• Support for decentralization.

Page 6: Systemic Issues of Software Confederations

Real Life Requirements

• Adaptability: react on the steady changing structure (divisions/offices can join and leave the whole).

• Robustness.

• Low education costs.

• Security.

• Feasibility.

Page 7: Systemic Issues of Software Confederations

Adaptability Requirements

• Possibility to adapt the system in a seamless way to changes in the structure of an enterprise/organization (i.e. when e.g. a division is sold or purchased).

• Possibility to add new features.

• Support of varying set of clients (business partners, clients, citizens, institutions, etc.)

Page 8: Systemic Issues of Software Confederations

Robustness

• Breakdown of any component should not force breakdowns of other components.

• If an application component is not down, its services should be available at least for its local users.

Page 9: Systemic Issues of Software Confederations

Solution: Software Confederation

• The system is composed from autonomous components (often standalone applications providing some services) forming a peer-to-peer network.

• The system should behave from outer view like one whole – it should have one common interface.

Page 10: Systemic Issues of Software Confederations

Software Engineering Advantages of Software Confederations

• Robustness

• Easy to maintain (modify, enhance)

• Composed from rather autonomous parts from various sources

• Open

• Good for incremental development

• Enable specific development techniques

Page 11: Systemic Issues of Software Confederations

Structure of SWCThe user interface is transparent

UI

G

G

G

User interface UI should be an autonomous

component G – (basic) gate

Page 12: Systemic Issues of Software Confederations

Implementation Dependency of Gates

• If a gate G provides the full functionality of its component C, G must disclose at least the implementation philosophy if not implementation details (OO one or SQL oriented one) of C.

• Consequence: If the implementation philosophy of C is changed all the components communicating with C (partners) must be modified. But the set of partners can vary and unknown new partners can occur.

• Consequence: The modification of partners is a very difficult (if not unsolvable) task

Page 13: Systemic Issues of Software Confederations

Front-End Gates (FEG)

• Make an alternate access to an application component (via its basic gate)

• May hide the implementation details and philosophy of given component

• Serve also as a wrapper to legacy or third party systems

• They must be message transducers they can be based on the same tools and paradigms as UI. They can redirect messages, so they serve as Communication switches.

Page 14: Systemic Issues of Software Confederations

Component And Its Gates

Front-end gate Basic

gate Kernel

Front-end gate

LC

LC

L1

L2Autonomous component

Oth

er c

ompo

nent

s

Page 15: Systemic Issues of Software Confederations

Structure of SWC (3)

UI

FEG

FEG G

G

Page 16: Systemic Issues of Software Confederations

Types of Autonomous Components

• Application components – provide main functionality of the system.

• Front-end gate components – enhance the middleware services.

• User interface – hides the internal structure of the confederation.

Page 17: Systemic Issues of Software Confederations

Domain Oriented Interface

• If the interface is problem domain oriented (instead of implementation oriented as it is now rather common), it is usually possible to do changes in the implementation of the components without any need to update the components communicating with it. It is often true even if the component is replaced by an another one (provided by an another vendor)

Page 18: Systemic Issues of Software Confederations

Confederation: Systemic Issue

• Confederative architecture supports:– Organizational structures of (large) enterprises

– Enterprise integration/fusion/coalition-decentralization

– Multiple message formats

– Integration of third party products and newly developed components

– New programming techniques used in the development of real time systems or based on properly coded knowledge on the properties of components

Page 19: Systemic Issues of Software Confederations

Conclusions• Problem of integration of several legacy or

third party systems or also newly written applications is substantially simplified in software confederations: the autonomous components can provide their services and can use services of the other applications using front-end gates and wrappers.

• The interface should be and can be problem domain oriented

Page 20: Systemic Issues of Software Confederations

Conclusion (2)

• SWC offers a great flexibility hence support the flexibility of enterprise structure.

• It is the main step towards making software a good engineering product.