This talk gives a brief overview of today's most imprtant IT Trends, from rich client and rich internet applications to Web Services. Joachim Tuchel shows how VA Smalltalk and it's existing and upcoming features help developers integrate new and existing VA Smalltalk applications into these architectures.
This presentation was given by Joachim Tuchel at the VA Smalltalk Forum Europe 2008 in Frankfurt am Main.
7. Today‘s IT Landscapes
seen from 10.000 ft
Inventory Management
Oracle DB
MQ
Solaris
General Ledger
DB2
MVS Host
sfer
ran
W
ile T
eb
F
Customer Relationship
Se
DB2 Management
rvi
MS
c
es
Some other System
SQL
PC
Fat Client on Citrix Server Server
AP
Web Server
Ac
tiv
eX
TP
HT
C++
Cobol, PL/1
ABAP PowerBuilder
CORBA Smalltalk
Java C VisualBasic
CORBA .Net Call Center Agent
MS Access Software Package
Windows Fat Client
4
8. Today‘s IT Goals
seen from 10.000 ft
• Simplify and Save money
• Consolidate on a few technologies
• Databases, Middleware, Operating Systems,
Development tools and technologies,
Applications
• Leverage existing knowledge and
technologies
5
9. Smalltalk‘s niche
• Some shops eliminated Smalltalk
• In most shops Smalltalk has survived
• Porting is hard and expensive
• Some replacement projects failed
• Business value over technology
• New technologies adapted in new
projects
6
10. Challenges for
Smalltalk Projects
• Continue to deliver business value
• Integrate with new technologies
• as a consumer or servant of data/functionality
• Incorporate new technologies
• to meet today‘s business needs
• to integrate seamlessly into corporate IT
7
14. Presentation trends
• Onto The Web
• Web Applications & Portals
• ...and Back to the Client
• Rich Client Applications
9
15. Presentation trends
• Onto The Web
• Web Applications & Portals
• ...and Back to the Client
• Rich Client Applications
• Mix the two: Rich Internet Applications
9
16. Integration trends
• Make the whole zoo of applications and
technologies work together
• Share / Exchange Information
• Integration of Applications
• Enterprise Application Integration
• Service-oriented Architectures
10
18. Why onto the Web?
• No client installation
• Nice presentation
• Global availability
• Platform-neutral
• Simple protocol: HTTP and friends
12
19. ...And why not?
• Limited interaction / feedback
• Insufficient for complex tasks
• Save my Data on the web?
• How to work offline?
• No Platform features like drag/drop
• Latency / performance
13
20. Rich Clients
• Local GUI and logic
• Consistent Look & Feel
• Instant Feedback (Field Validation)
• Integration with OLE/ActiveX etc.
• Platform Drag & Drop
• Snappier
14
21. Mix the two?
Rich Internet Applications
• Feel (almost) like local applications
• Can be designed to look great
• No installation, No Update installation
• Cross-platform
15
23. What does VA ST offer?
• VA Web Connection
• I‘d call it Legacy
• Similar to Java Serfer Faces
• Server Smalltalk
• Complete HTTP Server Implementation
• Java Servlets compatible API
• Seaside in Version 8
17
24. Rich Internet
Applications
• Look & feel like rich clients
• instant feedback, e.g. input validation
• active elements (sliders etc.)
• drag & drop in the browser
• no page reload
18
26. Rich Internet
Applications
• Combination of two (or more)
implementation technologies
• Server: Java, Smalltalk, Ruby, Perl, PHP...
• Client: JavaScript, ActionScript (Adobe) ...
19
27. Rich Internet
Applications
• Combination of two (or more)
implementation technologies
• Server: Java, Smalltalk, Ruby, Perl, PHP...
• Client: JavaScript, ActionScript (Adobe) ...
• Client runs in Browser or Plugin
• Adobe AIR, Mozilla XUL, MS Silverlight
19
28. Rich Internet
Applications
• Combination of two (or more)
implementation technologies
• Server: Java, Smalltalk, Ruby, Perl, PHP...
• Client: JavaScript, ActionScript (Adobe) ...
• Client runs in Browser or Plugin
• Adobe AIR, Mozilla XUL, MS Silverlight
• Data transported as XML / HTML /
19
29. AJAX
• XMLHttpRequest: „Mini“ - Requests to the
server
• Server returns only a portion of a page
• JavaScript code manipulates DOM in the
browser on the fly
• JS-Frameworks like Prototype and
Script.aculo.us make life easier
20
30. What does
VA Smalltalk offer?
• Server Smalltalk (SST)
• HTTP/S Server
• Java Servlets compliant API with
SstHttpServletEngine and friends
• Scalability (Multithreaded)
• Reliability (~a decade in production)
21
31. What does
VA Smalltalk offer?
• XML support
• SAX and DOM-Parser
• Smalltalk - XML Mapping
• Seaside in Version 8
• Seaside-Scriptaculous
22
34. What‘s new about Rich
Clients?
... um ... well ... you know ...
24
35. Rich Client Platform
...Eclipse has a huge set of tools and
frameworks to make developing and
deploying Rich Clients easy
• SWT and GUI Builder(s)
• Toolbars and pluggable views
• Event handling / MVC
• Wizards and tools to build wizards
25
36. Rich Clients in VA ST
VA Smalltalk has been in use to build Rich
Clients for over a decade
• Rapid GUI development
• Component Architecture
• Visual GUI Construction
26
38. What does VA ST offer?
• Rich set of Parts
• Widgets like Text field, Combobox etc.
• Containers with direct editing
• Tree Views with direct editing
• Notebooks and Tab Controls (Windows)
• Canvasses, Splitter
28
39. What does VA ST offer?
• Ease of Development
• Composition Editor or WindowBuilder
• Abt Layer for wiring to the model
• Portability
• Windows, Linux, AIX, Solaris (Repackaging, XD)
• Modern Look & Feel
• Theming support for Windows XP / Vista
29
41. So what?
a
is !
kr
lwhat we‘vem
ta tfo done
ll a
ayears l
Rich Client Applications are
m tP
S for
A ien
V l
C
h
ic
R
30
42. What‘s missing?
• Look & Feel enhancements
• Default look of containers (OS/2-ish)
• Automatic native look
• Portable Notebook Part vs. Tab
Control
• Platform default font handling
31
43. What‘s missing?
• New Parts
• Pluggable Toolbars (Tear-off as palette
window)
• Ribbons
• Details on/off
• Container Improvements
(Sorting Columns, direct editing, L&F)
32
44. What‘s missing?
• „Smalltalk Web Start“
• built into VM or image startup sequence
• zero deployment effort
• Feasible on your own - standard
implementation would be better
• Installation package tools
33
47. Integrate a VA ST
Web Application?
• Most Web Applications aren‘t monolithic
• Many small web apps interoperating
• Integration points via http, xml:
• passing data in URL or http body
• transferring data as XML documents
• web services
36
48. Integrate a VA ST
Web Application?
• VA ST is just another web server
• Talks to the others via HTTP/XML ...
• Look & Feel identical to others
• it‘s just html, css and JavaScript
• Reuse existing CSS / HTML fragments
• This is the end to the discussion about
preferred technology or not! It‘s the same!
37
49. Integration of Web
Servers
Images
Backend
Workflow
CSS
Service
Service JS-Scripts
Web Web Web Web
Web Web Web Web
Web
Server Server Server Server
Server Server Server Server
Server
(Java) (Java) (PHP,...) (Smalltalk)
(Java) (PHP,...) (Java) (Smalltalk)
(Smalltalk)
38
51. Web Services
• Uses HTTP/S POST for transport
• in theory uses any transport protocol
• XML Messages
• SOAP-Envelopes
• Namespaces
• Many standards / schemas available
40
52. Web Services
• W3C Standard
• Huge set of domain/industry specific
standards (WS-*)
• Large selection of tools and vendors
41
53. What does VA ST offer?
• Supported by VA Smalltalk since V 5.5
• Based on Server Smalltalk
• Constantly improved in 6.x, 7.x and 8
• Expose a Smalltalk method as a service
• Consume a service in Smalltalk
42
58. Basic Concepts
• RESTful Web Services are about Resources,
not about operations
• Adressability: Every Ressource has a unique
name = URI
45
59. Basic Concepts
• RESTful Web Services are about Resources,
not about operations
• Adressability: Every Ressource has a unique
name = URI
http://myhost/users/joachim/todolists...
45
60. Basic Concepts
• RESTful Web Services are about Resources,
not about operations
• Adressability: Every Ressource has a unique
name = URI
http://myhost/users/joachim/todolists...
• Statelessness: Server doesn‘t save any
application state ➠ Scalability
45
61. What‘s a Resource?
• •
Customer Database Transaction
• •
Purchasing Order Flight Booking
• •
Line Item Message
• •
Hotel Room Dataset (RDB/OODB)
• •
Hotel Room Reservation any entity we deal with in
our systems
• User Account
46
62. What‘s a Resource?
• Not a Business Object!
• Not all aspects need to be transported
between applications
• Some aspects belong to a different Business
Object (save bandwidth)
• References become IDs or Hyperlinks
47
63. Basic Concepts
• Operations defined in HTTP standard
• Create: POST a new ressource
• Read: GET a ressource
• Update: PUT a ressource
• Delete: DELETE a ressource
• References to objects are hyperlinks / URLs
48
69. Basic Concepts
GET /users/Joachim
HTTP Request
Client Resource
HTTP Response
HTTP/1.1 200 OK
Content-Type: application/xml
<?xml version=...>
<User firstname=“...
Contents can be
XML, JSON, CSV, Binary Data
...any MIME-Type
49
70. HTTP Methods and
Codes
• HTTP GET
• 200 OK
• 400 Bad Request
• 401 Unauthorized / 403 Forbidden
• 404 Not found
• 500 Internal Server Error
50
71. HTTP Methods and
Codes (2)
• HTTP POST
• 201 Created
• 409 Conflict
• 415 Unsupported Media Type
• 500 Internal Server Error
51
72. Why should I care?
• Reduced Complexity
• Uniform interface (HTTP) to every
resource
• Advantage in Development & Maintenance
• More flexibility: serving/accepting
Resources instead of exposing a set of
operations (Mashups)
52
73. Useful Advanced
HTTP - Features
• If-Modified-Since / Last-Modified / 304 Not
Modified for caching
• Cache-Control (read-only objects or
infrequently changing objects)
• Content-Type to determine marshalers
• Accept-Ranges / Content-Range for partial
loading of long lists etc.
53
74. RESTful Web Services
in the wild
• Amazon Simple Storage Service (S3)
• Yahoo Services, Delicious, Technorati
• Many „Web 2.0“ sites / services
• Apache couchDB: OODB with REST API
• Usage is Growing
54
76. SST provides the
Building Blocks
• HTTP Client and Server
• Server Smalltalk is highly configurable
• Customization and extension on many
levels
• Scalability (Multithreading by default)
• Mature (~10 years) and in use
56
78. PRESTON client
• Mapping between Resource (XML) and ST
objects
• Optional caching (URI → object)
• Proxies for hyperlinks
(linked resource is only fetched if needed)
• Can act as database client to a RESTful web
service
58
84. Presentation
• VA Smalltalk supports today‘s technologies
• Rich Client Applications aren‘t new for
Smalltalk
• Web Applications with Server Smalltalk
and Seaside
Users see no difference
➡
• Seaside makes Rich Internet Applications
easy to develop
64
85. Integration
• Integration today mostly means combining
HTTP with XML or other text formats
• Web Services are supported by VAST as a
loadable feature
• VA ST provides all the building blocks -
even for modern hype technologies
• ... like RESTful Web Services
65
86. VA Smalltalk is ready
for today‘s challenges
in corporate IT landscapes
66
90. Your Smalltalk Application
can be a first-class citizen
in your Company‘s IT
Put your system on a web server
and make it play with the other kids
68
91. No need to duck and cover
in your organization
Just do IT ;-)
69
92. Questions?
chel
im Tu g 1
Joach erwe
Flied rmany
g, Ge ik.de
sbur tfabr
dwig bjek
40 Lu el@o ik.de
tfabr
716 tuch
objek
j
ww.
w
More info on my blog:
www.joachim-tuchel.de
70