Zahid Amin

Founder BackButton browser backbutton

14/11/2019 -

Mission Statement

Grady Booch: Industrial Strength Software is beyond the intellect of a developer
Durng my five years of commercial development I made a great discovery. I discovered the meaning of this statement is Component Technology . Therefore the best use of one's time is to train and become fluent in both concepts and implementation in frameworks through practice. The beauty of Component Technology is that Component Technology or framework technology levels the playfield for all . No matter what your prior background, A level computer or Phd. you have to practice . This was my takeaway from 5 years of commercial software development.

Two years HND course. The HND Course was focused on practical software development in the real world. I was taught Report Writing skills, Project Planning {Project Management Tool}, four programming languages , Pascal , 68k Assembly , C , C++ and RDBMS & SQL. Databases is an example of Component technology with sql as the framework programming language. This was the first and only framework technology I learned along wth RDMBS concepts. SQl is normally integrated with front end technologies

Topics not covered in the HND course were distributed applications and Paralellism. Parallelism is used for processing Big Data in particular in the field of Data Mining, Data Science, machine learning. Programming real time or on bespoke hardware was also not covered by the HND. That was the first knowledge gap I filled, through my planned career path, with my first employment opportunity at an aerospace and defence company. I no longer wonder how self driving cars are built, I know how they are built. If anything I wonder about is why didn't they seek me out to lead the project from its inception :). I also got an insight into a new subject, use of Best Practices in safety critical software development projects. Obviously now I am familiar with these topics, not originally covered in my HND computing through hands on with open source frameworks

The best approach, I found, to train on professional tools or unfamiliar technologies is through protoyping . The benefits of protoyping applications is that one is able to train, test the features and compare with past experience of technologies, in my case frameworks used in the field of application development. I believe the process of prototyping can avoid expensive mistakes {bloopers!}. Protoyping applications on frameworks , I believe should be a mandatory exercise because in safety critical systems the use of component technologies are not permitted . Another benefit of protoyping is of course the company can put in place rules to be observed by application developer(s) during the project, rules captured from protoyping thereby making the process of application development more of an administrative process. Rather than unleashing the varied patterns, practices, beliefs of individual developers.

The process of prototyping is to build an application bit by bit, adding one feature at a time. Testing each framework feature's, flexibities and limitations as you go along. i.e. breaking it and see how informative the framework is, in assisting you to repair it, so that there in a minimum down time during both development and run time.

I believe the reason there is so much open source frameworks available is because It is costly and expensive to train on these technologies. Having a batchelors or Phd doesn't gaurantee the individual will become fluent in the framework. These new Types of frameworks are far more complex and feature rich, with so many more considerations. The old 4GL two tier fat client Application generators pale in comparison. You can tell the quality of the frameworks when you look at the quality of the documentation and just imagine the amount of time invested in the framework features. But one thing the Tool vendors do not want to invest in anymore is training after hiring.

That means abundant opportunity for anyone who wants it.

Software Crisis: United States Department of Defence
GRADY BOOCH; The United States Department of defence (DOD) is perhaps the largest user of computers in the world. By the mid-1970s, software development for its systems had reached crisis proportions: projects were often late, over budget and they often failed to meet their stated requirements. It was evident that the problems would only worsen as software development costs continued to rise exponentially. To help resolve these problems which were further compounded by the proliferation of hundereds of different languages. The DOD sponsored the development of a single, common high order programming language. The winning design was originally called the Green Language (so called because of its team colour code during the competition), and was renamed ADA. Concurrency was excluded from the original language.
CISQ: {Consortium for IT Software Quality }; Poor quality software cost an estimated $2.84 trillion in the US alone in 2018
I did observe the contrasting differences between the commercial and Safety Critical sectors.

Complex Distributed Application Paradigms Made Simple

This Level O diagram showing the struts of Internet frameworks was first published in 1999 by WROX Press. I was really lucky to find it. It was just what I was looking for when I knew I had to transition from Two tier to three Tier. Also I realised that nothing was going to change in the world of OLTP , automated Form processing, while the Internet architecure remained the same. The quality of Tools {Application Generators} would improve with time.

