Web 2.0 to 4.0 RIAs, APIs, and Scalability

Computer Applications Training SYS-ED SYSED

Web 2.0 to 4.0 - Rich Internet Applications and API Training Service Programming Languages Sitemap
Submit Programming Language Questions Mobile Web Programming Schedule SYS-ED/Mobile Devices

Web 2.0to 4.0 RIA,APIs, and Scalability Advanced search
Contact You Web-based Training Services Web Browser Viewing - MS Edge
     

Web 2.0 to 4.0

Rich Internet Applications and APIs

Web 2.0 Technologies Separation of Presentation and Content HTML5 and Mobile Devices
API Management Technology and Developer Tools Representational State Transfer and Horizontally-scaled Architecture Middleware Services and RIA Mobile Applications
Web Services SOA: Service Oriented Architecture SYS-ED Training Service
Copyright Acknowledgement
Infrastructure Evaluation and Application Design for Coding
Web 2.0 Technologies

Industry studies project that Web 2.0 technologies are now a $4.6 billion market and growing. The prevailing trend is for mashups, podcasts, wikis, and RSS integration into workstation desktops and mobile devices. Accordingly, there will be strategic implications for CIO's, enterprise architects, system architects, web architectures, and information technology developers.

Web 2.0 to 4.0 >> Computer Applications Training   << Enlarge by Clicking 
   
Scripting 

Changing the interface will not be as straightforward as adding RSS feeds or blogs to make business applications more interactive and targeted to specific visitors. There are consequences when layering Web 2.0 technologies on existing applications; an application modernization strategy will be required. An organization's information technology infrastructure will need to be able to support a Web 2.0 modernization effort and extend beyond mapping the applications. Web services and SOA: Service Oriented Architecture also will be utilized and coded. RIA: Rich Internet application platforms have emerged; however, there is no universal best approach to building RIAs. The issues being debated include whether applications should be 1- Deployed on the desktop or in a browser. 2- Developed from an API framework. 3- Coded with open source software AJAX or Java. 4- Repurposed and extended as part of a SOA: Service Oriented Architecture strategy from an existing investment in proprietary software companies: IBM, Microsoft, or Oracle.


Separation of Presentation and Content

The separation of presentation and content has become increasingly important as web pages are being rendered on more devices: 3270 workstations, personal computers, laptops, smartphones, and tablet PCs. The client/server model is the foundation for the interaction between web browsers and web servers. HTML is a fault tolerant language in which errors are ignored; it is the predominant markup language for the creation of web pages. HTTP is a protocol for getting a page request from a client to a web server and getting the requested page in a reply back to the browser. An HTML document is allowed to have scripted code embedded. HTML increasingly is generated programmatically by applications. An online database will rely on the assumption that no layout information needs to be stored for its content; this information will be added as its content is being accessed for display.

In HTML, presentation can be specified within a document or separately within CSS: Cascading Style Sheet files. There also is XML, a W3C recommendation for a general-purpose markup language, which supports a wide variety of applications and has no predefined tags. Client-side scripting typically is performed with JavaScript and makes use of the fact that a web browser can both render HTML pages and execute programs. This allows for some tasks in a website to be offloaded onto the client. With server-side scripting, such as PHP, user requests are fulfilled by running a script directly on the web server to generate dynamic HTML pages. It provides the capability to develop interactive web sites that interface databases or other data stores as well as local or external sources. A significant advantage associated with server-side scripting is the ability to customize the response and presentation based on a user's requirements, access rights, or query results returned by a database.

Both client-server and server-side scripting is based on the client/server paradigm with synchronous interaction and processing of data, the sending of data directly to the server for processing, and responses being received from the server without the need to reload an entire page. In order to enhance web programming, the HTML creation and its dynamic modification has been extended to provide the HTML generation on the client. This further separation of the user interface logic from business logic is known as AJAX: Asynchronous JavaScript and XML. AJAX is a web development technique that allows developers to build rich applications that are similar in functionality to desktop applications, the difference being that they execute in a web browser. Its main functionality stems from an exploitation of XMLHttpRequest, a JavaScript class with specific properties and methods supported by the web browser which allows HTTP requests to be send from inside JavaScript code.


