(How) Does VA Smalltalk fit into today's IT landscapes?

3,322 views

Published on

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.

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
3,322
On SlideShare
0
From Embeds
0
Number of Embeds
7
Actions
Shares
0
Downloads
0
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide










































































































































































  • (How) Does VA Smalltalk fit into today's IT landscapes?

    1. 1. VA Smalltalk 1
    2. 2. VA Smalltalk (How) Does it fit into today‘s corporate IT landscape? 1
    3. 3. Questions 2
    4. 4. Questions • What are the major trends in IT today? 2
    5. 5. Questions • What are the major trends in IT today? • How can you address these trends with VA Smalltalk? 2
    6. 6. IT Today 3
    7. 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. 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. 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. 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
    11. 11. Today‘s Major IT Trends
    12. 12. Presentation trends 9
    13. 13. Presentation trends • Onto The Web • Web Applications & Portals 9
    14. 14. Presentation trends • Onto The Web • Web Applications & Portals • ...and Back to the Client • Rich Client Applications 9
    15. 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. 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
    17. 17. VA Smalltalk and presentation trends 11
    18. 18. Why onto the Web? • No client installation • Nice presentation • Global availability • Platform-neutral • Simple protocol: HTTP and friends 12
    19. 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. 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. 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
    22. 22. Presentation Trends Web Applications 16
    23. 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. 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
    25. 25. Rich Internet Applications 19
    26. 26. Rich Internet Applications • Combination of two (or more) implementation technologies • Server: Java, Smalltalk, Ruby, Perl, PHP... • Client: JavaScript, ActionScript (Adobe) ... 19
    27. 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. 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. 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. 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. 31. What does VA Smalltalk offer? • XML support • SAX and DOM-Parser • Smalltalk - XML Mapping • Seaside in Version 8 • Seaside-Scriptaculous 22
    32. 32. Presentation Trends Rich Client Applications 23
    33. 33. What‘s new about Rich Clients? 24
    34. 34. What‘s new about Rich Clients? ... um ... well ... you know ... 24
    35. 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. 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
    37. 37. VA Smalltalk for Rich Clients 27
    38. 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. 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
    40. 40. So what? Rich Client Applications are what we‘ve done for years 30
    41. 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. 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. 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. 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
    45. 45. What‘s missing? • New Platforms • Windows CE / Mobile • Mac OS X (iPhone?) 34
    46. 46. VA Smalltalk Integration 35
    47. 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. 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. 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
    50. 50. Integration Trends Web Services 39
    51. 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. 52. Web Services • W3C Standard • Huge set of domain/industry specific standards (WS-*) • Large selection of tools and vendors 41
    53. 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
    54. 54. Integration Trends RESTful Web Services 43
    55. 55. RESTful Web Services • REST = Representational State Transfer • What is it? • Not a standard • It‘s an architecture 44
    56. 56. Basic Concepts 45
    57. 57. Basic Concepts • RESTful Web Services are about Resources, not about operations 45
    58. 58. Basic Concepts • RESTful Web Services are about Resources, not about operations • Adressability: Every Ressource has a unique name = URI 45
    59. 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. 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. 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. 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. 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
    64. 64. Basic Concepts 49
    65. 65. Basic Concepts Client 49
    66. 66. Basic Concepts Client Resource 49
    67. 67. Basic Concepts GET /users/Joachim HTTP Request Client Resource 49
    68. 68. Basic Concepts GET /users/Joachim HTTP Request Client Resource HTTP Response HTTP/1.1 200 OK Content-Type: application/xml <?xml version=...> <User firstname=“... 49
    69. 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. 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. 71. HTTP Methods and Codes (2) • HTTP POST • 201 Created • 409 Conflict • 415 Unsupported Media Type • 500 Internal Server Error 51
    72. 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. 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. 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
    75. 75. RESTful Web Services with VA Smalltalk 55
    76. 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
    77. 77. PRESTON client • getResourceNamed: aURI queryParameters: aDictionary • postResource: anObject toResourceNamed: aURI • deleteResourceNamed: aURI • getOptionsForResourceNamed: aURI • handles session cookies (optional) 57
    78. 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
    79. 79. Demo: Yahoo! Traffic Client
    80. 80. SST Building Blocks SstServerApplicationContext SstBasicServer containerKey sessionManagerConfig. attributes applicationContexts sessionManagers initializeRequest: handlesRequest: startUp SstHttpSessionManager shutDown processClientRequest: basicProcessRequest: createSessionForRequest: processRequest: createCookieForSession: SstHttpServer cookieFromRequestHeader... SstHttpServletEngine 60
    81. 81. PRESTON Server SstServerApplicationContext SstBasicServer containerKey sessionManagerConfig. attributes applicationContexts sessionManagers initializeRequest: handlesRequest: startUp SstHttpSessionManager shutDown processClientRequest: basicProcessRequest: createSessionForRequest: processRequest: createCookieForSession: SstHttpServer cookieFromRequestHeader... PrestonResourceManager PrestonApplicationContext supportedHttpMethods resourceManagers PrestonServer pathSegment xmlMappingSpec rootObject handleGETRequest.. handlePostRequest... 61
    82. 82. Demo Todomatic Server User TodoList TodoItem 62
    83. 83. Summary 63
    84. 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. 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. 86. VA Smalltalk is ready for today‘s challenges in corporate IT landscapes 66
    87. 87. VA Smalltalk is already in use with modern technologies 67
    88. 88. VA Smalltalk is already in use with modern technologies We‘ll see some examples today 67
    89. 89. Your Smalltalk Application can be a first-class citizen in your Company‘s IT 68
    90. 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. 91. No need to duck and cover in your organization Just do IT ;-) 69
    92. 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

    ×