Archive for the ‘JavaScript’ Tag

2012 – Cloud Computing Architecture the Mobile Smart Device Age   7 comments

The following quote is from an article addressing the possibility that mobile smart device world-wide sales will  surpass PC sales in 2012.

“In 2012, Gartner Group projects that worldwide PC sales will reach about 400 million units in 2012, while mobile smart phones will surpass 600 million units. Tablets will sell about 100 million units. That means that only about 35% of the new devices sold this year that will be connecting to the web will be Windows PCs. That’s how much the technology world has been turned on its head in just five years.”

We will be turning the corner on mobile smart computing this year. I believe the age of thin clients is on the verge of a major breakthrough. Mobile smart devices will become more popular than laptops, notebooks, and ultra-thins. I don’t see the All-In-One PC’s becoming dominate but will probably still see some deployment in the Enterprise. We are entering the age of mobile smart devices and Cloud Computing.

The traditional bullpen and pod workstation environments are going to morph into transient work space environments. With Cloud Computing and Collaborative Workflow and project development and management technologies supporting teleconferencing and telecommuting it is now possible to have geographically disbursed work groups, departments, project teams, divisions, or corporations. I’m not going to overlook the importance of balance in workplace community.

It is still very important to develop a project, departmental, group, division, and corporate culture. Some business models are going to continue to require that people be physically located together to provide product and services to customers. However, to varying degrees it will be possible for many typical office workers to telecommute, especially, if their company has embraced automated workflow management requiring the most minimal passing of materials through the workflow process.

For IBM zEnterprise z/OS, z/VM, z/VSE Operating Systems the primary languages will probably be COBOL, JAVA, Assembler, C/C++, PL/I, REXX, JCL, XML, and HTML for applications development using CICS, IMS, DB2/SQL, Oracle RDMS,  z/OS HTTP, and batch processing. For z/TPF it will probably stay mostly Assembler. For z/OS UNIX and IFL for System z Linux, as well as, zBX BladeCenter Power7 AIX and Linux the primary technologies will be Apache HTTP and nginx Server with Tomcat; WebSphere or Oracle WebLogic with node.js; and PHP, Python, Perl, Ruby, C/C++, SQL and PL/SQL.

IBM zBX BladeCenter System x Architecture consisting blade servers of AMD x86-64 Opteron 6-Core 32-bit & 64-bit Processors and Intel Xeon x86-64 processors support for Solaris x86, 64-bit Linux and Microsoft HPC Windows Server 2008 and Windows Server 8 platforms with Microsoft SQL Server 2008 or 2012 will probably be using shell programming languages, CGI, JAVA, HTML, CSS, JavaScript, node.js, Ruby, PHP, Python, Perl, C/C++, C#, VB, & SQL.

With the proliferation of smart devices (mobile smart phones and pads) it looks like GUI is going to stay thin client on OS interfaces and browsers. The primary browser client content will end up being HTML5, CSS3, JavaScript, PHP, .NET et al. I see CGI with XML and HTML5 with CSS3 Hyper-Text Markup Languages and PHP and Python languages with node.js moving more towards Internet and Web Server run-time environments on the proxies, cache, cloud and host servers. JavaScript is already moving to the cloud and host servers with a run-time environment as a plugin to internet and web servers using node.js. It looks like JSON java run-time environment is going to take off as well.

It also looks like HTML5 and CSS3 will make Adobe Flash and Microsoft Silverlight obsolete at some point in time. Adobe and Microsoft have announced they will discontinue these products in lieu of HTML5 and CSS3. The best cache, cloud, and host servers will be zEnterprise z114/z196 CPC’s with CP’s, zAAP‘s, zIIP‘s, IFL’s, and ICF’s with zBX BladeCenter using Power7 and AMD Opteron and Intel Xeon x86-64 multi-core processor blades with InfiniBand.

The value and productivity of the “green screen” or non-graphical or non-hypertext markup language terminal interfaces is not only not lost on the mainframe but I have found it of extreme value when administrating UNIX and Linux platforms. Even Microsoft has announced their next generation of Microsoft Windows Server platforms will provide the use of terminal interfaces as an alternative to GUI. The ability to use powerful command line syntax and scripting languages on terminals greatly enhances ones abilities to administrate and configure environments and also gives one a better understanding of the underlying technologies and their synergy to the IT systems engineers, programmers, and administrators.

Early in 2012 discussions regarding distributed file systems and NoSQL databases began to heat up. Now they are very hot. With the explosion of mobile smart devices and smart phones I foresee these technologies becoming the hot new technologies of 2013. With them will come a great demand for mobile smart device applications development. This will lead to an explosion in several technological areas.

Distributed computing technologies will now become the new paradigm. Server sprawl will become a serious problem for most large enterprises moving towards distributed computing technologies. A lack of standards, interfaces, migration and integration technologies; lack of network/NAS/SAN bandwidth and IPv6 compatible hardware and software; wireless networking; implementation of secured networking protocols; slow adoption of 64-bit application development, lack of effective Collaborative Application Lifecycle Development technology integration, bypassing effective System Configuration Management protocols will contribute to an increases in outages and security breaches.