HTML5 and Mobile Devices

HTML5 represents the next significant phase in the progress of the world wide web. HTML5 provides the capability to develop web applications which are visually rich and comparable to the native applications that are that are designed to run on a specific device such as an iPad or an Android-based tablet. Prior to HTML5, it would not be not reasonable to assume that the HTML will work the same way as the HTML in a desktop operating system web browser. However this is changing.  HTML5 will provide the capability to browse multimedia content without downloading extra software to check e-mail offline, access web search, and perform transactions on a smartphone. APIs: Application Programming Interfaces are used in native HTML5 by application developers to develop web apps for execution in a web browser. With HTML5 it will not be necessary to write new code to reach multiple platforms.

There are several new facilities in HTML5.  Most videos have been implemented through a plugin and not all browsers have the same plugins. HTML5 specifies a standard way to include video, with the video element.  The audio element specifies a standard way to include and audio stream and play sound files.stream. A canvas is a rectangular area which is controlled at the pixel level. The canvas element has several methods for drawing paths, boxes, circles, characters, and adding images. JavaScript is used to draw graphics on a web page. There are now two methods for storing data on the client:localStorage - stores data with no time limit and sessionStorage - stores data for one session.  Online privacy is controlled by adjusting settings on the web browser. Each browser has different privacy settings, but not all of them have obvious settings for removing data created by the new web language. With HTML5 there are multiple locations for data storage, which makes it very difficult for browser manufacturers to handle deletion of data with a single control. The tradeoff will be to balance speed with an expanded featureset and controlling privacy. Native HTML5 makes extensive utilization of APIs: client-side messaging, communication, EventSource, extended web forms, PostMessage, storage, and Web Sockets.


API Management Technology and Developer Tools

Organizational enterprise is increasingly dependent on real-time flow of information across systems to improve the way they operate. Accordingly, the rapid growth of the application- and mobile-driven Internet has made the APIs: Application Programming Interfaces increasingly important. Well designed APIs make it easier to create apps and language-specific API frameworks provide the foundation for creating usable APIs such as Grape for Ruby and FRAPI for PHP. The API is an abstraction provided to the developer to interact with the platform; it is the platform that translates the high-level API calls to the low-level system calls.

Cloud computing and new device platforms are being driven by specialized APIs and protocols in order to communicate and access data and events:

Organization Source Functionality
YouTube PubSubHubBub Protocol Allows services to push notifications rather than forcing clients to poll for events.
Twitter Streaming API Allows real-time access to data.
Cloud Files API A standards-based service for pushing notifications from many services to phones.


JSON and XML JSON and XML are the primary ways APIs exchange data. Historically, APIs have supported both JSON and XML. However, this appears to be changing. JSON is a valid subset of JavaScript, Python, and YAML and works well with JavaScript, Python, and PHP. JSON is easier to use in JavaScript, requires less processing, and is more self-documenting than XML. JSON specifies how to represent complex datatypes, there is no single best way to represent a data structure in XML. Developers often find it easier to use JSON than XML.

XML is an extendable language; tags can be reused or created. XML can have schema which is very useful in specifying its structure of the XML. For a simple data structure, JSON and some descriptive text will be satisfactory. When working with more complex data structures, schemas can be used to validate data and debug errors. There are some languages that do not support JSON and XML would have to be used. In 2010, Twitter's streaming API and Foursquare API ended XML support.


Representational State Transfer and Horizontally-scaled Architecture

The REST architectural style was developed in parallel with HTTP/1.1. REST is the framework which defines and constrains the macro-interactions of the four components of the web: origin servers, gateways, proxies and clients. REST governs the proper behavior of participants without imposing limitations on individual participants. The byproduct of widespread utilization of open source technologies in Web 2.0 deployments has resulted in the standardization of a horizontally-scaled architecture. Typical Web 2.0 and Enterprise 2.0 sites support clients that make requests over the Internet. These requests are initially processed by a set of load balancers or reverse proxy servers that handle static requests and forward requests to back-end web and application servers. The web tier accesses structured data from back-end database servers and unstructured data from object stores as required. The web application also accesses external resources - web services which are external to the site. APIs which conform with REST are easier to code and exhibit superior performance - minimize overhead and latency during the processing of data.

