SlideShare ist ein Scribd-Unternehmen logo
1 von 22
Smalltalk in Large-Scale
Enterprise Architectures
Rob Vens
http://www.robvens.com
rob.vens@reflektis.com
Traditional Smalltalk Applications
 Client-Server
 Fat client
 GUI intensive
Recent developments
 Web enabled
 Using web standards
 HTML
 XML
 Soap
 WDSL
 UDDI
 Poor support for distribution, connectivity (i.e.
with Java and J2EE)
Smalltalk market share
 Negligible – (don’t blame ESUG)
 Largest in 1994 (according to STIC) when
Smalltalk was competing with C++
 Steep decline since 1995 when Sun
announced Java
 Now a niche player?
Can you sell Smalltalk to your
management?
 Proven technology is what they want
 If it’s not Java it’s not modern
 Or the old arguments:
 Smalltalk is slow
 Too pure OO
 Object-orientation has failed
The Java onslaught
 Many (if not most) Smalltalk developers
moved to the Java world
 Many see Microsoft .NET as a more
attractive alternative, with possibilities to
continue to work with Smalltalk (Dave
Simmons’ SmallScript)
But there is another alternative …
 Basic idea is to use Smalltalk as an
Enterprise Application Integrator (EAI)
 Several architectures are possible to do this
 I will propose a business-centred architecture
What is a business-centred architecture?
 Hub-and-spoke architecture
 All business logic in the hub
 Publish-and-subscribe mechanism in the
spokes
 Adapters implementing the spokes
 Smalltalk in the hub, anything else in the rest
Core Model
Security
Persistency
ERPJSP
CRM
BusinessBusiness
DomainDomain
What is business-centred?
 All business logic is concentrated in one
logical component
 There is no business logic in any other
component
 Esp. ERP, CRM
 Also messaging middleware is connected without
business logic in the middleware tier
 This component is placed in the hub
Why Smalltalk?
 Smalltalk is eminently suited for the business
logic component because:
 Language and problem domain are closer than
any language I know
 For the business domain component other
concerns are important (vs. service components):
 Flexibility
 Extensibility
Characteristics of the domain component
1. There is an OO model of the business
2. This model is a Roger Rabbit model
3. The model is written in UML
4. It is implemented in Smalltalk as an
executable
5. It attempts to be an exact replica of the
business in software – a kind of simulation
model
OO model of the business
 Not new for many of you
 Recapitulating:
 OO is (as far as I know) the only modelling tool
that effectively deals with complexity
 Only OO models can deal with the scalability
problem (Alan Kays dog house metaphor)
 Three alternatives exist:
 Process modelling
 Data modelling
 Distributed agent models
Roger Rabbit models
 Also called: “active objects”
 What is active in the “real” world is passive in
the model and vice-versa
 Business processes unfold in a backward-
chaining process of objects delegating
responsibilities (Responsibility Driven Design,
CRC sessions)
 Process model is a “pull model”
 “Out of Control”
UML
 Smalltalk can be the modelling language but I
hope we can agree that this is not ideal
 UML models need to be executable (OMG
target in 2.0 and MDA)
 Close mapping between programming
language and UML needed for the business
component
 UML support needed in IDE’s!!!
The Smalltalk executable
 Logical component:
 Can be implemented distributed
 EasyBoard model
 CORBA
 Others …
 Probably needs fault-tolerance support (question
for the audience)
 Contains no technical issues (i.e. database
transparency, user interface unaware, etc.)
Modelling issues: Simulation science
 The running executable is like a running
simulation
 Executable models need to deal with
dynamic behaviour, esp.:
 Waiting lines
 Stochastics
 Smalltalk has deep roots in simulation!
Criterion
The business component
can and will run
with all other components unavailable
Hub-and-spoke: the spokes
 This is where Java (or whatever) comes in
 Publish-and-subscribe mechanism
 Well known to Smalltalkers
 Adapters in VisualWorks and VisualAge
 Based on event model in the domain
 MVC dependents
Links between hub and spokes
 Events out, messages in
 No direct dependencies between business
component and “outside world”
Current work
 Of course, this architecture is not dependent on
Smalltalk
 Currently implemented in Dutch Public Order and
Security (mainly Police) with Java used for the hub
 Java creates many problems
 J2EE by long not ready for domain implementations
 Too much focus on database connectivity
 Too little support for active objects
 Internal concurrency not allowed
 Management could not be convinced to use
