The Model Driven Software Network

Raise your level of abstraction

Hello everybody,

just joined MDSN, looks like a lot of useful reading available.

Short self-introduction:

Computer science major, 20 years ago got into developing quite a few data-driven Applications with similar scenario, like:

one or more Enterprise data structures defined (branch, department,..., employee) and/or (warehouse, block,..., part) and/or (lists of processes, remunerations, customers, etc) which are were kept in the Database tables. There are CRUD operations defined on those related tables and there were some domain-specific operations too. Plus various reports. Pretty common and usual stuff.

I started with some generalization attempts: a business object consists of data container(a DB table), view(s) and form(s) and relations to other objects. It all could be expressed in plain text. CRUD operations could be executed in precompiled code - no actual generation here. UI of an object was interpreted by pre-written code again - no code generation here either. Relations one-to-many and many-to-many were again interpreted by run-time. Only custom logic has to be manually coded. So that how it started. I could elaborate if needed.

That approach evolved into something I cannot categorize and I'm looking for help and opinions here.

Today the highest level of  abstraction is the same: a business object is a table, plus UI(s), plus CRUD operations, plus objects relations, plus API to implement custom Data processing. An application is a set of such objects and it is most likely might be expressed in UML or such. Although it is not.

There was some custom language before, today an App definition is hidden behind objects' Visual Properties Manager(s). An App definition contained in the Relational DB as set of text-based objects' definitions. There is a server side code waiting for client code to connect. That is how it works.

The client supplies credentials and if valid, receives back from the server an "entry" object's definition from the Database - usually the Main Menu (a table). The client interprets that definition and creates UI. Human user make a gesture (keyboard or mouse, touch interface is not supported yet) and activates one of that Menu's links. Another object loaded from the server and so on. Menus are immutable objects - they are easy. When mutable table loaded from the server, both a client(grids, views, forms) and a server(sessions, locks) support CRUD and custom operations (e.g. delete every odd record in the table) in ACID fashion. All clients are synchronized real-time - means all the content changes instantly propagated to all relevant sessions. There is a gesture language to visually define parameters of complex requests. SQL gets generated and executed by the server part and results passed to relevant client/sessions. There is Java API (architecture is language agnostic) which used on loaded objects on the client side only (!) by mimicking human gestures: "load object"/"edit object" and so on. The server is never restarted.

The client part contains Properties Manager code, which allows to define new objects and redefine new ones without leaving a live Application. Team development welcome.

There are client side processors which allows to link a table cell to Images, PDFs, some HTML. More processors - more data types could be supported. At last there are pure UI objects - with no data containers defined. They work pretty much like Java Canvas. After being loaded they call user code, which has access to other objects in the Database. That allows to create UIs beyond grids and forms - up to multiplayer games - with custom programming sure.

That thingy works in production environment for 3 years now. It is extremely productive and helpful. But I'm struggling to classify it. What is it? RAD RIA tool? It does generates some SQL, it allows live Apps design like Web CMSs, it is based on generalization of an SQL table... I'm more experimenting practitioner then academician.

Please help me define what that Datalator thing is. And what place could it hope to find in the computing world. Would be much obliged for reviews and opinions. Sorry for hasty prepared story.

The site where I try to describe/market the Datalator is well, www.datalator.com aka www.fancydata.com aka www.moderngroupware.com.

I'm no good with web sites, forgive me. Please comment.

Views: 1592

Reply to This

Replies to This Discussion

@Andriy and everybody:

>Mendix and OutSystems have evolved significantly in the recent years

Just visited the OutSystems site again... The screencast about building a webapp in 4 minutes at http://www.outsystems.com/agile-platform/rapid-application-developm... is pretty much the same a it was in 2009. The same lonely table, the same hand written code to wrap some logic around, the same easy to sell AJAX platform (I'd expect at least "lightboxes" to visualize forms above grids...) First attempts to go real time.. Sad.

 

Time to conclude this discussion: not surprisingly I do not understand ALL what You, the Researches, long term commited to Model-Driven world perseption,  is saying here. That is understandable. The surprising part is - feels like I cannot deliver my message and spark more interest. Feels like we much apart. Either the subject is complex or the message.

Please do not get me wrong, I really appreciate the feedback. I'm thirsty for such a feedback - you are the highest authority on the code generation. I'm challenging the foundation of your beliefs and I expect to be annighilated on the spot :-). And I'm getting some pretty mild and kind of distracted responce:

>Andriy: "OutSystems ...". No it is at the same spot where it was in 2009, with all their resources. Given the same requirements I can beat OutSystems on the field of agile RIAs. Did it in 2009 - you guys did not watch my videos.html -and do it today (may be driving a truck gives me more time to think before I act :-)).

> Andreas - the most generous contributor to this discussion - what are you saying, sir: " I'm convinced we will work like that one day". I propose to try to work like that today, not one day. (I carefully red you papers dated by 1995)