Restful API: Application Programming Interfaces have been designed for conformance with the architectural standards of the Representational State Transfer. Scale ability. APIs provide the specialization and flexibility to code applications which utilize the open source standards of HTML5. There has been an enormous increase in the number and variety of APIs. To a significant degree the development of web apps for mobile devices is being driven by Restful APIs.

Organizational enterprise with a substantial information technology infrastructure in place: mainframe system software and applications, web servers, and enterprise database will be evaluating whether their inventory of code can be accessed or repurposed utilizing a SOA: Service Oriented Architecture framework.

 

Middleware Services and RIA Mobile Applications

Mobile middleware development services minimize the need for organizations to rewrite back ends for communicating with each different mobile device. The objective is to provide a flexible layer for managing differences between devices and providing flexible standardized development of mobile applications across platforms. For application architects and developers, there are new design skills required in order to have applications communicate and work with each other. The leading platforms are: Apple iOS, Android Operating System, Windows Phone, and Blackberry.

In order to switch from desktops and laptops to mobile devices, SOA services need to be resized by modularizing the user interface into chunks of relevant data that are presented to the user in a logical sequence. Small screen size, limited mobile bandwidth and database synchronization on mobile devices present challenges in running applications originally designed for full screen devices. Mobile application development is a balancing act among the issues of cost, agility, performance, and user experience. The fact that these devices are brought into the organization by end users acting as consumers also is a factor. The user experience and expectations are changing. Software and development testing is increasingly about not whether the software works; it is how the customer interacts with the software and the quality of the quality of the service: user interface, fast page load, and reliability.


Web Services

Web services extend the client/server paradigm through the use of an explicit registry; thereby solving the problem of locating a service in a way that is appropriate for the web. A service requester, the client, looks for a service to send a corresponding query to a service registry. If the requested service is found, the client can contact the service provider and use the service. The provider has previously published its services in the registry. The web services hide all details concerning their implementation and the platforms they are based on; they essentially come with a unique URI that point to the provider. Since web services are generally assumed to be interoperable, they can be combined with other services to build new applications with more comprehensive functionality than any single service involved. To achieve these goals, web services are commonly based on standard, in particular on the XML-based specifications - SOAP: Simple Object Access Protocol, UDDI: Universal Description, Discovery, and Integration, and WSDL: Web Services Description Language.

In order to communicate with a web service, an application adds a web service consumer code. This code uses UDDI to locate the code in the web service in the directory or registry and then send a SOAP/REST communication to invoke the web service. The web service receives the invocation from the web service provider interface and returns the results of the calling application to the provider interface and SOAP/REST. An environment in which call applications are web services providers and consumers is the SOA: Service Oriented Architecture.


SOA: Service Oriented Architecture

SOA: Service Oriented Architecture functions both as a software development environment and a delivery framework. It provides a mechanism for defining business services and operating models as a information technology infrastructure that can be used to meet enterprise business requirements and to modernize their legacy environments. In a SOA environment, network nodes makes resources available to other network participants as independent services, which participants can access in a standardized way through well-defined service interfaces. SOA is constructed as a shared network of web services linked by distributed intermediaries. Incremental SOA for a mainframe environment needs to be a services network. This means that a software infrastructure must be in place to enable reliable, manageable, secure, and high performance communication between consumers and providers of services. Successful execution of an SOA strategy, combined with the release of the business value contained in legacy systems, can bring significant value and return on investment by 1- Leveraging existing software assets to create new applications. 2- Enabling business processes to be modified without rewriting code. 3- Providing interoperability with modern web-based systems, extends the practical life of legacy routines and processes. 4- Lowering the overall informational technology cost structure by sharing business services across multiple applications. 5- Decreasing complexity through a reduction in redundancy across the enterprises. When SOA is done correctly, it supports many-to-one standardization with a loosely coupled interface to many types of user interfaces. An efficient implementation will be built upon an information technology infrastructure and middleware software which has been web-servicized.