Another issue which must be addressed is the proliferation of UNIX-like – essentially disparate Linux kernels and their unique or proprietary GUI and application development environments running on wireless mobile smart devices and phones, networking hardware, networking protocol services servers, and small, mid-range, large enterprise, super-computer, and massively parallel processing servers connected to the Internet.

2012 – Where Does the COBOL Mainframe Programmer Go From Here!   3 comments

First of all COBOL has traditionally been used as a procedural language with structured methodologies. The use of true modularity in COBOL was inhibited because top down structured programming was replaced with functional programming languages like PL/I and C Languages before true modular programming methodologies could be taught and practiced by many COBOL programmers. C and Pascal became the darlings of the academics because there were no true functional modularity constructs in the ANSI COBOL standards at the time. Those came later.

With the advent of SmallTalk and Object Oriented Programming there was resistance until C++ began supporting it. C++ still supported functional programming but added objects, classes, methods, and inheritance for OOP. C++ became so complex that the JAVA Language was created to simplify the learning curve and provide stability by relieving the dependency on pointers. Microsoft had to compete because Visual Studio was a cash cow so it developed C# to compete with JAVA.

Of course the Internet required the development of Standard Generalized Markup Language (SGML). However, this language was too complex for the general programming community which relied on structured programming languages. So the HyperText Markup Language was developed and the HyperText Transmission Protocol (HTTP) was created to facilitate the expansion of the World Wide Web. This spawned the wild growth of HTML and of course chaos. Then came Cascading Style Sheets (CSS) to provide some structure to HTML. It was decided a more robust Markup Language was required so Extensible Markup Language (XML) was created. However procedural coding structure was still required for true Web Applications so CGI scripting languages started evolving. Common CGI languages were soon overshadowed by JavaScript, Perl, Python, PHP, Ruby, Adobe Flash, Microsoft Silverlight, et al.

In the meantime XML was deemed too complex so XHTML was created. This caused a branch on the HTML tree between HTML4 and XHTML 1.0 with CSS2.x releases. The browser providers screamed for some sort of standard to follow. So XHTML was dropped and W3C standardized on HTML5 and CSS3. JavaScript and PHP became more popular and Python and Ruby developers grew trying to simplify the bloating of the JAVA specification.

The JAVA Virtual Machines became performance problems because of specification bloat and memory management problems with garbage collection processing and heap mismanagement.

C++ was a better performer than JAVA but harder to master because of the size and number of C libraries and foundations.

C++ and JAVA were in head to head competition to provide multi-platform independent code for Web Application Development.

W3C did such a good job with the HTML5 and CSS3 specifications they have effectively made Adobe Flash and Microsoft Silverlight obsolete.

My recommendation is if you want to build on your COBOL CICS background and want to remain a candidate for COBOL shops then invest in learning JAVA. If you don’t have relational database DML skills then learn SQL. Many experts are betting on XML but my bet is HTML5, CSS3, and JavaScript are going to trump XML. Right now HTML5, CSS3, and JavaScript run on the client side. However a new runtime environment called node.js is becoming popular to run JavaScript on the server-side. This could make JavaScript more popular to run on the server-side than JAVA in the future. What ever you do, learn JAVA Database Connectivity (JDBC). It will be important.

You might want to pick up a primer or learning publication on PHP or Python. PHP seems to be very popular on the Web at this time.

Finally, looking ahead. Start becoming familiar with NoSQL databases such as Hadoop/HBase, Cassandra, CouchDB, MangoDB, DynamoDB, et al. They may be major players as the Cloud Computing craze takes off.

Web Hosting Infrastructure – Platform-as-a-Service   4 comments

Web Hosting is a considerable topic. Aspects of Web Hosting which should be considered are High Performance Computing with High Availability consisting of Web HTTP, CGI services and Web Application services supported by virtualization, clustering, vertical scaling, horizontal scaling, both vertical and horizontal scaling, workload balancing, fail-over, networking redundancy and aggregation, solid-state storage, application assist processors, and dynamic virtual i/o sub-system disk storage with fault tolerance and automated recovery.

Web Hosting PaaS should also consider web application database services (including RDBMS, Hierarchical DBMS‘s, Inverted List DBMS’s, as well as, Key Indexed DBMS’s and NoSQL database technologies), as well as, unstructured data file system management services including multimedia, metadata and hypertext data sets, Big Data technologies like Apache Software Foundation’s Hadoop, and security technologies including TLS/SSL Secure Socket Layers, Certificate Authentication and OpenSSH.

High volume Web applications like social networks should consider distributed web caching solutions like those provided by Akamai.

Web Applications should include integrated workload management, configuration management, source code security and version control with make, build, bundle and deployment technologies, as well as, performance monitoring tools.

Web Application Development Environments/IDE’s should support a variety of web programming languages, (JAVA, C/C++, C#, VB, Node.js, Python Programming Language, PHP Programming Language, Ruby Programming Language, Perl Programming LanguageJavaScript, etc.), and Hypertext Markup Languages including HTML, XML, and CSS. In addition development environments should include Application Development Frameworks including Service-Oriented Architectures and Message Queuing with debugging, tracing, integration testing, and performance analysis and tuning tools.

In the future I hope to see technologies which will provide true ghost OS file systems, databases, unstructured data file systems, and Big Data file systems  services which will provide the establishment of unit and integration testing baselines and the integration of auditing tools to validate test results.