Smalltalk 
Thank you

Weitere ähnliche Inhalte

Ähnlich wie Smalltalk in large scale enterprise architectures

Smalltalk in Large-scale Enterprise Architectures
Smalltalk in Large-scale Enterprise ArchitecturesSmalltalk in Large-scale Enterprise Architectures
Smalltalk in Large-scale Enterprise ArchitecturesESUG
 
Introduction to Business Modeling
Introduction to Business ModelingIntroduction to Business Modeling
Introduction to Business ModelingLaurence White
 
Agile Modeling with Uml and Visual Studio 2010
Agile Modeling with Uml and Visual Studio 2010Agile Modeling with Uml and Visual Studio 2010
Agile Modeling with Uml and Visual Studio 2010Ogren Paunović
 
Smalltalk speaks dot net
Smalltalk speaks dot netSmalltalk speaks dot net
Smalltalk speaks dot netESUG
 
[DSC Europe 23] Igor Ilic - Redefining User Experience with Large Language Mo...
[DSC Europe 23] Igor Ilic - Redefining User Experience with Large Language Mo...[DSC Europe 23] Igor Ilic - Redefining User Experience with Large Language Mo...
[DSC Europe 23] Igor Ilic - Redefining User Experience with Large Language Mo...DataScienceConferenc1
 
Software architecture-patterns
Software architecture-patternsSoftware architecture-patterns
Software architecture-patternspedro
 
Software arquitectura patron diseño
Software arquitectura patron diseñoSoftware arquitectura patron diseño
Software arquitectura patron diseñopedro
 
software-architecture-patterns
software-architecture-patternssoftware-architecture-patterns
software-architecture-patternsPallav Kumar
 
Agile Modeling using the Architecture Tools in VS 2010
Agile Modeling  using the Architecture Tools in VS 2010Agile Modeling  using the Architecture Tools in VS 2010
Agile Modeling using the Architecture Tools in VS 2010Gary Pedretti
 
Using Agile Methodologies
Using Agile MethodologiesUsing Agile Methodologies
Using Agile MethodologiesDave Kellogg
 
Microservice architecture : Part 1
Microservice architecture : Part 1Microservice architecture : Part 1
Microservice architecture : Part 1NodeXperts
 
Forms 2 Future - the ongoing journey into the future for Oracle based organiz...
Forms 2 Future - the ongoing journey into the future for Oracle based organiz...Forms 2 Future - the ongoing journey into the future for Oracle based organiz...
Forms 2 Future - the ongoing journey into the future for Oracle based organiz...Lucas Jellema
 
NET Event - Migrating WinForm
NET Event - Migrating WinFormNET Event - Migrating WinForm
NET Event - Migrating WinFormRaffaele Garofalo
 
VJUG - Building Modular Java Applications in the Cloud Age
VJUG - Building Modular Java Applications in the Cloud AgeVJUG - Building Modular Java Applications in the Cloud Age
VJUG - Building Modular Java Applications in the Cloud AgeBert Ertman
 
Innovate2011 DevOps TSRM RTC
Innovate2011 DevOps TSRM RTCInnovate2011 DevOps TSRM RTC
Innovate2011 DevOps TSRM RTCSteve Speicher
 
Fed Up Of Framework Hype Dcphp
Fed Up Of Framework Hype DcphpFed Up Of Framework Hype Dcphp
Fed Up Of Framework Hype DcphpTony Bibbs
 

Ähnlich wie Smalltalk in large scale enterprise architectures (20)

Smalltalk in Large-scale Enterprise Architectures
Smalltalk in Large-scale Enterprise ArchitecturesSmalltalk in Large-scale Enterprise Architectures
Smalltalk in Large-scale Enterprise Architectures
 
Introduction to Business Modeling
Introduction to Business ModelingIntroduction to Business Modeling
Introduction to Business Modeling
 
ERP_Up_Down.ppt
ERP_Up_Down.pptERP_Up_Down.ppt
ERP_Up_Down.ppt
 
Agile Modeling with Uml and Visual Studio 2010
Agile Modeling with Uml and Visual Studio 2010Agile Modeling with Uml and Visual Studio 2010
Agile Modeling with Uml and Visual Studio 2010
 
Smalltalk speaks dot net
Smalltalk speaks dot netSmalltalk speaks dot net
Smalltalk speaks dot net
 
