際際滷

際際滷Share a Scribd company logo
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  (dont 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 its not Java its 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 IDEs!!!
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

More Related Content

Similar to Smalltalk in large scale enterprise architectures (20)

PDF
Smalltalk in Large-scale Enterprise Architectures
ESUG
PPT
Smalltalk speaks dot net
ESUG
PDF
Smalltalk in Enterprise Applications
ESUG
PDF
Django 竪 pronto per l'Enterprise
PyCon Italia
PPT
Riding with camel
Sunitha Satyadas
PPT
W2e Praesi
Web 2.0 Expo
PDF
Smalltalk and Business
Mariano Mart鱈nez Peck
PDF
Smalltalk In a Nutshell
Michele Lanza
PDF
Newspeak: Evolving Smalltalk for the Age of the Net
ESUG
PPT
Makersbay Nex-Gen Software Development Overview
slodha
PDF
L01 Introduction to Enterprise Software
lafur Andri Ragnarsson
PDF
Django in enterprise world
Simone Federici
PDF
Design Decisions For Understanding Software Architecture
Tiffany Graham
PDF
Cincom Smalltalk: Present, Future & Smalltalk Advocacy
ESUG
PDF
Rethink Smalltalk
ESUG
PDF
Keynote-Service Orientation Why is it good for your business
WSO2
PDF
Brian Loesgen An Early Look At Oslo
SOA Symposium
PPTX
Presentation6
Mohd Yusak
PPTX
Let's talk about... Microservices
Alessandro Giorgetti
PPTX
Delivering Data - Social Networking Personal
iasaireland
Smalltalk in Large-scale Enterprise Architectures
ESUG
Smalltalk speaks dot net
ESUG
Smalltalk in Enterprise Applications
ESUG
Django 竪 pronto per l'Enterprise
PyCon Italia
Riding with camel
Sunitha Satyadas
W2e Praesi
Web 2.0 Expo
Smalltalk and Business
Mariano Mart鱈nez Peck
Smalltalk In a Nutshell
Michele Lanza
Newspeak: Evolving Smalltalk for the Age of the Net
ESUG
Makersbay Nex-Gen Software Development Overview
slodha
L01 Introduction to Enterprise Software
lafur Andri Ragnarsson
Django in enterprise world
Simone Federici
Design Decisions For Understanding Software Architecture
Tiffany Graham
Cincom Smalltalk: Present, Future & Smalltalk Advocacy
ESUG
Rethink Smalltalk
ESUG
Keynote-Service Orientation Why is it good for your business
WSO2
Brian Loesgen An Early Look At Oslo
SOA Symposium
Presentation6
Mohd Yusak
Let's talk about... Microservices
Alessandro Giorgetti
Delivering Data - Social Networking Personal
iasaireland

Recently uploaded (20)

PPTX
UserCon Belgium: Honey, VMware increased my bill
stijn40
PPTX
01_Approach Cyber- DORA Incident Management.pptx
FinTech Belgium
PPTX
CapCut Pro Crack For PC Latest Version {Fully Unlocked} 2025
pcprocore
PDF
Redefining Work in the Age of AI - What to expect? How to prepare? Why it mat...
Malinda Kapuruge
PDF
EIS-Webinar-Engineering-Retail-Infrastructure-06-16-2025.pdf
Earley Information Science
PDF
Why aren't you using FME Flow's CPU Time?
Safe Software
PDF
Database Benchmarking for Performance Masterclass: Session 1 - Benchmarking F...
ScyllaDB
PDF
The Growing Value and Application of FME & GenAI
Safe Software
PDF
Python Conference Singapore - 19 Jun 2025
ninefyi
PDF
Quantum AI Discoveries: Fractal Patterns Consciousness and Cyclical Universes
Saikat Basu
PDF
Java 25 and Beyond - A Roadmap of Innovations
Ana-Maria Mihalceanu
PDF
From Chatbot to Destroyer of Endpoints - Can ChatGPT Automate EDR Bypasses (1...
Priyanka Aash
PDF
FME as an Orchestration Tool with Principles From Data Gravity
Safe Software
PDF
Plugging AI into everything: Model Context Protocol Simplified.pdf
Abati Adewale
PPTX
叶Wondershare Filmora Crack 14.0.7 + Key Download 2025
sebastian aliya
PDF
How to Visualize the Spatio-Temporal Data Using CesiumJS
SANGHEE SHIN
PDF
Kubernetes - Architecture & Components.pdf
geethak285
PDF
2025_06_18 - OpenMetadata Community Meeting.pdf
OpenMetadata
PPTX
Paycifi - Programmable Trust_Breakfast_PPTXT
FinTech Belgium
PPTX
Enabling the Digital Artisan keynote at ICOCI 2025
Alan Dix
UserCon Belgium: Honey, VMware increased my bill
stijn40
01_Approach Cyber- DORA Incident Management.pptx
FinTech Belgium
CapCut Pro Crack For PC Latest Version {Fully Unlocked} 2025
pcprocore
Redefining Work in the Age of AI - What to expect? How to prepare? Why it mat...
Malinda Kapuruge
EIS-Webinar-Engineering-Retail-Infrastructure-06-16-2025.pdf
Earley Information Science
Why aren't you using FME Flow's CPU Time?
Safe Software
Database Benchmarking for Performance Masterclass: Session 1 - Benchmarking F...
ScyllaDB
The Growing Value and Application of FME & GenAI
Safe Software
Python Conference Singapore - 19 Jun 2025
ninefyi
Quantum AI Discoveries: Fractal Patterns Consciousness and Cyclical Universes
Saikat Basu
Java 25 and Beyond - A Roadmap of Innovations
Ana-Maria Mihalceanu
From Chatbot to Destroyer of Endpoints - Can ChatGPT Automate EDR Bypasses (1...
Priyanka Aash
FME as an Orchestration Tool with Principles From Data Gravity
Safe Software
Plugging AI into everything: Model Context Protocol Simplified.pdf
Abati Adewale
叶Wondershare Filmora Crack 14.0.7 + Key Download 2025
sebastian aliya
How to Visualize the Spatio-Temporal Data Using CesiumJS
SANGHEE SHIN
Kubernetes - Architecture & Components.pdf
geethak285
2025_06_18 - OpenMetadata Community Meeting.pdf
OpenMetadata
Paycifi - Programmable Trust_Breakfast_PPTXT
FinTech Belgium
Enabling the Digital Artisan keynote at ICOCI 2025
Alan Dix
Ad

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 (dont 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 its not Java its 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 IDEs!!!
  • 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

Editor's Notes

  • #8: Dont sell Smalltalk sell its 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.
  • #9: 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.
  • #10: 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.
  • #12: We might say that Smalltalk is used as a business modelling language. Dont sell Smalltalk: sell business modelling.
  • #13: But business modelling is not business modelling. There are various strategies here. Use OO for what its 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.
  • #14: 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.
  • #15: 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.