WebSphere MQ and Alternative SOA Web Service Support

IBM WebSphere MQ is the industry leading message queuing middleware platform. It is used in a SOA environment to route and transport messages among nodes and manage services in the enterprise. A message queuing infrastructure built upon and extended with WebSphere MQ is scalable and secure. Web servicization is utilized by IBM mainframe systems to integrate with other platforms and applications.

In addition to IBM WebSphere MQ middleware and Rational Development platform there are commercial and open source Service Oriented Architectures that support web services and message-based technologies. The shaded grey cell indicates open source software.


Message-based Technologies Explanation
MSMQ Microsoft Message Queuing Deployed in Microsoft Windows Server operating systems and MS Windows 7. MSMQ ensures reliable delivery by placing messages that fail to reach their intended destination in a queue and then resending them once the destination is reachable. It also supports security and priority based messaging and transactions.
TIBCO Enterprise Message Service Standards-based enterprise messaging platform on a common enterprise backbone for managing real-time flow of information. It is the foundation of TIBCO's event-driven SOA for enabling synchronous and asynchronous system-to-system communications in Java EE, .NET, C, C++, TIBCO Rendezvous, TIBCO SmartSockets, and COBOL and Assembler on the mainframe.
Open Message Queue OpenMQ is an open source message-oriented middleware project that implements the Java Message Service 1.1 API. In addition to supporting the JMS API, OpenMQ provides clustering, a C API, and a full JMX administration API. The JCA Java EE Connector Architecture allows OpenMQ to be used by a Java EE compliant application server. It is the default JMS provider integrated into GlassFish.
Apache ActiveMQ Open source message broker which implements JMS: Java Message Service 1.1. It also can be used from .NET, C/C++ or Delphi or from scripting languages like Perl, Python, PHP and Ruby in conjunction with cross language clients.
JBoss Messaging The JBoss enterprise asynchronous messaging system is the default JMS: Java Message Service provider in the JBoss SOA Platform and JBoss Application Server.


SYS-ED Training Service

SYS-ED staff and CETi technology partners have been benchmarking Web 2.0 to RIA based upon REST principles and industry-specific SOA-based middleware frameworks. SYS-ED software specific websites have been organized to demonstrate how an informational website can be changed into an e-commerce website utilizing hybrid combinations of commercial and FOSS: free open source software. The web app and mobile device curriculum teaches and provides guidelines on design techniques, coding methodologies and testing. As part of qualifying a prospective web apps and mobile device programming training assignment, we will review client project specifications and incorporate that information into code snippets, sample programs, and hands-on exercise portion of the a class or training program.

  • Analyzing the underlying integrity of existing applications.
  • Examining the application architecture and code and mapping it to the business and information technology functions.
  • How the assets of applications can be modernized.
  • Testing the integrity of the applications as part of preparing for modernization.
  • Simplify data sharing and information access.
  • Reducing the duplication of information across an enterprise.
  • How information can be made accessible in order to offer new and enhanced customer services.
  • Streamline and modernize internal operations.
  • Improved data security.
  • Web-enabled interface for end users.

SYS-ED clients are invited to submit web apps and mobile device programming questions. Our staff and CETi technology partners answer, explain, and where applicable reference source documentation. Questions are reviewed and answered on a first-come/first serve-basis. This service is available through our software specific websites. The courseware and training aids used in SYS-ED instructor-led and distance-learning courses is highly respected. The content incorporates an analysis of the program logic and sample programs which have been validated on consultancy projects. We review information in the public domain distributed by software companies, international standards committees, and purveyors of open source software. We perform our own independent analysis of white papers and benchmarks for software updates and new products. Content is interpreted and selectively incorporated into our student handouts. Given the intermixing and hybrid implementation of commercial and open source software, reference material which demonstrates and explains will be fundamental to an effective training experience. As part of presenting an instructor-led course at the client location, courseware is organized for subsequent use in a web-based infrastructure and delivery medium.