[DSC Europe 23] Igor Ilic - Redefining User Experience with Large Language Mo...
[DSC Europe 23] Igor Ilic - Redefining User Experience with Large Language Mo...[DSC Europe 23] Igor Ilic - Redefining User Experience with Large Language Mo...
[DSC Europe 23] Igor Ilic - Redefining User Experience with Large Language Mo...
 
Software architecture-patterns
Software architecture-patternsSoftware architecture-patterns
Software architecture-patterns
 
Software arquitectura patron diseño
Software arquitectura patron diseñoSoftware arquitectura patron diseño
Software arquitectura patron diseño
 
software-architecture-patterns
software-architecture-patternssoftware-architecture-patterns
software-architecture-patterns
 
Agile Modeling using the Architecture Tools in VS 2010
Agile Modeling  using the Architecture Tools in VS 2010Agile Modeling  using the Architecture Tools in VS 2010
Agile Modeling using the Architecture Tools in VS 2010
 
Let's talk about... Microservices
Let's talk about... MicroservicesLet's talk about... Microservices
Let's talk about... Microservices
 
Using Agile Methodologies
Using Agile MethodologiesUsing Agile Methodologies
Using Agile Methodologies
 
MDA
MDAMDA
MDA
 
Microservice architecture : Part 1
Microservice architecture : Part 1Microservice architecture : Part 1
Microservice architecture : Part 1
 
Forms 2 Future - the ongoing journey into the future for Oracle based organiz...
Forms 2 Future - the ongoing journey into the future for Oracle based organiz...Forms 2 Future - the ongoing journey into the future for Oracle based organiz...
Forms 2 Future - the ongoing journey into the future for Oracle based organiz...
 
NET Event - Migrating WinForm
NET Event - Migrating WinFormNET Event - Migrating WinForm
NET Event - Migrating WinForm
 
VJUG - Building Modular Java Applications in the Cloud Age
VJUG - Building Modular Java Applications in the Cloud AgeVJUG - Building Modular Java Applications in the Cloud Age
VJUG - Building Modular Java Applications in the Cloud Age
 
Domain Driven Design
Domain Driven DesignDomain Driven Design
Domain Driven Design
 
Innovate2011 DevOps TSRM RTC
Innovate2011 DevOps TSRM RTCInnovate2011 DevOps TSRM RTC
Innovate2011 DevOps TSRM RTC
 
Fed Up Of Framework Hype Dcphp
Fed Up Of Framework Hype DcphpFed Up Of Framework Hype Dcphp
Fed Up Of Framework Hype Dcphp
 

Kürzlich hochgeladen

Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
Google AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGGoogle AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGSujit Pal
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 

Kürzlich hochgeladen (20)

Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
Google AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGGoogle AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAG
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 

