Understanding Evolution's Architecture A Technical Overview

Similar documents
ISAM TO SQL MIGRATION

Supporting MS SQL Server Failover Using Database Mirroring

Migrating from DAW s CK for MS SQL to Mertech s MS SQL Driver

Monitoring Nginx Server

Introduction to Mobile Access Gateway Installation

Load Balancing using Pramati Web Load Balancer

This presentation covers virtual application shared services supplied with IBM Workload Deployer version 3.1.

Landscape Design and Integration. SAP Mobile Platform 3.0 SP02

BlackBerry Enterprise Service 10. Version: Configuration Guide

Introduction to the EIS Guide

Brocade Virtual Traffic Manager and Magento Deployment Guide

Load Balancing for Microsoft Office Communication Server 2007 Release 2

Thales ncipher modules. Version: 1.2. Date: 22 December Copyright 2009 ncipher Corporation Ltd. All rights reserved.

Setup Guide: Server-side synchronization for CRM Online and Exchange Server

Building native mobile apps for Digital Factory


Sharp Remote Device Manager (SRDM) Server Software Setup Guide

Oracle9i Application Server: Options for Running Active Server Pages. An Oracle White Paper July 2001

KEMP LoadMaster. Enabling Hybrid Cloud Solutions in Microsoft Azure

Jitterbit Technical Overview : Microsoft Dynamics CRM

2X SecureRemoteDesktop. Version 1.1

Application Notes for Microsoft Office Communicator Clients with Avaya Communication Manager Phones - Issue 1.1

See What's Coming in Oracle Service Cloud

Introduction to IBM Worklight Mobile Platform

EAsE and Integrated Archive Platform (IAP)

Deploying EMC Documentum WDK Applications with IBM WebSEAL as a Reverse Proxy

Deployment Guide Oracle Siebel CRM

Configuring Nex-Gen Web Load Balancer

Configuring Security Features of Session Recording

Adobe ColdFusion 11 Enterprise Edition

Take Your Rocket U2 Apps Mobile with Rocket LegaSuite. Greg Mummah, Product Manager Rocket Software

MEGA Web Application Architecture Overview MEGA 2009 SP4

DEPLOYMENT GUIDE Version 1.1. Deploying F5 with Oracle Application Server 10g


Brocade Virtual Traffic Manager and Oracle EBS 12.1 Deployment Guide

HOW TO CONFIGURE PASS-THRU PROXY FOR ORACLE APPLICATIONS

PAINLESS MULTI-DBMS STRATEGY For Magic Developers

Deployment Guide. AX Series with Microsoft Exchange Server

Setting Up SSL on IIS6 for MEGA Advisor

Application Notes for Configuring Microsoft Office Communications Server 2007 R2 and Avaya IP Office PSTN Call Routing - Issue 1.0

Middleware- Driven Mobile Applications

Integrating Web Messaging into the Enterprise Middleware Layer

A Web Server for Reliable Web System Development

Single Sign On for ShareFile with NetScaler. Deployment Guide

Using SAP Logon Tickets for Single Sign on to Microsoft based web applications

An Oracle White Paper May Oracle Tuxedo: An Enterprise Platform for Dynamic Languages

Windows Azure Pack Installation and Initial Configuration

BASICS OF SCALING: LOAD BALANCERS

icrosoft TMG Replacement with NetScaler

Architectural Overview

DEPLOYMENT GUIDE Version 1.2. Deploying F5 with Oracle E-Business Suite 12

Enterprise Deployment of the EMC Documentum WDK Application

An Overview of Samsung KNOX Active Directory and Group Policy Features

IBM Rational Web Developer for WebSphere Software Version 6.0

Version 1.0 January Xerox Phaser 3635MFP Extensible Interface Platform

Using DeployR to Solve the R Integration Problem

A Monitored Student Testing Application Using Cloud Computing

Deployment Guide. AX Series with Microsoft Office SharePoint Server

Microsoft SharePoint 2010 Deployment with Coyote Point Equalizer

Brocade Virtual Traffic Manager and Microsoft Skype for Business 2015 Deployment Guide