Web Server

Application Server

Competing Paradigms

Apache web server application server wrox press

Building complex systems ....

....from scratch is a costly endeavour and one that is almost never successful". Real time bespoke hardware and bespoke software, mostly sensor driven have to be built from scratch due to certain constraints. To achieve success in those environments Systems are built in a methodical administrative manner.

To achieve success in the commercial business sector where the constraint of building from scratch doesn't apply a different approach can be taken. So in the commercial sector instead of starting from scratch one can make use of Application Generators. Ingres Openroad, Oracle Forms , Visual Basic are examples of 4GL Application Generators are examples of application Generators.I have used all three. Booch describes 4GL application generators as tedious . It is my view The more tedious the more chance of success. Use of 4GL application generator do not guarantee success, other simplification processes also need to be followed. For example the business processes also need to be broken down into smaller parts. These 4GL application generators are obviously limited in the problems they can solve. These particular 4GL code generators are FAT client front end with Databases {RDBMS} as back end. I would categorise building commercial business Systems using Application Generators, Frameworks as the process of following KISSSS [Keep it Simple Software Solution Strategy]. Application Generators is component technology no different from APIs {i.e. C++ classes}.

Obstacles to Component Technology

As I mentioned previously I have used all three Application Generators , OpenRoad , Oracle Forms and Visual Basic. I was hired on the basis I had proven myself and my ability to programme due to my Two year HND Computing. At the beginning of each employment I was sent on very expensive one week training courses. In particluar Openroad and Oracle Forms. Even for my first job I was sent on a week's course of ADA {3GL language}, it was also explained usage rules in programming safety critical software. Rules one could apply on any project. for example keep it simple by using the basics as much as possible. The 4GL Application Generators I mentioned are all used in the commercial sector, they are commercial tools. So they are only available to companies. The only way one to access them is the way I access them, through employment.

I then came across a freeware webserver called Apache and an Application Server called Tomcat. They were not only free to use but were actually fit for commercial use. I did a fit for commercial use test, by doing a compatibilty test with Tomcat and the Microsoft Internet Browser. I was really surprised by the results. Moreover Tomcat actually had more features for building more robust application development than a commercial product I came across for thin client application development.

To lay my doubts whether Tomcat, an open source freeware tool was fit for commercial use and I wouldn't be wasting my time training on it I got hold of another commercial tool, IBM Websphere. Once I examined IBM's websphere I realised that the two tools worked exactly the same way. The only difference was the commercial product had a GUI and the open source didn't. It was a bit basic with a need to follow installation instructions. Both of these tools comply to a specificication called the J2EE specification. That means you can deploy any J2EE compliant Servlet and JSP framework on these application servers. If you don't want to use a framework then you can just programme directly using Servlet and JSPs. I would personally go straight to a J2EE compliant framework because companies, in a collabrotive have spent alot developing these frameworks. The frameworks are are equivalent to the aformentioned 4 GL application Generators I trained on.

You can also use these open source webservers and Application servers to setup your own web hosting companies with little or not cost. With one static IP address you can host multiple websites from a laptop running from your basement. That FREE feature I found really unbelievable. I think these Tools are funded by Network companies like CISCO because they have the most to gain with increased network traffic.

Who wants to be Billionaire ?

There is a startup company in Australia called CANVA. Their ethos is to make it as simple as possible to build websites directly by the business owner.

The company is worth 3 Billion Dollars for making the complex into simple. Specifically providing a tool for business owners to build a website in a very simple way. You may be inclined to think that this may make web developers redundant. As the company name CANVA suggests their focus is soley on the HTML CANVAS TAG and for that a weberver will suffice.

The application developer's task is the HTML FORM TAG. The onus is on the Application Developer to take on the complexity, feature richness of the HTML FORM TAG and make it simple for the end user. To process the HTML FORM TAG you need an application server.



canvas form

Transition from Fat Client to Thin Client