Gentlemen, I assume I just cannot deliver a message. I'm OK with that, will be here reading, learning, watching the Big Ones. I'm not a troll, not angry, do not feel any disrespect. Dissapointed a bit - maybe, that is natural for all inventors :-). The life is pretty short... not even money and comfort worth it ... challenges to overcome?... understanding how the world works and how we can express it in computer programs? (my first favorite is AI).

 

Anyways, I promise to keep you posted on further develpments. With nice short messages :-). Will gladly accept more comments (or beating), if any... not trying to say the last word here. I told already I appreciate your work, opinions and the forum. I say it again.

Peace!

Sorry, Alex, I just edited my last comment and posted it then see you new replay (you know, I'm writing very very slowly)

;-)

Good luck!

> (I carefully red you papers dated by 1995)

I feel charmed, Alex ;-) Slightly outdated, that stuff....  on the other hand side...

> " I'm convinced we will work like that one day". I propose to try to work like that today, not one day.

Actually, I do agree that it would be possible to do so, even today. Technology is available (just combine state of the art game engines, net infrastructure, VR technology & formats, abstract UI technology plus modern modelling and language technology). Actually, back then in 95 I thought it would take only a few years for that to become available (VRML was popular these days, remember CosmoPlayer?)

Reality taught me, that there is neither money nor a market, nor fellow visionaries, not even amongst developers - so, what chance do you have without all that?

Nevertheless, to some degree, my company is still working on a part of the problem - the "underlying modelling infrastructure", sort of. Which has proven to be incredibly more challenging than expected. I mean, in 1990 there was a widespread belief that simple, hardcoded M2T alone would revolutionise software development. How ridiculously naive, in retrospective.

If anoher "3D wave" will show up  again, we're prepared. At present I simply do not have resources to spend on it. I'd love to do so - any VC reading here? ;-) 

I am (can I say "we are"?) interested your point of views. We need different views around here. By all means keep posting :)

By briefly watching your "ebay in 20 minutes" video, I conclude that your Datalator is a highly targeted modeler and code generator (model executor perhaps?). That's why you say, I and believe, that you can beat Outsystems and others. You have efficiency at the expense of less flexibility. And that's fine if that's your target.

So, I would classify your system in the same category as OutSystems and Mendix: an "executable model" system.

@Alex 

You could like to have a look at "A Roadmap of Research for Enterprise Applications" :-) if you go on the development a 'build for change on demand' style one for the comprehensive applications for enterprises/business/management, perhaps all the aspects or the key points on the roadmap should also be considered by you, I think, and this is a great opportunity and huge challenge.

@Andriy

Just had a look at the Mendix and OutSystems, which seem another case for my MDS, and as well as, some example on your blog.

@Andreas

it seems I'm not very understanding some your opinion... would you admit that my ideas, the existence of the model driven mechanism and model driven system, and the distinction from the mainstream MDE?

Have a nice day! for everyone.

TY, sorry, I do not understand your question. Can you explain?

Sorry, It was not very clear in my expression.

(reading and writing in English still a hard job to me :-D)

Sorry, did not replay Yesterday. Was very busy. Some interesting questions asked and statements stated when I was away :-) .

Looks like the conversation is built around two poles

a) the "What" - what is done, what is not done yet, how it compares and what would be interesting/challenging/desirable to develop. Plus serving terminology, plus stated/agreed destination point - what we are not happy about in programming and how to change the "messy" traditional ways.

b) the "How" - lets assume for a moment the question "what" is answered and some theory elaborated and agreed upon - how to implement it, to bring it to reality : "any VC reading here?"

 

Those are complex subjects a) and b).

I'd like to ask a "how" question first. I'm a nobody's man. I'am in the situation well described by Andreas: "... neither money nor a market, nor fellow visionaries, not even amongst developers..." and I'm not even working for a software company. No name, nothing. And I'm droppy into the Forum from gleaming lobby - codegeneration.net that is. And I see a nice sponsors list (money?). And I think that some of you guys might be working for those innovation supporting companies. And I'm sure you might be better equipped and funded and encouraged to make those Innovations. But I sense some frustration here and dreaded immortal VC questions, which are not supposed to be. Me - I can express frustration - but you, Ladies(well, we haven't heard from Ladies yet) and Gentlemen? May be those Happy Ones are keep busy programming future and have no time for chatting?

Please explain me what's going on - why are you people have no finished VRML-programming-worlds yet? That's the puzzle, really. What are your bosses thinking about? So many events on the codegeneration, so many contacts, so much networking available? for many of you it's a lifetime activity - and it feels like no support available... a brick wall?

....

Started to write on my situation - "how to create advance code generation software in desintegrating USSR" - it is getting too long :-) And sad... Here in Canada it took me a few dramatic years to start funding myself - but again that is another story.