Smalltalk in large scale enterprise architectures

  • 1. Smalltalk in Large-Scale Enterprise Architectures Rob Vens http://www.robvens.com rob.vens@reflektis.com
  • 2. Traditional Smalltalk Applications  Client-Server  Fat client  GUI intensive
  • 3. Recent developments  Web enabled  Using web standards  HTML  XML  Soap  WDSL  UDDI  Poor support for distribution, connectivity (i.e. with Java and J2EE)
  • 4. Smalltalk market share  Negligible – (don’t blame ESUG)  Largest in 1994 (according to STIC) when Smalltalk was competing with C++  Steep decline since 1995 when Sun announced Java  Now a niche player?
  • 5. Can you sell Smalltalk to your management?  Proven technology is what they want  If it’s not Java it’s not modern  Or the old arguments:  Smalltalk is slow  Too pure OO  Object-orientation has failed
  • 6. The Java onslaught  Many (if not most) Smalltalk developers moved to the Java world  Many see Microsoft .NET as a more attractive alternative, with possibilities to continue to work with Smalltalk (Dave Simmons’ SmallScript)
  • 7. But there is another alternative …  Basic idea is to use Smalltalk as an Enterprise Application Integrator (EAI)  Several architectures are possible to do this  I will propose a business-centred architecture
  • 8. What is a business-centred architecture?  Hub-and-spoke architecture  All business logic in the hub  Publish-and-subscribe mechanism in the spokes  Adapters implementing the spokes  Smalltalk in the hub, anything else in the rest
  • 10. What is business-centred?  All business logic is concentrated in one logical component  There is no business logic in any other component  Esp. ERP, CRM  Also messaging middleware is connected without business logic in the middleware tier  This component is placed in the hub
  • 11. Why Smalltalk?  Smalltalk is eminently suited for the business logic component because:  Language and problem domain are closer than any language I know  For the business domain component other concerns are important (vs. service components):  Flexibility  Extensibility
  • 12. Characteristics of the domain component 1. There is an OO model of the business 2. This model is a Roger Rabbit model 3. The model is written in UML 4. It is implemented in Smalltalk as an executable 5. It attempts to be an exact replica of the business in software – a kind of simulation model
  • 13. OO model of the business  Not new for many of you  Recapitulating:  OO is (as far as I know) the only modelling tool that effectively deals with complexity  Only OO models can deal with the scalability problem (Alan Kays dog house metaphor)  Three alternatives exist:  Process modelling  Data modelling  Distributed agent models
  • 14. Roger Rabbit models  Also called: “active objects”  What is active in the “real” world is passive in the model and vice-versa  Business processes unfold in a backward- chaining process of objects delegating responsibilities (Responsibility Driven Design, CRC sessions)  Process model is a “pull model”  “Out of Control”
  • 15. UML  Smalltalk can be the modelling language but I hope we can agree that this is not ideal  UML models need to be executable (OMG target in 2.0 and MDA)  Close mapping between programming language and UML needed for the business component  UML support needed in IDE’s!!!
  • 16. The Smalltalk executable  Logical component:  Can be implemented distributed  EasyBoard model  CORBA  Others …  Probably needs fault-tolerance support (question for the audience)  Contains no technical issues (i.e. database transparency, user interface unaware, etc.)
  • 17. Modelling issues: Simulation science  The running executable is like a running simulation  Executable models need to deal with dynamic behaviour, esp.:  Waiting lines  Stochastics  Smalltalk has deep roots in simulation!
  • 18. Criterion The business component can and will run with all other components unavailable
  • 19. Hub-and-spoke: the spokes  This is where Java (or whatever) comes in  Publish-and-subscribe mechanism  Well known to Smalltalkers  Adapters in VisualWorks and VisualAge  Based on event model in the domain  MVC dependents
  • 20. Links between hub and spokes  Events out, messages in  No direct dependencies between business component and “outside world”
  • 21. Current work  Of course, this architecture is not dependent on Smalltalk  Currently implemented in Dutch Public Order and Security (mainly Police) with Java used for the hub  Java creates many problems  J2EE by long not ready for domain implementations  Too much focus on database connectivity  Too little support for active objects  Internal concurrency not allowed  Management could not be convinced to use Smalltalk 

Hinweis der Redaktion

  1. Don’t sell Smalltalk – sell it’s strengths. Use the standard technologies for the technical areas. IT is growing up: this means that emphasis will be less on technical issues, and will move to business alignment.
  2. Hub-and-spoke and bus architectures are the two most important logical architectures in EAI (Enterprise Application Integration). Bus architectures are generally considered to be more scalable, but these architectures typically put a messaging component in the critical location. “…anything else…” of course means J2EE or .NET currently.
  3. What we will try to achieve is maximum reuse and maximum business alignment. This is difficult with many large scale enterprise tools such as CRM software. The strategy here is to use the software – but avoid to implement business logic in it. Or if you do make sure it is an easily adaptable replica of the “real” business logic component in the centre.
  4. We might say that Smalltalk is used as a business modelling language. Don’t sell Smalltalk: sell business modelling.
  5. But … business modelling is not business modelling. There are various strategies here. Use OO for what it’s best in: reducing complexity in large models. Modelling is an art. Technology is not. This is the critical component, but I argue that for large companies this can be done with a relative small group.
  6. Most systems I see use one of the first two of the metaphors. Distributed agent model are becoming popular, but are mainly seen in the academic area.
  7. Usually complex business processes are not modelled as such. They are generated. The stratum from which they arise is the object infrastructure which decides, on an ad-hoc basis, what the ‘best” sequence of events will be to do the thing needed. The thing needed is a responsibility of an object, for example: An insurance policy that want to sell itself A ship in a harbour that wants to unload A criminal that wants to arrest himself Notice that objects in the model are active, while passive in the real world and vice-versa. This is a pattern. It is just a modelling trick, which reduces complexity. “Pull models” is an industry term. Look for this on the web. Also called DTO (deliver-to-order). This is typical backward chaining process generation.