The Fat client Users are trained users. Trained to use the screens, trained so they know what are the required values for the input fields. Never the less you still provide drop down lists when ever you can, rather than let them type in values if you want to make sure the data stored in the database is clean. The fat client is likely talking to the customer at the same time operating the software so to constraint the user assign tab sequences. Tab Sequence is a feature of 4GL Application Generators which allows the user to go next field using the TAB keyboard key, so the operator doesn't have to reach the mouse.

The thin client user on the other hand is an untrained user. Thin client user or the Internet user is going to land on the consumer website. You need to need to make sure the website is easy to understand and simple for the user to conduct business. This is your very first consideration if you want your untrained user to interact with your website. The good news of course is that you are only using the basic features which your end user can use.

The second consideration for a thin client is the website response time. in the case of fat client the end user will tolerate it, but if same happens with thin client, the user will think the website is broken. With the think client there will be a peak period. This is likely to be in the evening between 6pm -10pm, when the consumer is looking to do his internet shopping. So with this peak period demand in mind I had to find a solution so that performance is not effected. The solution I came up with Java's Remote Method (RMI) Invocation technology integrated with the application server.

Using RMIs one could distributed the processing needed across multiple machines. You just need to add three lines of extra code. With 4Gls one only used classes and Objects, mostly objects or libraries are used as ready made API components for the purpose of simplification and productvity. There was never any need for the Interface. It was while contemplating the peak demand of the think client and the question of how to deal with it, it was during that time of contemplation I came across this new technology, RMI in the JDK bundle, I realised the true purpose of the Interface. The other advantage of using RMI is that one can tightly link together the two servers, application server with the RMI server treating them as just a method with passing parameter values and returng a value just like a calling local method. What could be simpler, robust, Industrial Strength ?


When I was transitioning from Fat Client to Thin Client technology, I realised I had two new issues to address. The backbutton and the heavy user activity. I was sent on a training course by my employer on a commercial product which used servlets. I was left with more questions then answers. I then found a FREE application server called Tomcat which answered some of the questions. Unlike the commercial product there were an abundance of 600 + page books showing how to programme Tomcat Application Server. All these books were tutorial type books. Some were just plain wrong. I would have to sift through these books to find out what I need to be aware of to write Professional Industrial Strength Application. I didn't have the patience for it. So I logged on a mailing list and asked the one question bothering me. I am expecting heavy user activity What are my considerations ? The response came back You have to consider Connection Pooling , Load Balancing , Perfect Database Design . With that one answer I graduated from developer to System Architect without writing a single line of code. This is my LEVEL 0 approach to any technology or System. Get the Technology/System RATIONALE first. Now that I had done smart work without the hard work. LEVEL 0 approach also means you can "Party More Study Less!"


The word simple in software development can have two meanings, It is dependent on the context. In safety critical environments it means using basic programming features including not using threads for examples. In teh commercial sector it means the use of components technology such as frameworks and databases.

In component technology the word simple means not building a system from scratch but using framework for productivity. Simplifying a large and complex system in both its technological consituent parts and just equally importantly separation of Business Logic components. Example of Business logic parts would purchase order, employee salary management, customer detail management, human resource management. Both are just as equally important and one without the other will lead to failure. I would say that the order is also important and one should break down the business requirements into its constiuent parts then look for component technologies and map the business requirements to relevant component technologies.

Booch: Prototype!, PROTOYPE! ,pROTOYPE!

retVal =
Struts 2 RMI

Load Balancing the application server by Implementing the Object Orientated Concept of the Interface. PLUGINS

Struts2 Framework deployed in J2EE compliant Application server loosely coupled with simple RMI paradigm

