Warning - what follows is mostly a bit of fun concerning Gregg's idea that good changes are welcomed generally. It is not worth reading unless you have time to burn or are Gregg.

Mike

On Dec 22, 2008, at 1:59 PM, Gregg Wonderly wrote:

Michael McGrady wrote:
JINI, in your world, wants Entry, Transaction, etc interfaces in JINI that multiple services employ so these services are JINI services.

Well, Entry, Transaction and Lease, are core concepts to the distributed computing model that the name Jini is tied into.

Agreed.  They are also core concepts in JavaSpaces.

These are "facilities" that allow clients/services to have advanced notice of how they will interact with others.

For JINI, which certainly is interesting and powerful. My interest is elsewhere at the moment and more JavaSpaces oriented.

This includes a number of concepts from a number of different perspectives. There are the API signatures, which spell out what values and types are understood by both ends. There is the Jini spec, which details what each "operation" needs to make happen for the things that the API represents from the Jini spec. There are failure mechanisms that you have to support in your client so that you can take advantage of knowing that something is not working. It's important to understand that with Jini, you have a platform for remote, distributed computing that doesn't leave you wondering about how you will interact with other clients and services that use Jini.

I understand the value of JINI and also appreciate your small tutorial. More learning is usually good. My concern, however, is whether or not the architecture vis-a-vis JavaSpaces and other services makes sense.

There is the expansion point provided by JERI which allows the invocation layer and transport layer to be non-java centric. This is where WINI, XINI, YINI and ZINI need to be interfaced.

What if they are Java?  Would you still say this?

Why? Because the spec has semantics in it too, and those semantics (like RMI call-by-value) need to be supported at the Java interface level for a Java written Jini bit of software to be compatible with other Jini bits of software.

But, is this good or not good?

In the world of SOA, there are all these concepts, but they are described independent of a technology, and they are honestly more akin to "best practices" than they are as "architecture."

I definitely do not agree with this. First, comparing SOA and JINI is comparing applies and oranges. A SOA service is nothing like a JINI service. SOA definitely, to my way of thinking, is an architecture. It means "Service-Oriented Architecture" which is not dispositive but is a strong hint or something has gone very wrong. JINI is really not SOA oriented at all. It has uses which really interest me but SOA is not one of them.

With the Jini spec, came the codification of so many important and related concepts which are all about making distributed systems be resilient and robust.

I believe the JINI spec came out of the concepts rather than vice versa. I remember well when JINI rolled out in the traveling Sun shows. I have been a JINI fan for a while, even if not a user.

JavaSpaces, in my world, wants its Entry, Transaction, etc interfaces in JavaSpaces so that JINI must compete with WINI, XINI, YINI and ZINI in using the JavaSpaces.

Make sure you are staring at what is presented as the JavaSpace spec, and not what outrigger is doing in exporting a JERI endpoint which uses BasicILFactory... Any external entity can use JavaSpace if it has access to an invocation environment that allows it to. JERI allows plugability so that others can get in, without being Java even.

I have said this before but I will repeat it again, I only look at the interfaces when thinking about a system. The implementation is not of particular interest to me.

The services in River are implementations of the spec. They are not the only way to do that and they have a particular orientation toward working together and utilizing each other for a combined system that presents all the concepts of the Jini specs as a unified distributed systems toolkit.

So far as I can tell, as yet there is no River, i.e., that it is being created. Exciting stuff! I realize it comes with a history.

What to do?

Realize that your world has a non-zero intersection with other peoples worlds in terms of what "features" you want your distributed application to have.

This says that my world intersects with others' worlds.

When there is distinct value in a change, people tend to agree or gravitate toward that change.

Not according to my experience. Generally speaking they show their calcification in my experience. Socrates might argue the point. So might Kepler. Ever hear people talking about modern art? Notice how readily each generation of adults so gladly accepts the new living styles of the youth? The new music that new generations bring is especially hated. We still talk about affairs of the heart using an analogy that was broken so long ago and so bad that it bogles the mind it could have any currency. No, I cannot say I agree with this at all. And that is okay by me.

I think most people like to work on known problems. Few have the stomach or interest to really get down into the engine room and make changes. People generally seem to hate change. Those that enjoy trying to solve problems in a big way have to dedicate themselves to the task because others always push back. This is not a bad thing, I think. This is probably the way it should be. But, I really don't think it is not this way as you do.

Let me mention that OSGi has taken 10 years to get where it is and the big breakthrough was when it was adapted by Eclipse. JINI is no youngster either. There are lots of technologies started in the late 1990s that are just coming around.

I watched business computing go from mainframes, batch processing, databases, visicalc, R/2 SQL, R/3, data warehouses, www, EAI, BPM, packaged applications (CRM, SCM, ERP), MDA and did not see this march of reason you suggest. It was always emotion and based on fear and entrenched positions. The same happened with distributed technology going from VT100, VT3270, client/server, TCP/IP sockets, RPC, NFS, CORBA, stored procedures, EAI, MQ, EJB, SOAP, WSDL and there was no more ease of transition. Not at all. The same things happened going from Assembler, COBOL, SIMULA, Pascal, Modela 2, Smalltalk, Ada, PROLOG, C++, Java, and C#.

Now that we are entering the age where the Ilities are supreme and the realization that they are best handled by a good architecture rather than a post-architectural workaround, the howl of the Greek chorus continues unabated.

Well, at least that is how I see it. I definitely did not see any easy transitions on anything at all.

When there is a lot of discomfort in a change people tend to push back. Discomfort comes from more than "that's the name it's had for years" in this case.

For what it is worth, this also is not my experience. That is plenty reason for most to push back.

Not all of course and no one in River for sure. Also not anyone that lives within 100 miles of me. ;-)

I hope you accept all this with a pinch of salt but I do definitely not agree with your statements about how change is embraced in the world. One last thing, "heaven" ("sky" in the original Koine Greek - euranus) was known as firmament because, not knowing about gases and such, the ancients figured there was something solid up there. Understandable back then. No trouble changing that was there? To be more mundane, a good read on the acceptance of the railroad in Britain is very interesting.

Who was it that said that there would be use for at most about 10 computers?

Mike





Reply via email to