modular enterprise systems - an introduction

28
A unified Modulesystem For Distributed Enterprise Applications An Introduction Integrating Architecture Apps for the Enterprise

Upload: andreas-weidinger

Post on 25-Jun-2015

299 views

Category:

Software


3 download

DESCRIPTION

Modularity in Enterprise Systems - a neglected topic.

TRANSCRIPT

Page 1: Modular Enterprise Systems - An Introduction

A unified Modulesystem

For Distributed Enterprise Applications

An Introduction

Integrating ArchitectureApps for the Enterprise

Page 2: Modular Enterprise Systems - An Introduction

© 2014 Andreas Weidinger at Integrating Architecture de Seite: 2

Just any point in time in any company

e.g. at

com.my.company

Page 3: Modular Enterprise Systems - An Introduction

© 2014 Andreas Weidinger at Integrating Architecture de Seite: 3

The IT landscape of com.my.company

HOST

Frontends CRM SCM

UNIX Server

VCXCMGIRX

BackendKTDB IDBKM KMX-DB

SAP

MQ

DWDB

Service Bus (ESB)

AFR

Standalone AS-1.0 + AS-3.2

AMS

KM-UXCRM-OV

W

F

M

PM-UXCRX

SFE

HR FI

CM

E

X

T

E

R

N

A

L

S

DOC

FTP Server

= com.my.XML1

Page 4: Modular Enterprise Systems - An Introduction

© 2014 Andreas Weidinger at Integrating Architecture de Seite: 4

A department has a new requirement and the IT is asked to implement it

e.g. a function: to adjust customer data

Page 5: Modular Enterprise Systems - An Introduction

© 2014 Andreas Weidinger at Integrating Architecture de Seite: 5

Where and How is the new requirement implemented?

HOST

Frontends CRM SCM

UNIX Server

VCXCMGIRX

BackendKTDB IDBKM KMX-DB

SAP

MQ

DWDB

Service Bus (ESB)

AFR

Standalone AS-1.0 + AS-3.2

AMS

KM-UXCRM-OV

W

F

M

PM-UXCRX

SFE

HR FI

CM

E

X

T

E

R

N

A

L

S

DOC

FTP Server

= com.my.XML1

Page 6: Modular Enterprise Systems - An Introduction

© 2014 Andreas Weidinger at Integrating Architecture de Seite: 6

Where and How is the new requirement implemented?

Page 7: Modular Enterprise Systems - An Introduction

© 2014 Andreas Weidinger at Integrating Architecture de Seite: 7

Where and How is the new requirement implemented?

� Some possible scenarios are

the function

� is part of a dedicated system

� is part of a dedicated system but with interfaces

� affects the interna of several systems

� is an independent service

� is a linked service

� … etc.

Page 8: Modular Enterprise Systems - An Introduction

© 2014 Andreas Weidinger at Integrating Architecture de Seite: 8

Howeverin a modular world

the answer is completely different

Page 9: Modular Enterprise Systems - An Introduction

© 2014 Andreas Weidinger at Integrating Architecture de Seite: 9

In a modular world the answer is:A Module or a Moduleversion

in a Modulerepository

Page 10: Modular Enterprise Systems - An Introduction

© 2014 Andreas Weidinger at Integrating Architecture de Seite: 10

In a modular system there are twouniversal, central elements

Module – and – Repository

1 - of course there might be more than one Repository

1

Page 11: Modular Enterprise Systems - An Introduction

© 2014 Andreas Weidinger at Integrating Architecture de Seite: 11

What is a Module?And what is a Module Repository?

a central directorywith subdirectories

a Modulefile with aunique Modulenamen

A module is a

definedbusiness or technical functionality

Module Repository (/var/myrepoXY/)

com.my.CustomerAdjustment-1.0.0

com.my.ModuleXY-2.0.1

… etc.

com.my.xy.ServiceZ-3.5.0

System 1

System N

… etc.