Deployment Guide. Deploying F5 BIG-IP Global Traffic Manager on VMware vcloud Hybrid Service

SAML 2.0 SSO Deployment with Okta

Microsoft SQL Server Installation Guide

Last Updated: July STATISTICA Enterprise Server Security

RSA envision Windows Eventing Collector Service Deployment Overview Guide

Cloud Portal for imagerunner ADVANCE

PingFederate. Windows Live Cloud Identity Connector. User Guide. Version 1.0

Dell One Identity Cloud Access Manager How to Configure for High Availability

CA Technologies SiteMinder

Configuring Microsoft IIS 5.0 With Pramati Server

What s New in VMware vsphere 5.1 VMware vcenter Server

Wavecrest Certificate

An Overview of Samsung KNOX Active Directory-based Single Sign-On

Load Balancing Microsoft Sharepoint 2010 Load Balancing Microsoft Sharepoint Deployment Guide

Apigee Edge API Services Manage, scale, secure, and build APIs and apps

Brocade Virtual Traffic Manager and Oracle Enterprise Manager 12c Release 2 Deployment Guide

Deployment Guide Microsoft IIS 7.0

How to Create a Simple Content Management Solution with Joomla! in a vcloud Environment. A VMware Cloud Evaluation Reference Document

Sentinel Cloud V.3.6 Quick Start Guide

Configuration Guide. BES12 Cloud

Installation and Administration Guide

Application Template Deployment Guide

Oracle Communications WebRTC Session Controller: Basic Admin. Student Guide

Microsoft Office Communications Server 2007 & Coyote Point Equalizer Deployment Guide DEPLOYMENT GUIDE

Apache Server Implementation Guide

Technical Brief for Windows Home Server Remote Access

DEPLOYMENT GUIDE Version 1.2. Deploying the BIG-IP System v9.x with Microsoft IIS 7.0 and 7.5

bbc Adobe LiveCycle Data Services Using the F5 BIG-IP LTM Introduction APPLIES TO CONTENTS

Deployment Guide for Microsoft SharePoint 2010

Seamless Web Data Entry for SAS Applications D.J. Penix, Pinnacle Solutions, Indianapolis, IN

Microsoft Exchange Server 2010: Highly Available, High Performing And Scalable Deployment With Coyote Point Equalizer

Internet Engineering: Web Application Architecture. Ali Kamandi Sharif University of Technology Fall 2007

Step-By-Step Guide to Deploying Lync Server 2010 Enterprise Edition

How To Install Powerpoint 6 On A Windows Server With A Powerpoint 2.5 (Powerpoint) And Powerpoint On A Microsoft Powerpoint 4.5 Powerpoint (Powerpoints) And A Powerpoints 2

Jaspersoft APIs. Integrating BI with your Applications. Community and Professional Editions

Microsoft SharePoint 2013 with Citrix NetScaler

Load Balancing. Outlook Web Access. Web Mail Using Equalizer

Installing Management Applications on VNX for File

Transcription:

Understanding Evolution's Architecture A Technical Overview Contents Introduction Understanding Evolution's Design Evolution Architecture Evolution Server Transports Evolution Benefits How Does Evolution Work Evolution Testing Interface Evolution Features Conclusion Contact Information 2015 Mertech Data Systems, Inc. All Rights Reserved. This document is for informational purposes only. Mertech makes no warranties, expressed or implied, in this document. Apache is a trademark of Apache Software Foundation. Appcelerator and Titanium are trademarks of Appcelerator Inc. DataFlex is a trademark of Data Access Worldwide, Inc. PhoneGap is a trademark of Adobe Systems Inc. Windows is a trademarks of Microsoft Corporation. Other trademarks and trade names mentioned herein are the property of their respective owners.

