Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Modular Enterprise Systems - An Introduction

Modular Enterprise Systems - An Introduction

Home: http://integrating-architecture.de/
Enterprise Apps - A uniform Modulesystem for distributed Enterprise Applications

Andreas Weidinger

August 16, 2014
Tweet

More Decks by Andreas Weidinger

Other Decks in Technology

Transcript

  1. © 2014 Andreas Weidinger at Integrating Architecture de Seite: 2

    Just any point in time in any company e.g. at com.my.company
  2. © 2014 Andreas Weidinger at Integrating Architecture de Seite: 3

    The IT landscape of com.my.company HOST Frontends CRM SCM UNIX Server VCX CMG IRX Backend KTDB IDB KM KMX-DB SAP MQ DWDB Service Bus (ESB) AFR Standalone AS-1.0 + AS-3.2 AMS KM-UX CRM-OV W F M PM-UX CRX SFE HR FI CM E X T E R N A L S DOC FTP Server = com.my.XML1
  3. © 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
  4. © 2014 Andreas Weidinger at Integrating Architecture de Seite: 5

    Where and How is the new requirement implemented? HOST Frontends CRM SCM UNIX Server VCX CMG IRX Backend KTDB IDB KM KMX-DB SAP MQ DWDB Service Bus (ESB) AFR Standalone AS-1.0 + AS-3.2 AMS KM-UX CRM-OV W F M PM-UX CRX SFE HR FI CM E X T E R N A L S DOC FTP Server = com.my.XML1
  5. © 2014 Andreas Weidinger at Integrating Architecture de Seite: 6

    Where and How is the new requirement implemented?
  6. © 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.
  7. © 2014 Andreas Weidinger at Integrating Architecture de Seite: 8

    However in a modular world the answer is completely different
  8. © 2014 Andreas Weidinger at Integrating Architecture de Seite: 9

    In a modular world the answer is: A Module or a Moduleversion in a Modulerepository
  9. © 2014 Andreas Weidinger at Integrating Architecture de Seite: 10

    In a modular system there are two universal, central elements Module – and – Repository 1 - of course there might be more than one Repository 1
  10. © 2014 Andreas Weidinger at Integrating Architecture de Seite: 11

    What is a Module? And what is a Module Repository? a central directory with subdirectories a Modulefile with a unique Modulenamen A module is a defined business 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.
  11. © 2014 Andreas Weidinger at Integrating Architecture de Seite: 12

    The unique Module(name) identifies all 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
  12. © 2014 Andreas Weidinger at Integrating Architecture de Seite: 13

    In a modular systemlandscape modules are the unified view of all participants
  13. © 2014 Andreas Weidinger at Integrating Architecture de Seite: 14

    Modules may represent any part or requirement of a system landscape - Modules are able to scale free – from a whole system to a single function
  14. © 2014 Andreas Weidinger at Integrating Architecture de Seite: 15

    That's nice - but until now it is no usable software in an application landscape!
  15. © 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 Server dynamic Manager Clients manager.getModule( „com.my.ServiceXY“ ) module.doBizzMethod
  16. © 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!
  17. © 2014 Andreas Weidinger at Integrating Architecture de Seite: 18

    The Broker is NOT a usual JEE application and 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 software are only the Modules and they are technology and platform independent
  18. © 2014 Andreas Weidinger at Integrating Architecture de Seite: 19

    The Broker is NOT a usual JEE application and 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.
  19. © 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 modules that are versioned and exchangeable
  20. © 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
  21. © 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 distinguish between client and server A Repository directory with Modules and a Modulemanager are a modular system tha's all - on a client or on a server
  22. © 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 Server Modules Smart Client Modules Web Client Modules Mobile Client Modules 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
  23. © 2014 Integrating Architecture Seite: 26 Backup – Traceability Transparency,

    reliable Management and Governance through Arbitrary patrs and functional requirements for Services and Systems … …are represented and realized by 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
  24. © 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 central Repository : 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 uses Manager 5 - The ISA Smart Client is not mandatory. Any application can access the broke local Repository ISA Modul System Manager 1‘ calls knows 5 Connector multi protocol Server Server oder File Server Smart Client network Web Client Rich Internet Application http Service Consumer Any Application Connector multi protocol
  25. © 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