Page 12: Modular Enterprise Systems - An Introduction

© 2014 Andreas Weidinger at Integrating Architecture de Seite: 12

The unique Module(name) identifiesall necessary artefacts in all areas

� com.my.CustomerAdjustment-1.0.0

� budgets und controlling

� jobs or tasks in planning

� specification and requirementlist

� softwareproject

� repository in a version control system

� executable module

� test, acceptance, operation, …, … etc.

� everything targets the same Module

Page 13: Modular Enterprise Systems - An Introduction

© 2014 Andreas Weidinger at Integrating Architecture de Seite: 13

In a modular systemlandscape modules arethe unified view of all participants

Page 14: Modular Enterprise Systems - An Introduction

© 2014 Andreas Weidinger at Integrating Architecture de Seite: 14

Modules may represent any part or requirementof a system landscape

- Modules are able to scale free – from a whole system to a single function

Page 15: Modular Enterprise Systems - An Introduction

© 2014 Andreas Weidinger at Integrating Architecture de Seite: 15

That's nice - but until nowit is no usable software

in an application landscape!

Page 16: Modular Enterprise Systems - An Introduction

© 2014 Andreas Weidinger at Integrating Architecture de Seite: 16

Just two things are missing for usable software

a Manager that makes modules available

and Middlware on which this manager runs

Module Repository Service Broker

JEE ServerdynamicManager

Clients

manager.getModule(„com.my.ServiceXY“

)

module.doBizzMethod

Page 17: Modular Enterprise Systems - An Introduction

© 2014 Andreas Weidinger at Integrating Architecture de Seite: 17

That looks mutch like a usual,but proprietary JEE Bus/Broker System

with all the problems of an JEE application!?!

But it isn‘t!

Page 18: Modular Enterprise Systems - An Introduction

© 2014 Andreas Weidinger at Integrating Architecture de Seite: 18

The Broker is NOT a usual JEE applicationand therefore also without its problems

� because …

� the broker does NOT contain any business logic

� it never has to be changed or extended

� it can be integrated in any system

� it is just about 60 KB (Kilobyte) small

� it is just Middleware – NOT an application

� the actual application softwareare only the Modules

and they are technology and platform independent

Page 19: Modular Enterprise Systems - An Introduction

© 2014 Andreas Weidinger at Integrating Architecture de Seite: 19

The Broker is NOT a usual JEE applicationand therefore also without its problems

� The Broker just realises the internal middleware adapter of the dynamic Module Manager

Service Broker als neutrale Middleware API

Modul Repository Clients

manager.getModule(„com.my.ServiceXY“

)

module.doBizzMethod

� a client just knows a manager that transparently

provides modules

Session Services

Web Services

… etc.

Page 20: Modular Enterprise Systems - An Introduction

© 2014 Andreas Weidinger at Integrating Architecture de Seite: 20

� The advantages of this design

� no Deployment or special Packaging

� no complex designs or transformations

� no software version proplematics

� no binding to JEE processes or technologies

� ideal for agile, continuous processes

� unbound system-, technology- and cross platform Functions and Services

� and at the same time neutral, clearly encapsulated

and defined modulesthat are versioned and exchangeable

Page 21: Modular Enterprise Systems - An Introduction

© 2014 Andreas Weidinger at Integrating Architecture de Seite: 21

Which protocols and data formats are supported?

� Client Server communication

� RMI - resp. all protocols supported by EJBs

� JMS, HTTP, WebService, WebSocket, REST,AJAX

� … every protocol that is available in JEE or JSE

or for which an adapter exsists

� Dataformats

� … any format that can be processed in java

Page 22: Modular Enterprise Systems - An Introduction

© 2014 Andreas Weidinger at Integrating Architecture de Seite: 22

And the client side?

Page 23: Modular Enterprise Systems - An Introduction

© 2014 Andreas Weidinger at Integrating Architecture de Seite: 23

And the client side?