Please show me what forces are playing around code generation (companies, personalities, ...). Why it feels like the need to fork "true code generation" from existing CD.net?

I'm OK to share my experiments' results and my beliefs-concerns. I'm ready to contribute. But first - why are you not happy?

Best of day to you all, Alex

Hi Alex,

I think it's simply,  two hypes over two decades (CASE, MDA) without success are too much to bear for  business. Here in the forum you find the enthusiasts and visionaries who didn't give up, even if it takes so long, and who meanwhile have to make a living from working on pieces of the puzzle. But that's nothing to do with happiness - it's just we all underestimated CG in the beginning. Please note the smiley next to my VC question - as a child I was sure I can build a perpetuum mobile, too ;-) ;-) (note: 2 smileys now, I don't want to be discouraging, seriously).

Please share your results, beliefs and concerns. Specifically, I'd be interested in your opinion on the complexity of the "modelling chain", why you think that something like "scaling" is enough (be it 3D or not). My project experience told me it is not, but I might be wrong.

Plus: I'm serious with my comment on "being prepared for 3D". Our tool uses an UI abstraction layer (the virtual user interface), which is capable of connecting to arbitrary frontends, HTML5, extjs, sct/rcp at present, but we in fact have built prototypes for plain ASCII terminal, old WAP, and VRML. But without customer, partner, investor or enthusiatic spare time developer we cannot work on these prototypes.

Andreas 

 

"two hypes over two decades (CASE, MDA) without success are too much to bear for  business. Here in the forum you find the enthusiasts and visionaries who didn't give up, even if it takes so long, and who meanwhile have to make a living from working on pieces of the puzzle."

I absolutely agree, Andreas!

said takes the old road on new shoes ;-)

"two decades"...are there a few decades in my life?

I think, it needs more passion, more innovation, more care about new ideas, ...

Gentlemen, your answers are greatly appreciated. I do remember kind of similar situation with AI - in early 80s it felt so close... BTW in USSR that time AI research was not appreciated by powers. I knew one professor who was "downgraded" for his works. Funny, huh?
I'm getting the "how" picture better, but still:
@Andreas: "...Our tool uses an UI... without customer, partner, investor or enthusiatic spare time developer we cannot work on these prototypes..." - again seems like you are working for a pretty small company, no fat resources available... but still you are moving in that MD 3D direction ("our tools", VRML) - would be nice to hear more about the company/University? - what you do? - what is allowed to be said of course. Now, resources: there is always a plan... I used to work without resources... like many russians I guess :-).
My plan was/is: build something finished-sellable, use it as a springboard, iterate as needed. Succeed or dye trying. My first springboard is my transport company - I spent 7 years behind the wheel myself, was programming some VoIP stuff on the truckstops instead of sleeping :-). Steel like the open road and illusion of freedom. That first (relevant) springboard allowed me to create two more. I have a development platform (which I'm trying to sell(learning the ropes) - just started in March) - took me 3 years to develop and prepare for a market - tough place I have to admit. And I have pretty comprehensive Transport System - built on the platform - (took me 2 month to implement) - which I'll try to sell either. Using it internally for 2+ years. Dispatch, HR, maintenance - all in one package. Just a lot of work for one guy like me - I'm more a developer, I guess. To conclude this "how" part: I'd use that developed software to make some money to finance further research. Or I'd developed more software to sell - my tool might help. I could stop selling the tool and instead provide SaaS or sell end-user apps. But I do not have marketing setup(sales/network) and cannot do websites and most likely tech docs (Andreas - you're good at expressing stuff!). So I'd use some help. :-). Think it's the only way - no VCs reading those forums and their IT advisors will not cannibalise themselves. If somebody feels like participating (not Open Source I guess) - we have to talk but not in the open air. My email is alex well, at fancydata dot com :-).
Now a couple of lines on "what" - probably the most interesting part. Back in 96-97 I managed to implement a system which:
a) was able to define a Model Vocabulary of a particular task by parsing relevant papers and brainstorm notes like
b) was able to use that Vocabulary to produce a set of unique 2,5D pictograms(?) to replace of text indentificators (i.g. "String[] customersArray" --> little green smiling faces). That simple step gave me
a) ability to express the Model much more concise (pixelwise) - pictos/hieroglyphs were working just fine b) ability to put together constructs of Flow Charts ( I've tried chip-like pictos and railways-with-bridges-and-barriers-like pictos) and DataDiagrams on one surface. I displayed an Object as an area(village?) with a few DataGardens and "train tracks" as FlowCharts. Code like "bubble sort" was looking just beatiful. And that thing did generate a complete code M2Code? in your terms. I did not finish it much then, but starting to think about again.
 
To be continued... hit the limit

RSS

Badge

Loading…

© 2019   Created by Mark Dalgarno.   Powered by

Badges  |  Report an Issue  |  Terms of Service