Professional Distance-learning Service

A distance-learning course is 65% lecture with the remaining 35% exercises, and submission of questions through our categorized and software specific websites. Not all courses are suitable for presentation in a web-based format.

Industry_Standard_Training_Service_Web_Server

Enrollment is contingent upon the prospective trainee's having been qualified by our Director of Education to have the appropriate background for the training and review of a checklist of items required for transmission of the service to the client location: bandwidth, firewall, base operating system, software requirements, web browser, and set-up of hands-on machine exercises.


 
Open Source Software Commercial Development Platforms
 
Mobile Device and Web App Programming Courses
HTML5 JavaScript AJAX
XML Platform jQuery Perl
MySQL Ruby on Rails PHP
C and C++ Languages Java Language Java Utilities and Frameworks
 
 
Industry Standard Courses
Android Application Development GWT: Google Web ToolKit iPhone Application Development
Mobile Applications - J2ME Programming MS Windows Mobile - Managed Application Development Symbian Programming and Development
 
 
Specialized Courses
Apache Web Server Google AppInventor   Google Android Mobile Devices
Java Lightweight Frameworks JEE and Web Services Standards JEE Connector Architecture

Technology Driven Training

Technology Driven IT Training

SYS-ED/New York Schedule and Content Delivery Selection

Selection of Delivery Medium
 
Service Oriented Architecture Courses
SOA in the Mainframe Environment CICS Transaction Server: Web Services Rational Application Developer: Web Services Development
MS ASP.NET: Web Services and Database MS C#.NET: XML Web Services MS .NET: Building XML Web Services
Java: XML Web Services Oracle SOA Suite 11g WebLogic Enterprise Web Services Development
 
 
IBM Development Platform Courses
WebSphere Application Server WebSphere MQ Rational Development Platform
 
 
Microsoft .NET Courses
MS ASP.NET MS VB.NET MS C#
 
 
Oracle Development Platform Courses
Oracle Application Server Oracle and Java Oracle WebLogic Platform
   

Technology Exchange Websites

SYS-ED's websites compile, organize, and present software specific and established operational categorizations of information technology. They provide a framework for assessing knowledge transfer in a variety of delivery formats: web-based training, classroom instruction, courseware, training aids, learning paths, and validation assessment.
www.programmingbysysed.us
www.databasetrainingbysysed.us www.dotnettrainingbysysed.us www.javatrainingbysysed.us
www.mainframetrainingbysysed.us www.msnetworkstrainingbysysed.us www.mqseriestrainingbysysed.us
www.oracletrainingbysysed.us www.unixtrainingbysysed.us www.xmltrainingbysysed.us
 
Copyright Acknowledgement
Apache ActiveMQ is the intellectual property and managed by the Apache Software Foundation. Facebook Graph API is a registered trademark and the intellectual property of Facebook, Inc. JBoss Messaging is open source software managed by Red Hat Software.
MSMQ Microsoft Message Queuing is the intellectual property of Microsoft Corporation. Open Message Queue is the open source software managed by Oracle Corporation. TIBCO Enterprise Message Service is the intellectual property of TIBCO Software.
WebSphere MQ is a registered trademark of IBM Corporation. Twitter Streaming API is the intellectual property of Twitter, Inc. YouTube PubSubHubBub Protocol is the intellectual property of YouTube, LLC and Google / Alphabet, Inc.
 

Sources:

Online New York Times, 5 Predictions for APIs in 2011, Shanley Kane Apigee Product Team and GigaOm.

UnLocking the Mainframe: Modernizing Legacy Systems in a Service-Oriented Architecture, June 2008.

A Guide to Deploying Application-enabled Phones in the Enterprise, A.J. Gold Associates White Paper, 2010.

The Importance of an Information Strategy, Philip Howard, A White Paper by Bloor Research, December 2008.