� Modules are the same for Client and Server

� The Modulesystem does NOT distinguishbetween client and server

� A Repository directory with Modules anda Modulemanager are a modular systemtha's all - on a client or on a server

Page 24: Modular Enterprise Systems - An Introduction

Andreas Weidinger

Mobile: 0160 97627398Mail: [email protected]: www.integrating-architecture.de

Integrating ArchitectureIT Consulting

Page 25: Modular Enterprise Systems - An Introduction

© 2014 Integrating Architecture Seite: 25

Backup – Unification

� Enterprise Apps modules are the same from the specification to

operation. In this way they unify all technologies and platforms

in one evolving architecture.

Unification of Technologies and Platforms

Windows Linux / Unix

Apps for the Enterprise

Rich Internet Application

Mobile

Java SE + EE HTML / JavaScript

ServerModules

Smart ClientModules

Web ClientModules

Mobile ClientModules

Central Module

Repository

- Modules

- Services

- Rules

1 - The presentation as a layer is just vor illustration purpose. Enterprise Apps are NO technical layer

and also NO technical object types.

1

Page 26: Modular Enterprise Systems - An Introduction

© 2014 Integrating Architecture Seite: 26

Backup – Traceability

� Transparency, reliable Management and Governance through

Arbitrary patrs and functional requirementsfor Services and Systems …

…are represented and realizedby unique Modules in a central Repository

Module Repository

CRM ModuleXY-1.0.0

CRM ModuleXY-2.0.0

Module KT-DB-3.0.0

Module Messaging-1.0.5

Management and the Service Broker (both free of business logic) provide the Modules On-Demand

Projects

Unique linking and mapping of all parts of an IT Landscape

CRM Module4711-1.0.0

System-CRM

… etc.

Module SAP Service-2.1.0

1

1 -That means project structures in development like IDE or SCM projects – not organizational management projects, they stay independent

IT Systemlandscape

Page 27: Modular Enterprise Systems - An Introduction

© 2014 Integrating Architecture Seite: 27

Backup – Client Server Architecture

� Entire separation of business logic from platform and technology

JEE Application Server

ISA Service Broker Application

ISA Module System

knows

calls

SF Session

SL Session

Servlet

MDB/JMS

WebService

ISA JEE Adapter

delegates

centralRepository

: Object

: Module resp. App

: Call

automated, system- and user specific configuration und replication

- Business implementation only resides in modules resp. apps

- The central repository is a Single Point of Access, it contains

all versions of all modules divided into systems – for clients and server

1

2 - The JEE Adapters are generic. They contain NO business code and always delegate to the module management

3 - The Service Broker resp. the corresponding JEE application(.ear) is only about 50 KB in size

4 - The module system is totally encapsulated an runs in its own classloader context

1

4

3

2

: optional

usesManager

5 - The ISA Smart Client is not mandatory. Any application can access the broke

localRepository

ISA Modul System

Manager

1‘

calls

knows

5

Connector

multi

protocol

Server Server oder File Server

Smart Client

networkWeb Client

Rich Internet Applicationhttp

Service Consumer

Any ApplicationConnector

multi

protocol

Page 28: Modular Enterprise Systems - An Introduction

© 2014 Integrating Architecture Seite: 28

Backup – JEE Vulnerabilities

� JEE based systems are monoliths by specification

� because the deployment model only knows closed applications

� JEE violates the SoC princip

� because JEE forces the implementation of business requirements as platform components (e.g. as WebService, EJB etc.)

� JEE components are bind to distinct distributed communication

technologies (e.g. RMI, HTTP, JMS etc.)

� JEE does not provide a usable module system and its container

structure hinders the use of external module systems

� The problem with JEE is NOT the concept of an application server providing a

distributed infrastructure – the problem is, that JEE tries to claim any purpose and binds applications to its monolithic platform and its technologies.

1 - Separation of Concerns – at this point separation of business logic and technology

1