The considerations which go into building these kinds of application are far more complex than the two tier 4GL Application generators like Oracle Forms or OpenRoad , Visual Basic. The name Oracle Forms should provide intuition as to its purpose. Take for example Struts2. It started life as just Struts with hundreds if not thousand of developers, architects involved in the construction of the framework. Still the framework struts1 was abandoned when they realised the approach was flawed. Then they took up another framework called WebWorks2 which did not have the flaws of struts1. WebWorks2 was then developed into struts2. The OGNL had a security flaw which could be exposed through JavaScript Injection. It took a number of tries to fix that by the struts developers. Equifax did not notice the flaw until somebody stole their records. Although in my opinion the OGNL injection leak would not in itself be enough. I think perhaps they did not fully utilise the database security features. These types of flaws can be picked up if one prototypes. An Oracle DBA who outsourced as a contractor told me many people do not changed the default Oracle username and password of Tiger Scott. The user Tiger has full priviledges.

Internet Based OLTP Application Considerations. With these requirements you are in an informed position can pick the framework, whether it is freeware or commercial.
  • Backbutton { form duplication }
  • Security
  • Direct URL Access
  • Load Balancing
  • DB Connection Pooling
  • SQL Flexibility
  • Internationlisation
  • Push capability
  • Stable feature Rich IDE { need iIntellisense nano/vi editor not for me }
  • Debugging Capabilities
  • Awareness of Time & Disk Space System Crash
  • A Framework should show off good programming language techniques
  • Framework Error Messaging System for Application Developers, this is different from Application Error Handling for end user
    and Programming language Generic error messaging stack for programmers.There are three tpes of error messaging altogether

  • Framework Programming Languages

    You only need to train on and use BASIC language features, because if you decide to use complex features, you will confuse your end user {consumer} and lose business {no pay cheque } . Your consumer will go to a competitive website which is easier to use for conducting consumer business. The more complex features you use the more your company botton line will suffer. You must only expose those features that your untrained end user is familiar with.

    Level 0 - OLAP CUBE {Business Intelligence} with Apache Tajo, Component technology { Application Generator }

    OLAP CUBE component technology can also be categorised as Data Science. OLAP came before data science. It was known as just OLAP CUBES. OLAP Cubes simplify the state of business activity for making business management decisions. In the diagram OLTP Source Data means a copy of the OLTP database otherwise OLTP real time Database transactions' performance will suffer. I have some commercial experince of OLAP CUBE technology in the TELCO Industry.

    Level 0 - The Machine Learning Use Cases { Business Knowledge }

    Level 0 - Machine Learning Algorithms {Component Technology }

    To Realise the Data Science RATIONALE you just need to put together these two Level 0 diagrams. Once you have the Rationale then Machine Learning becomes FUN technology where you will not be able to stop yourself from inventing / developing applications or "Party More Study Less!" . Machine Learning is just another component technology with supporting frameworks like Tensorflow , Pytorch , Apache Spark.

    Level 0 - Machine Learning Map Another Top level View

    Level 0 - Planning Using Artificial Intelligence { Multi-purpose Application Generator}

    Essence of Machine Learning

    From Mathemtical formula to my Original implementation. When you choose to train from the best you will be the best from Day one.
    To be good at something especially in the field of computer science Appliance with the use of component technology through years of commercial experience is a myth. It does however takes years to come up with frameworks or components in the first place. Even though it takes years, as developer you may still have to not invest in some frameworks because they do not meet the requrement. To make such a decision you can compare with other framework technology and you must know the concepts the component framework is trying to implement. Otherwise just train on the technology your employer is offering you. It was through experience that I was able to first make a decision the next component technology would be my choice, but I also knew that I would have to know the concepts first if I wanted to make a qualified decision to choose my own framework. With the skills I gained leading to the birth my for mentioned objective, Just training on technology that was beig offered was no longer a happy or satisfactory option for me. The most important Step in the process of training in a new field of Computer Science or the Zen in the Art of the motorcycle design is that It must always begin with the Intuition , Rationale, the Level 0 . After that you can start putting the parts/components together.

    Original Algorithm of a cash Register

    No copy and paste here, you'll have to type it all in. It is the only way to learn. Actually That's a lie too. The only way to be is to work it out yourself

    Career Path

    Rather than accepting a safe career job as product support, I began my career working as a junior software Engineer in a safety critical bespoke hardware and software development environment. The client is equally technically aware. Only best practices are followed. ADA was developed by the Aerospace & defence Industry solely to avert a software crisis. Other Language I came across was Pascal. Does not have Persistent Objects & Concurrency. 3 {GL} Languages such as C, C++ {CPP} are frowned upon. One reason, Syntax readability. There are others reasons too. Use of Concurrency is a consideration so not permitted, simplicity or use of basic programming concepts is encouraged. In such environments there is only one production version. 1.0. On one project a mathematician was a member of the team. His role was to make complex calculations for the technical lead to programme the bespoke hardware. The technical lead was provided datasheets {communication protocol, port addresses i.e. watchdog,ACK, handshaking, etc.} of the bespoke hardware from hardware engineer(s) {in-house, client} . There is a clear separation of roles between hardware engineer, mathematican and two programmers. The Tech Lead was an ADA programmer , the other programmer was the assembley language programmer. He is the one who wrote assembly language subroutines from the hardware data sheets. The assembly language routines were then used by Tech Lead for devising application logic.

    Do you have a minute ? I asked. He replied yes sure. I know I am supposed to do unit testing, I look around there is so much going on, the big Rig test room and all these documents, Do you have a top level document how the system works. He wrapped his sandwitch up and put it away neatly in his lunch box. Pulled an A4 sheet from one his document bundles. Flipped the page over to the blank side.Picked up the bic pen and began to draw. After he had drawn a number of components he then began to explain each of the components. He explained it is so clearly that I was asking questions as he was explaining and he was giving answers. He shocked me a bit with one detail. When he was finished I asked him that I heard that aeroplane software has black box and the software is supposed to be fail safe. He pulled his chair back and said here is the black box. He then explained how the bespoke software was fail safe proofed. It took all of 20 minutes and I had been downloaded with hundered of Millions of Dollars US of best research and development in the world.

    After that day my best time of day was as I came in to work. The moments when I walked past the Iranian phD student who was doing his thesis on the project. He was going to spend a year writing his thesis from the specification, test documents etc. Searching through Bundles and Bundles of documents. He was always holding his head and always looked stressed trying to figure out the system so he can document it. I on the other hand accomplished the same in 20 minutes with a diagram from the project Technical Lead who developed the system over the past 4 years. The diagram labelled "competing paradigms", means so much to me because it reminds me of the diagram the Technical Lead drew for me. He then went on to send me to do fix of crashing system of aircraft engine monitoring system.

    I then moved into an environment where a large and complex product was development using a 4GL Ingress OpenRoad. The product was developed by following every best practices leading to its success Generating £18 GBP Million Pounds Revenue per annum from the work of 9-11 4GL developers, 2 testers, 3 Data Analyst Headed by a world authority on Databases. The product had 250 tables on Ingres database. The company was taken over by American Investors. They decided to migrate from Ingres OpenRoad to Oracle Database and Oracle Forms. Both frameworks are 4GL Application Generators. If the product was to be migrated or redeveloped it should have been migrated from Fat Client to Thin Client Technology. The new Investor company also decided that Business Analysis was not important in the migration exercise and it was cheaper to do the migration without business Knowledge or business analysis and do it in India. The product was shipped to India. I would have to ask that if business Analysis was so unimportant then surely those same Indian developers would have a developed a Telco products of their own and presented it directly to the customer. After the Indian company had the product they could redevelop it from the existing product and approach TELCO customer world wide. I did not agree with the values and views of the new Investor Company so I left to join a software house where I would be able to further develop myself.

    I needed Software Development experience where projects would be at different stages. I found such exposure at a software house. It was there I discovered the importance of frameworks technology and figured out what Booch meant by Industrial Strength Software beyond the intellect of the developer. Don't build applications from scratch Use Frameworks. Unfortunately this company just like the previous company had not invested in the new three Tier Transition technolgies which were coming. Some developers who had a number of years of experience on certain technologies weren't prepared to let go their existing skills and relearn new technologies. I use to go to Interviews and I discovered that there was more confusion and little knowledge of the way forward during this transition period. I had discovered the world of open source technologies for the new transition period so I left to retrain on a framework of my liking. With the above mentioned Obstacle to Commercial Frameworks I never download commercial software with trial periods. meanwhile the company I had left envitably closed due to failing to invest in new relevant technologies and outsourcing to India.

    Tips and Tricks


    I was sitting outside my office building during my lunch break having a FAG. I used to smoke then. A guy came outside with a cigarette in his hand. I quickly offered him a light before he could take out his lighter. It is a good way to start a conversation. I have not seen him before so I asked If he just started. He said he was here only for two weeks and he was to go to customer sites to TUNE the live running databases. I was taken a back by this because we had three DBAs and they had a department of their own. I didn't know there was even such a thing. I asked him what did TUNING a database involved. He explained to me what he did and they all led improving application speed and performance.

    Coding Standards

    This is the NASA's Rule of 10 Coding standards. One rule is to turn on compiler warnings
    and rectify the warnings before releasing the software.

    Programmer's plateau ?

    An Artistic impressionist painting of the programmer's plateau.

    The programmer's plateau is when you make your objective to be fluent in a programming language. If you now safe file operations and link lists then that should be sufficient or know the programming language keywords. You can reach that plateau in a short space of time. Once you reach the plateau you are all dressed up with now where to go. Your objective should be not a programming language but framework. As an expert in a framework you are on your way to becoming a system architect. That is when you will be most beneficial to a business. A business who knows and understand the value of frameworks.


    I want to acknowledge my gratitude to those people who helped me to better myself so that I feel qualified enough to do a setup and a startup in fraemworks, paradigms of my choosing. Mr. Dimitri , 68K Assembly Language teacher, Ada Technical Lead A special thanks to the person who informed of the considerations I needed to know { connection pooling, load balancing, perfect database design } when I was transitioning from fat client to think client technology component technology. Also FAG-A-TUNA.

    Programming Fluency

    During my TWO year computing course I was the best C programmer by far while other students never got the understanding. I also had diffulty in conceptualising The first language I ws taught was Pascal. Despite Pascal is meant to be an easy to learn for the purpose of learning programming. 68k assembly was my second language by this time the conceptualising a programming language was becoming natural . I was given a project to do in C. I was transitioning from accountancy to Computing because I found Accountancy boring and not something I wanted to do for the rest of my life. C programing was my third language and with the specification in my head from my accountancy career set me apart I couln't find a point to stop programming. I could go on for ever and forever. Other students did not have a specification so struggled with programming. You may find you have to stop yourself and say that is enough for now for an "A" Grade. As I did. It was during this project I realised I could do programming. Although when I started looking for a Job I was asked by employment agents how many thousands of lines of code I had written.

    Confusing Component Technology

    $ java org/makeuse/iSayHello
    Error: Main method not found in class org.makeuse.iSayHello, please define the main method as:
    public static void main(String[] args)
    or a JavaFX application class must extend javafx.application.Application

    Please note the lack of imagination and the aformentioned self inflicting confusion in the Naming convention with the variation on the word application Application. Complete failure in following any coding standards. The package name is a namespace. A way to uniquely indentify a class name. The java people have anticipated that the javafx library is going to be used for Application Development so just called the package application.Application. How silly ! What is the application developer suppose to call his prototype application.

    Importance of Naming Conventions

    After the variable went out of scope it remained in memory then the second process (inner procedure) and the following processes picked the value from the same name variable and used it. By used it I mean in this case the value was concatenated. That is to say if variable A ="10" , variable B = "20" then if variable A is not initilaise at the beginning of a process or garbage collected at the end of a process and variable A is global Then the value of variable C {= A + B} will be "$1020". But if the variable A is initialised or garbage collected then the value of variable C will be "$20" which is correct. Variable B's content is of course overridden or reassigned by the incoming process with new data. SO the lack of initialisation for variable B has no effect.
    With Use of Naming conventions If we rename those three variables where A is CountryCode , B is TelephoneNumber and C is TeleNumber. These three variables are part of a Telephone Compute Billing Engine. This Billing engine is run once a month to calculate customers' Telephone bills. If the customer made an international call on the 24th day of the month then if the CountryCode is not intialised then the customer would be over billed, every local after that call for that month would become an International call because CounrtyCode is appended to every local telephone number retrieve from the database. Customers can be over billed for years until some one made an international call at the beginning of the month and had a need to check their bill. The programmer confused himself with his own naming conventions and the testers had no hope of detecting the confused phD highly respected programmer. Perhaps the application of {MUM} with naming conventions such as localNumber InternationalNumber would not need half a line code of change of telephoneNumber = "" at the end of the routine. To unconfuse the bug. Avoid naming Variations when naming variables i.e. TeleNum ,TelNumber, TeleNumber , you satisfy the compiler but will end up confusing yourself.

    Object-Orientated: Methodolgy or programming language ?

    It may appear to be a silly question to a computer science professional, If you agree that Object orientated programming is a methodolgy therefore language neutral then please contact Department of Science Indiana University Bloomington https://cs.indiana.edu/ and let them know. The Indiana Science University is teaching RMI {object orientated}... unlike CORBA, which is intended to be language-neutral, What you give up in neutrality you make up in simplicity. Do remember these are the Computer Science students who are developing software architecures :), the same ones who did not question, for how many years ? the anomoly I am showing you.

    RMI Timing

    The ability to execute the compute engine on a remote server is the defintion of flexible in Software Development. This is especially useful for business Intelligence or Data Warehousing applications. These two types of applications require heavy processing or separate compute engines.

    The other types of applications which make use of a Database is called Online Transaction Processing {OLTP}. Any application looking to be simple and flexible from ground up needs to make use of RMI. By simple I mean RMI uses Object orientated methodology which is in itself simple and flexible. To use the RMI's remote feature one simply applies couple of lines of code in the client like ;
    SomeInterface si = (SomeInterface) Naming.lookup ("//SomeHost[:1024-65535]/MyServer");
    String retVal = si.SomeMethod("coco");

    Design Patterns

    RMI setup

    In case of any security errors hindering you from application development during protoyping stage just add this the bottom of file(s) to jdkhome/conf/java.security and or java.policy. Removes all default JVM permissions
    grant {
    permission java.security.AllPermission;

    If a Class is a Blueprint and an Object is an Instance. The Instance is a Runtime Implementation of the Blueprint that is a Class. Then to add Impl to the class name the Class is not a Blueprint anymore, it then morphs into an Implementation when the Class Implements an Interface. Surely this is an illustration of Pindu-ism. The Oracle pindu has created a virus of confusion because he has relied heavily on Java compiler error message to support his supposation when he should have read a book on OOM which say you can define method body abstract classes but you can ONLY define < abstract > method declaration in interface class. This point is emphasize in the animal dog class illustration with comments on this one page website.

    Secure By design JAVA RMI: Secure by Design.
    Once the client programme starts up, the application processing is executed in RAM memory by the kernel like any programme. The behaviour of the local application is transported on an as needed basis across the network over TCP/IP from server codebase somewhere to the client RAM memory. The transported object is garbage collected by JVM's Distributed garbage collection as soon as the client JVM releases reference to the object. The security is that there is no risk of some one decompilimg classes because there are no classes on client disk to decompile.
    Secure By design


    The Indiana University suggests that Latency could be an issue and is left to a programmer to address. It took me ten minutes to conduct a latency test with RMI. It was really easy for me with the help from {MUM}. I guess that makes me a progammer as defined by Indiana University. I have also fixed the University's long standing Bug that Object-Orientated is NOT language neutral unlike CORBA. I have demostrated this bug fix by showing Object-Orientated is a Methodology same as {MUM}. I guess that makes me very good programmer or perhaps system Integrator ?

    JAVA RMI Proof of Concept: from UK TO Santa Barbara USA Distance: 18,000 km, Time Taken: Round Trip in 97 Milliseconds

    RMI Timing