Introduction Mertech's Evolution Server is an API development tool that integrates applications on a global scale without complex infrastructure or software. It enables developers to rapidly and costeffectively transition existing Windows desktop applications to a service or API-based model. Whether companies are transitioning to SaaS or simply unifying development efforts, implementing with an API-based model gives existing applications the ability to seamlessly integrate even if built with different programming languages. The Challenges There are two major challenges facing Windows developers who are transitioning applications to a service or API-based model: 1. How to integrate Windows applications with applications developed in other languages 2. How to integrate Windows applications with other Internet-based applications First, cross-language development is a big problem and existing industry players have only begun to scratch the surface of this problem. Even for mobile development, the closest we get to multiplatform development tools are PhoneGap and Titanium. Although useful, these tools do not fully capitalize on the advantages of native platform features and target the user interface to the lowest common denominator on all platforms, often resulting in an unattractive design. Beyond the user interface, a tool that enables a Windows application developed in one language to interact easily with an application developed in another language simply does not exist. Second, in order for Windows applications to integrate with other Internet-based applications, they need to utilize a web server such as Windows Internet Information Services (IIS) or Apache, and, if the application is available for multiple platforms, developers need to be able to deliver the application using different protocols, such as binary for a C# or Java application, or JSON in the case of a web application. As a result, there are many combinations of development language, web servers and protocols that must be considered. With the absence of a robust tool to navigate these many options, developers are left with lots of headaches. - 1 -

Understanding Evolution's Design What is Evolution? Evolution is Mertech s answer to How can I evolve my application to work in today s user-centric, cloud computing environment? Evolution allows modernization of existing legacy business logic. With it, developers can create an API to expose the business rules developed in one language, such as Java, DataFlex or C#, and have it available to be consumed by other languages via multiple protocols. Evolution enables developers to build business applications for Windows using any language, and deliver them with or without a web server on any front-end. Evolution solves the challenges of integration between different programming languages and protocol mismatches with zero investment in a new architecture. All that is needed is an existing proxy server no complex enterprise buses or costly middleware required. So whether your services are running on-premise or over the cloud, Evolution Server provides the speed and simplicity to operate an agile and efficient business. Evolution Architecture Evolution combines a protocol layer on top of a dispatcher. It uses the software stack, which was originally developed by Facebook. Evolution allows you to create an Object Relational Model (ORM) of your existing business logic and data model. This ORM architecture opens up your application for integration with web applications from other vendors and enables easier integration with other web development tools. The developer publishes an API that contains the operations provided by his application. Then, within Evolution, other developers can call that API from any supported language and serve it to any other supported language. C# PHP Python Java Other Apps THRIFT HTTP SOCKET JSON-RPC SOAP BINARY PACT EVOLUTION DISPATCHER EVOLUTION EVOLUTION INTERFACE DataFlex Apps C# Apps VB Apps Other Apps - 2 -

Evolution Interface: Evolution uses the Component Object Mode () interface, an essential building block for most Windows developers, to communicate in and out of the application. This is supported in all languages compatible with a interface including DataFlex, C#, and Visual Basic. Mertech s proprietary Evolution Dispatcher technology decides how to route your call (where and using which protocol) and uses HTTP or socket transport to communicate to the desired end language or application. Evolution utilizes, an interface definition language (IDL) and binary communication protocol initially developed by Facebook and now associated with Apache, to power the Dispatcher s communication. Protocol Layers: Evolution can work with any protocol that is needed for your application, including JSON, Binary, SOAP, XML and many more. Evolution Server Transports Evolution Server is comprised of two different server transports. First is the Web API server. This serves APIs over HTTP using Apache or IIS. It supports JSON-RPC and SOAP. C L I E N T 1. Web page request Browser 8. Web page reply Apache or IIS 3. JSON/RPC request 7. JSON/RPC reply S E R V E R 4. JSON Evolution Dispatcher 6. 2. Requested page Web page 5. DB - 3 -

