Enviar pesquisa
Carregar
Smalltalk in Enterprise Applications
•
0 gostou
•
249 visualizações
E
ESUG
Seguir
Smalltalk in Enterprise Applications. ESUG 2010, Barcelona, Spain
Leia menos
Leia mais
Tecnologia
Denunciar
Compartilhar
Denunciar
Compartilhar
1 de 37
Baixar agora
Baixar para ler offline
Recomendados
Smalltalk in Large-scale Enterprise Architectures
Smalltalk in Large-scale Enterprise Architectures
ESUG
Easier SOA with EasySOA - OW2 Conference 2010 – 23-24 November, Paris
Easier SOA with EasySOA - OW2 Conference 2010 – 23-24 November, Paris
Marc Dutoo
Innovate2011 DevOps TSRM RTC
Innovate2011 DevOps TSRM RTC
Steve Speicher
JMS 2.0
JMS 2.0
Arun Gupta
Bestpractices Portal Projects
Bestpractices Portal Projects
allerhed
JavaFX - Bringing rich Internet applications ...
JavaFX - Bringing rich Internet applications ...
terrencebarr
Sioux Hot-or-Not: Domain Driven Design (Edwin Van Dillen)
Sioux Hot-or-Not: Domain Driven Design (Edwin Van Dillen)
siouxhotornot
Extending The Value Of Oracle Crm On Demand Through Cloud Based Extensibility
Extending The Value Of Oracle Crm On Demand Through Cloud Based Extensibility
Jerome Leonard
Recomendados
Smalltalk in Large-scale Enterprise Architectures
Smalltalk in Large-scale Enterprise Architectures
ESUG
Easier SOA with EasySOA - OW2 Conference 2010 – 23-24 November, Paris
Easier SOA with EasySOA - OW2 Conference 2010 – 23-24 November, Paris
Marc Dutoo
Innovate2011 DevOps TSRM RTC
Innovate2011 DevOps TSRM RTC
Steve Speicher
JMS 2.0
JMS 2.0
Arun Gupta
Bestpractices Portal Projects
Bestpractices Portal Projects
allerhed
JavaFX - Bringing rich Internet applications ...
JavaFX - Bringing rich Internet applications ...
terrencebarr
Sioux Hot-or-Not: Domain Driven Design (Edwin Van Dillen)
Sioux Hot-or-Not: Domain Driven Design (Edwin Van Dillen)
siouxhotornot
Extending The Value Of Oracle Crm On Demand Through Cloud Based Extensibility
Extending The Value Of Oracle Crm On Demand Through Cloud Based Extensibility
Jerome Leonard
BPMN, BPEL, ESB or maybe Java? What should I use to implement my project?
BPMN, BPEL, ESB or maybe Java? What should I use to implement my project?
Guido Schmutz
Drupal Summit Presentation by Orchestra Team
Drupal Summit Presentation by Orchestra Team
Orchestra LLC
Are Clouds a Game Change? Business says Yes; IT says No!
Are Clouds a Game Change? Business says Yes; IT says No!
Capgemini
Interoperable Open Architecture through a Common Component Model
Interoperable Open Architecture through a Common Component Model
Remedy IT
Oracle enterprise architects day
Oracle enterprise architects day
Ayodele Peter Boglo
Virtual dev-day-java7-keynote-1641807
Virtual dev-day-java7-keynote-1641807
Vinay H G
S424. Soa Mainframe Practices Best And Worst
S424. Soa Mainframe Practices Best And Worst
MichaelErichsen
Java on zSystems zOS
Java on zSystems zOS
Tim Ellison
Next-Generation Enterprise Application Development with SpringSource dm Serve...
Next-Generation Enterprise Application Development with SpringSource dm Serve...
Aditya Jha
Company profile Metrasys
Company profile Metrasys
PT Sigma Metrasys Solution
Dom introduction-website-v1.0
Dom introduction-website-v1.0
Cogility
WeWebU Migration 2 Alfresco
WeWebU Migration 2 Alfresco
WeWebU Software AG
Mohamed attia farag
Mohamed attia farag
Mohammed Attia Farag
CV - Irwan Syahputra Harahap
CV - Irwan Syahputra Harahap
irwan syahputra
MagicLamp Resourcing Aug 2010
MagicLamp Resourcing Aug 2010
tdesbarres
Novell ZENworks Application Virtualization Advanced Administration
Novell ZENworks Application Virtualization Advanced Administration
Novell
Con11257 schifano con11257-best practices for deploying highly scalable virtu...
Con11257 schifano con11257-best practices for deploying highly scalable virtu...
Berry Clemens
Brain Cell IT - About our company
Brain Cell IT - About our company
Brain Cell IT
Siebel Mobile Solutions Overview
Siebel Mobile Solutions Overview
Ilya Milshtein
Con8289 r12 maintenance tips heisler heisler-con8289
Con8289 r12 maintenance tips heisler heisler-con8289
Berry Clemens
Visualizing Dynamic Metrics with Profiling Blueprints
Visualizing Dynamic Metrics with Profiling Blueprints
ESUG
F-Script
F-Script
ESUG
Mais conteúdo relacionado
Mais procurados
BPMN, BPEL, ESB or maybe Java? What should I use to implement my project?
BPMN, BPEL, ESB or maybe Java? What should I use to implement my project?
Guido Schmutz
Drupal Summit Presentation by Orchestra Team
Drupal Summit Presentation by Orchestra Team
Orchestra LLC
Are Clouds a Game Change? Business says Yes; IT says No!
Are Clouds a Game Change? Business says Yes; IT says No!
Capgemini
Interoperable Open Architecture through a Common Component Model
Interoperable Open Architecture through a Common Component Model
Remedy IT
Oracle enterprise architects day
Oracle enterprise architects day
Ayodele Peter Boglo
Virtual dev-day-java7-keynote-1641807
Virtual dev-day-java7-keynote-1641807
Vinay H G
S424. Soa Mainframe Practices Best And Worst
S424. Soa Mainframe Practices Best And Worst
MichaelErichsen
Java on zSystems zOS
Java on zSystems zOS
Tim Ellison
Next-Generation Enterprise Application Development with SpringSource dm Serve...
Next-Generation Enterprise Application Development with SpringSource dm Serve...
Aditya Jha
Company profile Metrasys
Company profile Metrasys
PT Sigma Metrasys Solution
Dom introduction-website-v1.0
Dom introduction-website-v1.0
Cogility
WeWebU Migration 2 Alfresco
WeWebU Migration 2 Alfresco
WeWebU Software AG
Mohamed attia farag
Mohamed attia farag
Mohammed Attia Farag
CV - Irwan Syahputra Harahap
CV - Irwan Syahputra Harahap
irwan syahputra
MagicLamp Resourcing Aug 2010
MagicLamp Resourcing Aug 2010
tdesbarres
Novell ZENworks Application Virtualization Advanced Administration
Novell ZENworks Application Virtualization Advanced Administration
Novell
Con11257 schifano con11257-best practices for deploying highly scalable virtu...
Con11257 schifano con11257-best practices for deploying highly scalable virtu...
Berry Clemens
Brain Cell IT - About our company
Brain Cell IT - About our company
Brain Cell IT
Siebel Mobile Solutions Overview
Siebel Mobile Solutions Overview
Ilya Milshtein
Con8289 r12 maintenance tips heisler heisler-con8289
Con8289 r12 maintenance tips heisler heisler-con8289
Berry Clemens
Mais procurados
(20)
BPMN, BPEL, ESB or maybe Java? What should I use to implement my project?
BPMN, BPEL, ESB or maybe Java? What should I use to implement my project?
Drupal Summit Presentation by Orchestra Team
Drupal Summit Presentation by Orchestra Team
Are Clouds a Game Change? Business says Yes; IT says No!
Are Clouds a Game Change? Business says Yes; IT says No!
Interoperable Open Architecture through a Common Component Model
Interoperable Open Architecture through a Common Component Model
Oracle enterprise architects day
Oracle enterprise architects day
Virtual dev-day-java7-keynote-1641807
Virtual dev-day-java7-keynote-1641807
S424. Soa Mainframe Practices Best And Worst
S424. Soa Mainframe Practices Best And Worst
Java on zSystems zOS
Java on zSystems zOS
Next-Generation Enterprise Application Development with SpringSource dm Serve...
Next-Generation Enterprise Application Development with SpringSource dm Serve...
Company profile Metrasys
Company profile Metrasys
Dom introduction-website-v1.0
Dom introduction-website-v1.0
WeWebU Migration 2 Alfresco
WeWebU Migration 2 Alfresco
Mohamed attia farag
Mohamed attia farag
CV - Irwan Syahputra Harahap
CV - Irwan Syahputra Harahap
MagicLamp Resourcing Aug 2010
MagicLamp Resourcing Aug 2010
Novell ZENworks Application Virtualization Advanced Administration
Novell ZENworks Application Virtualization Advanced Administration
Con11257 schifano con11257-best practices for deploying highly scalable virtu...
Con11257 schifano con11257-best practices for deploying highly scalable virtu...
Brain Cell IT - About our company
Brain Cell IT - About our company
Siebel Mobile Solutions Overview
Siebel Mobile Solutions Overview
Con8289 r12 maintenance tips heisler heisler-con8289
Con8289 r12 maintenance tips heisler heisler-con8289
Destaque
Visualizing Dynamic Metrics with Profiling Blueprints
Visualizing Dynamic Metrics with Profiling Blueprints
ESUG
F-Script
F-Script
ESUG
Smartcard-Login into Gemstone
Smartcard-Login into Gemstone
ESUG
Pharo
Pharo
ESUG
Seaside
Seaside
ESUG
Building Ruby in Smalltalk
Building Ruby in Smalltalk
ESUG
Internet application development using a meta-repository
Internet application development using a meta-repository
ESUG
Destaque
(7)
Visualizing Dynamic Metrics with Profiling Blueprints
Visualizing Dynamic Metrics with Profiling Blueprints
F-Script
F-Script
Smartcard-Login into Gemstone
Smartcard-Login into Gemstone
Pharo
Pharo
Seaside
Seaside
Building Ruby in Smalltalk
Building Ruby in Smalltalk
Internet application development using a meta-repository
Internet application development using a meta-repository
Semelhante a Smalltalk in Enterprise Applications
Mohamed attia farag cv
Mohamed attia farag cv
Mohammed Attia Farag
Model Driven Architecture (MDA): Motivations, Status & Future
Model Driven Architecture (MDA): Motivations, Status & Future
elliando dias
MicroProfile for MicroServices
MicroProfile for MicroServices
Mert Çalışkan
Saptalopa_Resume - Copy
Saptalopa_Resume - Copy
saptalopa routray
토드(Toad) 신제품 및 크로스 플랫폼 전략(1)
토드(Toad) 신제품 및 크로스 플랫폼 전략(1)
mosaicnet
WS: Kohler, Logica - Running operations devops style
WS: Kohler, Logica - Running operations devops style
CloudOps Summit
Open Stack China Trip Sz0922
Open Stack China Trip Sz0922
OpenCity Community
Logesh Kumaran M
Logesh Kumaran M
Logesh Kumaran
The Nuxeo Way: leveraging open source to build a world-class ECM platform
The Nuxeo Way: leveraging open source to build a world-class ECM platform
Nuxeo
Cloud Computing
Cloud Computing
Samuel Dratwa
Java/J2EE Companion
Java/J2EE Companion
Raghavan Mohan
Java Micro Edition (ME) 8 Deep Dive
Java Micro Edition (ME) 8 Deep Dive
terrencebarr
2. oracle days sebastiaan vingerhoed_buckarest_november3rd
2. oracle days sebastiaan vingerhoed_buckarest_november3rd
Doina Draganescu
Cloud Computing - Making IT Simple
Cloud Computing - Making IT Simple
Bob Rhubart
Oracle Fusion Middleware - pragmatic approach to build up your applications -...
Oracle Fusion Middleware - pragmatic approach to build up your applications -...
ORACLE USER GROUP ESTONIA
EclipseConEurope2012 SOA - Talend with EasySOA
EclipseConEurope2012 SOA - Talend with EasySOA
Marc Dutoo
KBACE Applied Identity Management
KBACE Applied Identity Management
KBACE Technologies, Inc.
Resume_nakri
Resume_nakri
santi nath dey
Tw Technology Radar Qtb Sep11
Tw Technology Radar Qtb Sep11
Adrian Treacy
Introduction to Java Micro Edition (ME) 8
Introduction to Java Micro Edition (ME) 8
terrencebarr
Semelhante a Smalltalk in Enterprise Applications
(20)
Mohamed attia farag cv
Mohamed attia farag cv
Model Driven Architecture (MDA): Motivations, Status & Future
Model Driven Architecture (MDA): Motivations, Status & Future
MicroProfile for MicroServices
MicroProfile for MicroServices
Saptalopa_Resume - Copy
Saptalopa_Resume - Copy
토드(Toad) 신제품 및 크로스 플랫폼 전략(1)
토드(Toad) 신제품 및 크로스 플랫폼 전략(1)
WS: Kohler, Logica - Running operations devops style
WS: Kohler, Logica - Running operations devops style
Open Stack China Trip Sz0922
Open Stack China Trip Sz0922
Logesh Kumaran M
Logesh Kumaran M
The Nuxeo Way: leveraging open source to build a world-class ECM platform
The Nuxeo Way: leveraging open source to build a world-class ECM platform
Cloud Computing
Cloud Computing
Java/J2EE Companion
Java/J2EE Companion
Java Micro Edition (ME) 8 Deep Dive
Java Micro Edition (ME) 8 Deep Dive
2. oracle days sebastiaan vingerhoed_buckarest_november3rd
2. oracle days sebastiaan vingerhoed_buckarest_november3rd
Cloud Computing - Making IT Simple
Cloud Computing - Making IT Simple
Oracle Fusion Middleware - pragmatic approach to build up your applications -...
Oracle Fusion Middleware - pragmatic approach to build up your applications -...
EclipseConEurope2012 SOA - Talend with EasySOA
EclipseConEurope2012 SOA - Talend with EasySOA
KBACE Applied Identity Management
KBACE Applied Identity Management
Resume_nakri
Resume_nakri
Tw Technology Radar Qtb Sep11
Tw Technology Radar Qtb Sep11
Introduction to Java Micro Edition (ME) 8
Introduction to Java Micro Edition (ME) 8
Mais de ESUG
Workshop: Identifying concept inventories in agile programming
Workshop: Identifying concept inventories in agile programming
ESUG
Technical documentation support in Pharo
Technical documentation support in Pharo
ESUG
The Pharo Debugger and Debugging tools: Advances and Roadmap
The Pharo Debugger and Debugging tools: Advances and Roadmap
ESUG
Sequence: Pipeline modelling in Pharo
Sequence: Pipeline modelling in Pharo
ESUG
Migration process from monolithic to micro frontend architecture in mobile ap...
Migration process from monolithic to micro frontend architecture in mobile ap...
ESUG
Analyzing Dart Language with Pharo: Report and early results
Analyzing Dart Language with Pharo: Report and early results
ESUG
Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6
Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6
ESUG
A Unit Test Metamodel for Test Generation
A Unit Test Metamodel for Test Generation
ESUG
Creating Unit Tests Using Genetic Programming
Creating Unit Tests Using Genetic Programming
ESUG
Threaded-Execution and CPS Provide Smooth Switching Between Execution Modes
Threaded-Execution and CPS Provide Smooth Switching Between Execution Modes
ESUG
Exploring GitHub Actions through EGAD: An Experience Report
Exploring GitHub Actions through EGAD: An Experience Report
ESUG
Pharo: a reflective language A first systematic analysis of reflective APIs
Pharo: a reflective language A first systematic analysis of reflective APIs
ESUG
Garbage Collector Tuning
Garbage Collector Tuning
ESUG
Improving Performance Through Object Lifetime Profiling: the DataFrame Case
Improving Performance Through Object Lifetime Profiling: the DataFrame Case
ESUG
Pharo DataFrame: Past, Present, and Future
Pharo DataFrame: Past, Present, and Future
ESUG
thisContext in the Debugger
thisContext in the Debugger
ESUG
Websockets for Fencing Score
Websockets for Fencing Score
ESUG
ShowUs: PharoJS.org Develop in Pharo, Run on JavaScript
ShowUs: PharoJS.org Develop in Pharo, Run on JavaScript
ESUG
Advanced Object- Oriented Design Mooc
Advanced Object- Oriented Design Mooc
ESUG
A New Architecture Reconciling Refactorings and Transformations
A New Architecture Reconciling Refactorings and Transformations
ESUG
Mais de ESUG
(20)
Workshop: Identifying concept inventories in agile programming
Workshop: Identifying concept inventories in agile programming
Technical documentation support in Pharo
Technical documentation support in Pharo
The Pharo Debugger and Debugging tools: Advances and Roadmap
The Pharo Debugger and Debugging tools: Advances and Roadmap
Sequence: Pipeline modelling in Pharo
Sequence: Pipeline modelling in Pharo
Migration process from monolithic to micro frontend architecture in mobile ap...
Migration process from monolithic to micro frontend architecture in mobile ap...
Analyzing Dart Language with Pharo: Report and early results
Analyzing Dart Language with Pharo: Report and early results
Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6
Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6
A Unit Test Metamodel for Test Generation
A Unit Test Metamodel for Test Generation
Creating Unit Tests Using Genetic Programming
Creating Unit Tests Using Genetic Programming
Threaded-Execution and CPS Provide Smooth Switching Between Execution Modes
Threaded-Execution and CPS Provide Smooth Switching Between Execution Modes
Exploring GitHub Actions through EGAD: An Experience Report
Exploring GitHub Actions through EGAD: An Experience Report
Pharo: a reflective language A first systematic analysis of reflective APIs
Pharo: a reflective language A first systematic analysis of reflective APIs
Garbage Collector Tuning
Garbage Collector Tuning
Improving Performance Through Object Lifetime Profiling: the DataFrame Case
Improving Performance Through Object Lifetime Profiling: the DataFrame Case
Pharo DataFrame: Past, Present, and Future
Pharo DataFrame: Past, Present, and Future
thisContext in the Debugger
thisContext in the Debugger
Websockets for Fencing Score
Websockets for Fencing Score
ShowUs: PharoJS.org Develop in Pharo, Run on JavaScript
ShowUs: PharoJS.org Develop in Pharo, Run on JavaScript
Advanced Object- Oriented Design Mooc
Advanced Object- Oriented Design Mooc
A New Architecture Reconciling Refactorings and Transformations
A New Architecture Reconciling Refactorings and Transformations
Último
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
Antenna Manufacturer Coco
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
The Digital Insurer
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
ThousandEyes
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
apidays
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
Maria Levchenko
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
DianaGray10
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
lior mazor
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
ThousandEyes
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
Michael W. Hawkins
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 2024
Rafal Los
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Drew Madelung
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of Brazil
V3cube
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Miguel Araújo
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
hans926745
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
Khem
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
Anna Loughnan Colquhoun
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
The Digital Insurer
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
hans926745
Último
(20)
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
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 2024
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of Brazil
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
Smalltalk in Enterprise Applications
1.
Smalltalk in Enterprise
Applications ESUG Conference 2010 Barcelona
2.
About NovaTec
GmbH German software consulting company Offering full IT services for complex business applications Software engineering, enterprise architectures, integrated system life cycle management, development processes and enterprise application integration Offices in Stuttgart (Leinfelden-Echterdingen), Munich and Frankfurt About 120 employees, quickly growing Andreas Tönne Managing consultant at NovaTec GmbH, based in Frankfurt Responsible for developing the Smalltalk business area Working mainly with Smalltalk for 23 years Previously: Lead Consultant Europe at Cincom, vice-president at Georg Heeg © NovaTec 01.01.2010 2
3.
Finding a home
for Smalltalk in Enterprise Architectures © NovaTec 01.01.2010 3
4.
Where to Place
Smalltalk in the Enterprise (TOGAF) Business models • individual • business • specific Business unit (organization) • Business Business process - Processlandscapes • Architecture Business data • Business • IT Applicationlandscape • Information Individual application definition • Systems Services / use-cases Interfaces • Architecture Data • (Applications/Data) User technology Application platform standards Middleware (application server, MoM, DBMS) generic • Technology • Architecture Operatingsystem Hardware / network © NovaTec 01.01.2010 4
5.
Let us turn
back the clock by 15 years © NovaTec 01.01.2010 5
6.
Classes in 1995
Smalltalk was mature already Java fought for reasons to exist © NovaTec 01.01.2010 6
7.
Classes in 2010
Java is the biggest player in enterprise application development And Smalltalk? … is not known in the enterprise © NovaTec 01.01.2010 7
8.
What happened? © NovaTec
01.01.2010 8
9.
Wake Up!
This is a wake-up call! © NovaTec 01.01.2010 9
10.
What to Do?
JEE/EJB is here to stay for a long time Put Smalltalk into action in a JEE-centric application architecture Make a Smalltalk system a first-class citizen of JEE ? What needs to be changed in Smalltalk ? What needs to be added to integrate with JEE © NovaTec 01.01.2010 10
11.
You Are Good,
We Are Good! Smalltalk is good Java EE is good At the language level At the architecture level Less syntax Less frameworks to write yourself Less boilerplate code for a language-level Less boilerplate code for server task infrastructure tasks © NovaTec 01.01.2010 11
12.
JEE is not
as complex as it used to be Do you believe that Java EE / EJB applications are Awful to write? Complex with lots of technical details? © NovaTec 01.01.2010 12
13.
Hello World –
JEE 6 / EJB 3 Style Write server component 1. package org.acme; @Stateless @Remote public class HelloBean { public String sayHello() { return "Hello World!"; } } 2. Compile and package 3. Deploy © NovaTec 01.01.2010 13
14.
Hello World –
JEE 6 / EJB 3 Style cont. Write remote client application 4. package org.acme; public class HelloClient { @EJB HelloBean remoteBean; public static void main(String[] args) throws Exception { System.out.println(remoteBean.sayHello()); } } 5. Compile 6. Run © NovaTec 01.01.2010 14
15.
You Are Good,
We Are Good! cont. EJB server gave us instant and free 1. Scalability and robustness for thousands of users 2. Distributed server architecture 3. Standard persistence and distributed transactional control 4. Separation of client and remote business logic in components 5. Complete component life-cycle management Standard set of frameworks • Supported by implementations from various vendors • Very portable across vendor implementations I like this! © NovaTec 01.01.2010 15
16.
Why did this
not become the instant role model for Smalltalk on the server? Java took its time © NovaTec 01.01.2010 16
17.
Java Timeline
1995 – Java introduced to the public 1996 – JDK 1.0 released, NovaTec founded 1997 – JavaOne conference attracted 8.000 attendees, JDK 1.1, EJB 1.0 1999 – Java 2, J2EE goes beta, JavaOne has 20.000 attendees 2001 – JEE SDK has 1 mil. downloads 2002 – 2 mil. downloads 2003 – Java runs on 550 mil. desktops, Eclipse released 2004 – Java EE5 released 2005 – 10 years old, 4.5 mil. developers worldwide 2006 – current Java SE6 released with 21 updates, Java 7 coming this year 2009 – current Java EE6 released Java showed the most impressive and successful run in computing history ever © NovaTec 01.01.2010 17
18.
What Did the
Java Community Learn? POJO: Separate the business logic from the infrastructure • Remove dependency on technical superclasses and framework required code Bean: A lightweight component model that works • Supports abstract encapsulation, implementation independence, portability • Allows tools and frameworks of independent vendors Dependency Injection: Declarative composition of objects removes need for "plumbing" • Separation of concerns – business developer vs. framework supplier Annotation: Meta-programming reduces complexity and framework skills needs • Avoid cross-cutting concerns • Support POJOs Container: Externally supplied bean life-cycle and infrastructure is good © NovaTec 01.01.2010 18
19.
Container
Container: Operating system for running (enterprise) beans Different types of containers for different kinds of beans Key benefits: • Separate the business logic from the server infrastructure • Make the business logic independent of server vendor implementation • Framework and tool-supported component life-cycle, logging, transactions, … © NovaTec 01.01.2010 19
20.
EJB Container-Architecture of
JEE © NovaTec 01.01.2010 20
21.
Dependency Injection and
Annotations Pluggable business components, resources and infrastructure objects • Declaratively by annotations or XML files • Container builds the beans @Stateless @Remote public class EmployeeDemoSessionBean { @PersistenceContext EntityManager entityManager; public Employee createEmployee(String firstName, String lastName) { Employee employee = new Employee(); employee.setFirstName(firstName); employee.setLastName(lastName); entityManager.persist(employee); return employee; } ... } © NovaTec 01.01.2010 21
22.
And Smalltalk in
the Enterprise? Smalltalk in the enterprise spells: Do It Yourself! No standard component model Very little declarativeness and meta-programming in applications No abstract standard for application infrastructure Every project has to implement its own server infrastructure architecture © NovaTec 01.01.2010 22
23.
Do It Yourself
– One Example Thread-Pooling • http://onsmalltalk.com/2010-07-28-a-simple-thread-pool-for-smalltalk (Ramon Leon) • „So, let's write a thread pool.“ • James Robertson reply about BottomFeeder „What I should have done is what Ramon did - write a more general solution instead of burying it inside an app. „ It seems it it too simple to write necessary infrastructure ad-hoc Not everyone is able to write a good thread-pooling framework for high loads © NovaTec 01.01.2010 23
24.
Why Smalltalk in
the Enterprise? Why Bother? Complex business concept modelling Rapid domain changes Translating between domains And there is a lot of valuable legacy Smalltalk code… Under pressure to integrate in JEE or go away © NovaTec 01.01.2010 24
25.
Smalltalk Enterprise Edition
1.0 Do not try to reinvent or replace the JEE server! Model architecture and infrastructure abstractions of JEE Interface with JEE to make Smalltalk components first class citizens of JEE Turn Smalltalk into a "shadow container" of Smalltalk components © NovaTec 01.01.2010 25
26.
Benefits of a
Smalltalk Server Application Architecture Be part of the overall enterprise architecture and application design Improve the server qualities of Smalltalk Simplify the JEE-Smalltalk interface Attract standardized server development on a broader scale • Make 3rd party tools and framework development more attractive © NovaTec 01.01.2010 26
27.
Smalltalk Enterprise Edition
1.0 - TODO Introduce a component model Add more meta-programming using pragmas or similar Provide standard abstract frameworks for server tasks Abstract model of factories with dependency injection Abstract model of containers Bean-level interface between JEE and Smalltalk © NovaTec 01.01.2010 27
28.
Smalltalk EE –
Architecture Sketch (Java calling ST) © NovaTec 01.01.2010 28
29.
Which Smalltalk Components
in Version 1.0? Session beans for threaded services • Stateless for massively concurrent single tasks • Stateful for workflow oriented tasks Smalltalk should export session beans Proxy Java Bean (generated) only interface to use a Smalltalk component • Transactional control and security through this proxy JCA (Java Connector Architecture) option for further transactional and security integration Persistence is a topic for V1.1 © NovaTec 01.01.2010 29
30.
Which Components -
Sketch Smart defaults, optional types for remoted properties and services Standard life-cycle callbacks available <bean: 'HelloWorld' stateful: true remote: true local: true> Smalltalk defineClass: #HelloWorldBean name superclass: #{Core.Object} <propertyType: #string> ^name indexedType: #none private: false name: aString instanceVariableNames: 'name ' name := aString classInstanceVariableNames: '' sayHello imports: '' <serviceParameterTypes: #() returnType: #string)> category: '' ^'Hello World to ', self name © NovaTec 01.01.2010 30
31.
Which Containers?
Container = Factory + Maintenance of bean per bean kind Consistently based on • Dependency injection for bean construction • Meta-programming controlled through pragmas or deployment descriptors Creation of bean instances through a lookup mechanism Referencing and finding bean Handling the general life-cycle Concrete containers may come in a wide variety • Pooling • Threaded • Load limiting like persisting inactive components • Bean instrumentation like logging or transactions © NovaTec 01.01.2010 31
32.
Component Deployment Descriptors
- Sketch Smalltalk defineClass: #MockupContainer superclass: #{SEE.BeanContainer} …. beanSetup <deploymentDescriptor: #SampleContainer> self bean: #HelloWorld with: [:bean | bean implementor: HelloWorldBean. bean isStateful. bean isRemote. bean isLocal. bean property: #name with: [:prop | prop getter: #name. prop setter: #name:. prop type: SEE.Types.String]. bean service: #sayHello with: [:svc | svc returnType: SEE.Types.String]] © NovaTec 01.01.2010 32
33.
Which Container –
Local Usage Sketch context := LocalContainerContext for: #SampleContainer. bean := context lookup: #HelloWorld. bean name: 'Barcelona'. Transcript show: bean sayHello; cr. © NovaTec 01.01.2010 33
34.
Which Container –
Local Usage Sketch cont. greetESUG <inject: #HelloWorld into: #hello> | hello| hello name: 'Barcelona'. Transcript show: hello sayHello; cr No local context, no lookup Injected component changable in deployment descriptor © NovaTec 01.01.2010 34
35.
Interfacing with JEE
- Principles Remoted Smalltalk component represented by local Java EJB Imported Java beans represented by local Smalltalk components Cross-container communication only through connector Clients talk to the EJB server, never to Smalltalk directly Smalltalk is a "shadow container" behind the EJB server © NovaTec 01.01.2010 35
36.
Interfacing with JEE
- Options Using JNI to run EJB- and Smalltalk-VMs in the same process space • JNIPort or JavaConnect via VMasDLL (VisualWorks) • Starting the Java server from Smalltalk via DLLCC is NO OPTION • Threading a serious issue Using web-services as the transport layer • Possibly the simplest and slowest option Using a fast custom IIOP or someone please implement RMI Add JCA for more complete transaction and security integration © NovaTec 01.01.2010 36
37.
Summary
Java's success in the enterprise has created good progress in standard enterprise application server infrastructure Smalltalk is lacking a similar platform/vendor independent infrastructure This makes Smalltalk inacceptable for enterprise applications by common standards JEE improved through proper abstractions of technical infrastructure and by making good use of meta-programming Smalltalk should add a standardized server application architecture A JEE connector will allow Smalltalk to be used as a shadow container behind a EJB server Give existing Smalltalk applications a longer life Introduce new opportunities for Smalltalk projects as part of a JEE project © NovaTec 01.01.2010 37
Baixar agora