Summary of this blog organized hierarchically and chronologically. If you are not familiar with the ISA blog, it offers a more friendly navigation.
Hello world!
Hello all! Welcome to those, like me, that are tired of poor software architecture. Of technologies coming from historical strates . You know, those we encounter in the real world. Welcome to the ones who think it is much better and efficient when we think before doing. If we just stop doing, and take the …
What is the ISA blog ?
The purpose of this blog is to build an architecture freed of any existing constraints. The best imaginable software architecture. One that can be applicable in most cases (say to 80% of applications). Relying on decades of experiences, this architecture should first select the best concepts and components; and incorporates them gracefully, following best practices …
Why ?
Information Technology (IT) becomes more and more complex over the time. Primary, because most of previous generations technologies stay alive. The major reason for that is the investments of all natures spend on it. Secondary the flow of new technologies doesn’t speed down. In fact it seems almost growing. Then the stratification is at work …
So what ?
Please read the Why ? post before this post. Driving principle. A simple principle that drive all the approach : think first, do second. The target results of that theorical then practical work should be The Ideal Architecture. No less. Otherwise this attempt of solving the unnecessary complexity of IT will only produce an other strate. Key properties. This means that …
ISA Requirements
Having defined the scope of the Ideal Software Architecture (ISA), it’s time first to make a list to Santa Claus of what will be nice to have in computer science. Wish N°1 – plug and play generalized. An old dream to begin, connect a computing unit as easily as we connect any device, like a …
ISA Wish N°1 – Plug and play generalized
An old dream to begin, connect a computing unit as easily as we connect any device, like a washing machine or a telephone, and it is ready to run. In other words, all the needed things are either embedded or come from the connections.
ISA Wish N°2 – Distribution
The world, the universe is not centralized. They don’t have center. Any attempt to ignore this fact in an ideal architecture will fail.
Distributed computing and storage have to be at the heart of ISA in order to adhere to the reality.
An other aspect of distribution paradigm, implies that the data and treatments are scaling horizontally. Taking advantage of all 4 dimensions of our universe.
ISA Wish N°3 – Intrinsic securisation
The first benefit to incorporate security in the lowest layers of ISA is that its safety is generalized every where ISA is deployed, and at anytime. This is a very important advantage when comparing to security problems recurrently occuring on all runtime environments (operating systems, browsers, etc.)
ISA Wish N°4 – Be both static and dynamic
Statics and dynamics have pros and cons :
➽ Static often offers the efficiency, an easiest use and the robustness.
➽ Dynamics offers simplicity and flexibility.
An ideal architecture shouldn’t have to choose. It has to incorporate gracefully both statics and dynamics in an unified world.
ISA Wish N°5 – Simple and freed of experts
One of firsts motivation of ISA is to unify the architecture and to make it simple in order to eliminate useless “expertise”.
ISA makes a break with the existent. Thus this architecture is free to make its choices. In other words, compatibility with actual IT is not a concern for ISA. This primary option eliminates the niches for geeks and experts.
ISA Wish N°6 – Modern, performant and durable
Think and design ISA to be durable for several decades. The main design patterns should be incorporated as much as possible. This architecture should not limit itself in changes that it can elaborate to have good performances. And this in both dimensions hardware and software. Remain native : It is the condition to do at best of the possible. Define a solid base and then incorporate an extension mechanism.
ISA Wish N°7 – Life cycle foundations and ground floor.
ISA should offer a basic common management for specification, design, test, delivery and the like.
The purpose of ISA is to provide a common set of blocks on which any people involved in software can rely at anytime and anywhere.
Another aspect ISA should address is the continuity in the problem/solution chain thru specification/realisation and the abstraction levels.
ISA Wish N°8 – Use existing technologies when acceptable.
Doing nothing is always the best option when acceptable. So optionally if an existing technology is a good candidate to be an ISA part and that it meets all the requirements above, then it should be retained.
This post is also the opportunity to initiate the building process of ISA.
Idealism versus Pragmatism
We are facing a problem where it seems we should choose between the idealism pest and the cholera of pragmatism.
Like Charles Sanders Peirce I prefer the pragmaticism word to distinguish this scientific approach of the usual pragmatism to just deal as we can with the real…
Foundations of ISA – Base paradigm – Requirements
Have an underlying paradigm to help building ISA is a mean to promote coherence and consistency.
In this way it is easier to follow all the previously expressed wishes. It also gives guidelines for choosing among solutions in particular on reuse of an existing one.
Available paradigms overview
In the perspective to give a basement to ISA, here is an exploration of pros and cons of major paradigms (No paradigm, Object Oriented, Sets (Relational) and Functional). To sum up the OO paradigm is retained for ISA. It is this approach that has made me discover the “Atom Oriented” possible paradigm.
Step into OO paradigm
What is an object ? This is the question this post answered by establishing an axiomatic: Encapsulation, Interface, Behavior, Identity and State.
This post also reveals what is there behind these axioms and begins to explore their implications.
The Identity axiom
What are the Identity axiom consequences ? Here is a list of studied subject by this post: Addressing, Unitarity, Uniqueness, Ubiquity, Versioning.
The State axiom – Part 1
This post answers the question “What’s a State ?”. It also consider object life cycle and the basic Design Patterns. Finally, Eiffel’s advanced features around state are evoked.
The State axiom – Part 2
In this second post on Object state, we will see what are Fields, Relationships, Properties and Attributes; and why and how to put them all together.
The State axiom – Part 3
Third post on the object state axiom. Here I will speak about the state of the Class object and begin to define what it is. It is also question of immutability and of threaded objects.
The State axiom – Part 4
Here I study the Class Object state axiom in the perspective of an incorporation in ISA. What’s about the Class life cycle ? And about the Versioning, the Grouping and the Delivery ?
The SOA paradigm case
What is really the SOA? Analyzing pros and cons, is this a concept usable for ISA? This post conclude that no, it isn’t. OO is more powerful and provides a wider consistancy.
However, some SOA central properties have to be incorporated in ISA. Let’s have a look to them!
Object Oriented Guidelines
ISA relies on the Object Oriented paradigm. Let me now join OO with our wishes. Some guidances emerge . The first one is, not surprisingly, “Everything in ISA is an Object”!
Useless concepts
The scope, background and foundations of ISA are now well established. It is time to examine the existing principles, the concepts and artefacts that are not useful for us. To reverse our point view in order to enumerate the existing things that must be avoided.
What language to express ISA?
How to express ISA ? The conclusion here is that building a first round of LL is the best answer. A warm up lap before the real start of the ISA solutions.
What to express ? The ISA roadmap
After stating that LL is the language to express ISA, comes the time to define the content expressed: The whole software developpement stack (just this !). From the idea to the production, in going thru the coding, the testing and the other major tasks of our industry.That’s the opportunity to state the ISA software process steps and also the delivered artefacts.
LL basics and syntax
What are the major guidelines for LL? Simple (as Basic and PHP), Powerfull (like C++ or Smalltalk), Consistent (as OO is), Efficient (as C++ and Python), Dynamic but not messy, Seamlessly to suit to the whole software life cycle.
Overview of the LL type system
This post is some kind of tutorial on the Last Language type system. Not just a tutorial in fact, but a discussion space to challenge the ISA type architecture.
“Recreation” on binary versus textual representation
In a recent brainstorming post, I stated that in ISA having a typed system every where, using the right type at the right place, is certainly a very good policy.
In the current IT world this obviously not the case. We often need, among others, to encode binary data into text. This give several declination like hexadecimal, base 64, etc.
Generation algorithms of Object id
The object identifier production is one of the most important thing in an OO Architecture, and even more when it is a distributed one. This post is about some key items of the Identity axiom. Its major concerns are integrity, isolation and performance.
To be or not to be Generic
Thesis: Not to be generic At first, I didn’t want to include generics in ll. This is mainly for two reasons. First, because it is really hard to conceive and understand a generic algorithm. This goes at contrary of the Wish N°5 – Simple and freed of experts. In my professional life, I have often …
No related posts.