This post originated from an RSS feed registered with Agile Buzz
by James Robertson.
Original Post: CIncom Smalltalk Protocol News
Feed Title: Michael Lucas-Smith
Feed URL: http://www.michaellucassmith.com/site.atom
Feed Description: Smalltalk and my misinterpretations of life
This talk is all about opentalk and network communication protocols that Cincom Smalltalk is now able to do. They have new web services tools that they say are really cool. They'll even show how easy it is to do SSL these days and where they're going in the future.
VisualWorks ObjectStudio interoperation which are both products that are smalltalks. VW is a real Smalltalk and OS is designed for specific kinds of programming that is canned. To show how it works he has a VW image up and an OS image up. The two sides are going to connect to each other with a listening port and a talking port.
They both create a value holder and they export them to each other. They both pick up each others valueholders and they can play with each others objects.
For a simple one way example he pushes a bunch of objects, numbers, nil's, collections, strings, symbols, etc over the vcalue holder to the other side and with the click of a button they appear happily on the other side.
This bridge between OS and VW will be fully supported and release this cycle if possible. The main problems doing this were the fact that sockets were implemented completely differently in OS. Lots of little methods were different too.
It seems so far for this Smalltalk Solutions the bar has been raised by every one. Lots of presenters are doing cross dialect work. SRP, Avi, etc and Cincom too with VW and OS.
Next is ASN.1 marshaling framework. The first example printed out a huge signature of an ASN.1 signature. It's long and complex and very involved. The total time taken to decode a single certificate is roughly 0.1328ms which I can only assume is fairly fast for his small laptop.
ASN.1 is used in security in SNMP and LDAP. It's generally used to define the transfer encoding. Before this, VisualWorks had three different implementations of ASN.1. Now there's only one version that works much better than the previous three.
Because there are so many encoding rules for ASN.1 eg: BER, DER, PER, etc.. it's a good example to show off how the Opentalk framework can be extended to use many more encodings.
Next is Opentalk which has been enhanced. My background is with Server Smalltalk so I'll try and comment on that as I go as well. In 7.1 of VisualWorks the ST-ST protocol was version 2.0. When I tried it, it worked well but I didn't measure how effecient it was. The Server Smalltalk implementation can be fairly effecient, but SRP showed yesterday that it can do 10x better than what IBM did.
As well as pass by value and pass by reference, two new techniques have been added: pass by name and pass by OID. That's effectively like having registered resources.
There is now also robust handling of web server load problems. This was talked about last year apparently. In the server world it is death to drop a client request.. on the web they drop connections when too many people try to connect and 'buy my toaster'. To get past this stupid attitude, you should use load balancing.
The new features keep flowing. There is now an opentalk console you can use to see what information is passing about, even orb's in the corba protocol. You can control connections in this console as well.
Finally VisualWorks is starting to get remote smalltalk development tools. The first is the remote debugger. In VisualAge this has been there for a while, but when Eric made his own VisualAgeAssist debugger, he left off the way SST did remote debugging (namely because it was so hard). So only the old debugger could do it. In VisualWorks things should be more modern.
This isn't a logical process debugger, it is an attach debugger to forward across the debugging information back to your computer. It's certainly the start but it's not the final word just yet.
They've also done some work on the AT Profiler. This will allow the team to have a distributed logical process profiler to profiler things across the network or even over the network since it is a logical process profiler eventually.
The talk now hands over to Martin to talk about IIOP. This time they're doing IIOP inside Opentalk instead of the old DST code that works but isn't brilliant.
For the demonstration they had a java ORB server that has a default nameserver service. They then connect to that using the new Opentalk IIOP code and get nameserver responses back.
The main changes from DST to the new version is the new Opentalk structure which is transport agnostic and it is expected all will be in a decent shape for VW 7.3.
Next, the new WebServices tool. This is mostly Tamara's work but she couldn't come unfortunately. The WebServices now has a Wizard. You can expose your existing application as a WebService or you can use somebody elses WebService. The way they expose methods is nice, they do it by anything in a defined protocol. Inside the method you're exposing there are a bunch of pragmas to define the parameter types and return types. The wizard lets you insert them using the simple UI.
The Wizard then requires you to define all the complex class types which is the part which is very hard to do and time consuming. We skip that step at Wizard by using the toplink database descriptor as I explained in my second talk. Finally, the wizard builds a server class for you and you just fire it off.
Then next, security enhancements. They've been working on making SSL really easy to use. The frameworks to make an SSL framework requires a lot of work underneath which is how they ended up making a big cryptographics library. The public key crypt API is very simple now. encrypt:, decrypt:, sign:, verify:of:.
There's now DSA, RSA generators, DSSRandom and Diffie-Hellman key exchange. AES (DES Successor) is also included.
In VW 7.2 the hashing API's were added, with SHA256 and added documentation for the security framework.
In VW7.3 there is now X.509, private key export/import. Password based cryptography and HMAC.
Next, SSL and HTTPS. Now they've linked them together so that HTTPS uses the native SSL. To make the HTTPS server once you have SSL is not as straight forward as I'd like. You have to know cryptography and create a ciphersuite. Using the cipher suite you make an RSA certificate pair that'll work in netscape and other SSL applications.
Once all that is setup, the entire thing "just works" as most things tend to do in Smalltalk.
Interesting fact, IE drops a HTTPS connection if it doesn't recognise the certificate. It then pops up a warning which if you accept, it will use HTTPS once more.
More: They now support SSL 2.0 Hello. Diffie-Hellman suites, DSS suites, client authentication, signing certificates (RSA, DSA).
The length of this talk is as big as a keynote and the content is rich but not as 'out there' as most keynotes are.
The next steps are TLS and SSL 3.0.
Next, VisualWave enhancements are moving towards a full Opentalk implementation. This is something the IBM guys were trying to do and I'm not sure if they ever succeeded. They ended up with Smalltalk Servlets and a file web server implementation - in fact I use it for Wizard's WizDom2 Smalltalk Server - but all of their old stuff is still there and prevalent in most web apps done with VisualAge Smalltalk.
For the future: Consolidation of the ongoing projects and complete as much as possible. Distributing all the development tools is on the more distant hoziron now.
More protocols: value types, improved IDL compiler, RMI-over-IIOP, Corba compliance, DST compatibility. SNMP. VW-WebSphereMQ bridge.
More refinements on the load balancer. State replication and fail over facility. Remote configuration for automated testing. Distributed testing (there was a talk on this but I didn't get to see it).
Move most of their preview code in to released.
More specification tracking: CORBA, SNMP, WebServices, NetClients, Security.