Second is the server, which uses a framed transport mechanism that moves the data over a TCP socket. written in C#, C++, ObjC, Python, Ruby, PHP 1. TCP/IP socket request 5. TCP/IP socket reply S E R V E R 2. Evolution Dispatcher 4. 3. DB Evolution Benefits Take advantage of cross-language development. You can now deploy your application on any type of front-end without spending a lot of money and time developing for each platform. DataFlex developers can now use DataFlex as more than a rapid development tool. DataFlex can be used as a business rules server, which can be enhanced using other languages. Move your application to the cloud. With the flexibility enabled by Evolution, Windows developers can build robust SaaS applications using best-of-breed technologies and can expand their ecosystem with integration of third party applications to their platform. Use your existing architecture. Zero investment is required in new architecture since no complex/costly enterprise buses or middleware is needed. Save significant time. Your API can target multiple protocols. You can serve different protocols from one codebase rather than developing multiple codebases. A built-in API testing tool allows for agile development and rapid testing. Leverage open source. With Evolution, if you have a C# or any other Windows development tool that supports the interface, you will now be able to use your Windows applications with the LAMP stack (Linux/Apache/MySQL/PHP) and its variants. This opens up options for incorporating open-source code into your applications and for implementing more budgetfriendly and cloud-based computing environments. Expand your options. Add new features and functionality to your product in an efficient manner. You can easily create a modern, web-based UI design. With Evolution, any combination is achievable, opening up a world of possibilities for what your Windows applications can do. - 4 -

Separate duties. The Evolution multi-tier development model allows a logical separation of the different operational layers, so components can be separately developed, tested, executed and reused. The UI designer, front-end developer and back-end developer do not need to learn languages required of other roles. An API can be developed without even knowing what the front-end language will be. How Does Evolution Work The runtime version of Evolution includes: Evolution Administrator: a GUI tool to configure Evolution Server and application pools Evolution Dispatcher: a round-robin dispatcher to route client requests to the required application pool Apache 2.4 (optional): a powerful, flexible, HTTP/1.1 compliant web server The Evolution Administrator is used to start and stop the service, create the application pools, and configure the ports the applications are listening on. Evolution can operate in either service mode or application mode. In service mode the Evolution Dispatcher is installed as a Windows service and is started and stopped through the Windows services interface. Adding and configuring application pools is easily handled through two tabs in the Administrator GUI. Settings in the tab (see below) define the application path, the client / server communication protocol, the number of pools to start and how the server handles concurrent requests. Settings in the Process tab define application recovery options, the number of nonblocking server threads, and packet request size. Three applications are configured in the example above. All three are running the same executable but were assigned different transport/protocol methods to allow for different client access. - 5 -

Clients connect to the Evolution Dispatcher, which can handle multiple concurrent client connections. The Dispatcher uses a round robin load balancing method, sending each incoming request to the next available member of the requested application pool. 8081 Administrator 8081 Clients 8082 8083 Round Robin Dispatcher 8082 Pool Controller 8083 You can also choose to install a customized version of Apache, a freely available Web server, along with the Evolution deployment modules. You can use Apache as a reverse proxy server for your. A reverse proxy server typically sits behind a firewall in a private network and forwards requests for web content to different servers. As long as your firewall and reverse proxy are correctly configured, no one should be able to gain direct access to your private network. Apache can also be used for caching, security, SSL acceleration, failover, and more. Private Network Clients 8080 Apache Reserve Proxy Server 8081 8082 Evolution Dispatcher 8081 8082 8083 8083-6 -

Evolution Testing Interface Evolution includes a built-in API testing interface for your application. 1 2 3 4 5 To use the testing interface: 1. Open a browser window and enter the port your application is listening on. The Request pane is automatically populated with the URL and a unique Id. You can use this Id in a multithreaded application to match a request to a response since messages may arrive asynchronously. 2. Choose the protocol option, JSON-RPC, SOAP, THRIFT PACT, or THRIFT BINARY. 3. Use the drop-down arrow to view the methods published by your application. Then, choose the one you wish to test. Parameters for the selected method are displayed in the Request pane. 4. Enter your test values (101, 1 in the example) to overwrite the parameter defaults. 5. Select Send. The selected method runs and the result displays in the Response pane. To view additional details, click Raw in the upper right corner of the Response pane. To retrieve an IDL from the server, simply add "?idl" to the end of the URL (for example, http://127.0.0.1:8081/?idl). To retrieve a WSDL, append "?wsdl" instead (for example, http://127.0.0.1:8081/?wsdl). - 7 -

Evolution Features Multi-Language Support. With the Apache cross-language development framework, Evolution enables developers to communicate in any Windows development language, with or without a web server, via any supported protocol, to any front-end. Once an API is created, any developer can maneuver between languages and front-ends with the flip of a switch. The table below lists the many options that are available within the Evolution platform. Windows Language Communication Protocol Front-end DataFlex IIS JSON Mobile, any platform C# or Java Apache Binary Desktop Visual Basic Native protocol (no web server) SOAP Browser Other -compatible Windows languages Compact XML Multi-Protocol Support. Evolution can work with the many protocols needed by your application without changing the underlying codebase, including SOAP, JSON-RPC, binary, and compact (users of currently do not have SOAP or JSON-RPC capability). Multiple Web Server Support. The Evolution Server supports Apache, Microsoft IIS, NGINX, and more. DataFlex developers are now able to use their Windows applications with the LAMP stack and its variants. API Testing Framework. Evolution's built-in API testing framework allows agile development and testing. Back-end developers can test and refine API calls as they develop them, while front-end developers can immediately see the required input and output without writing a line of code. Front-end developers find this testing framework more beneficial than documentation because they can view the published operations, parameters and formatting of the request data in a simple web-based GUI. Built-in CORS. Cross-origin resource sharing (CORS) is a mechanism that restricts resources (for example, fonts, JavaScript, etc.) on a web page from being requested from a domain outside the domain from which the resource originated. CORS support is built into Evolution and allows seamless cross origin calls, making development easier. Auto Port Detection. Port set-up is configured through the administration interface. If a selected port is in use, Evolution detects the conflict and provides an error message. Simple Management. The Evolution Administrator is used for creating the application pools, configuring the ports the applications are listening on, and controlling the service. The Evolution Administrator can be run as a Microsoft Management Console (MMC) snap-in or it can be run as a standalone application. - 8 -

Simple Deployment. The development installer sets up everything you need for Evolution, and the installed product has a very small footprint. Evolution packs all of its capabilities into just 5 MB, which has minimal impact on overhead. Apache Installation. Evolution offers the option to install Apache. Apache can be configured to act as a reverse proxy for your Evolution Server. Additionally, Apache can be used for caching, security, SSL acceleration, failover, and more. Conclusion Independent software vendors (ISVs), corporate IT, and software consultants now have the right tool necessary to increase productivity, efficiency and flexibility in delivering a robust service or API-based solution. Through Evolution s proprietary platform, Windows application developers are now able to do what was not previously possible with existing market tools: support multiple protocols and work with multiple languages seamlessly. No matter what language you use for your base Windows application, Evolution enables you to extend, enhance, and deliver this application in any language, to any front-end. Download a free development license of Evolution today and start Evolving your enterprise applications. To see Evolution in action, visit the WorkShop Software website. The Mertech development team built an exciting SaaS platform for Workshop which resulted in a huge increase in new subscribers and revenue within a short period of time. - 9 -

Contact Information If you would like to know more about Mertech s products, please visit our web site at www.mertechdata.com or contact us at the addresses below. Corporate Head Office California Office Mertech Data Systems, Inc. 18503 Pines Boulevard, Suite 312 Pembroke Pines, FL 33029 USA Tel: +1 (954) 585 9016 Fax: +1 (866) 228 1213 Brazilian Office Mertech Data Systems Brasil Ltda. Av. Yojiro Takaoka, 4.384 Cj. 2227, Alphaville Santana de Parnaiba SP 06541-038 Brazil Tel: +55 (11) 4152 8433 Fax: +55 (11) 4152 8433 Mertech Data Systems, Inc. 114 East Shaw Avenue, Suite 100 Fresno, CA 93710 USA Tel: +1 (954) 585 9016 Information, Tech Support and Sales e-mail: info@mertechdata.com e-mail: support@mertechdata.com e-mail: sales@mertechdata.com - 10 -