Quotes

Wednesday, June 27, 2018

Statefull vs stateless


Monolithic vs Microservices


SOAP vs REST

REST vs. SOAP

The two competing styles for implementing web services are REST and SOAP. The fundamental difference between the two is the philosophical approach the two have to remotely invocations.
REST takes a resource-based approach to web-based interactions. With REST, you locate a resource on the server, and you choose to either update that resource, delete it or get some information about it.
With SOAP, the client doesn't choose to interact directly with a resource, but instead calls a service, and that service mitigates access to the various objects and resources behind the scenes.
SOAP has also built a large number of frameworks and APIs on top of HTTP, including the Web Services Description Language (WSDL), which defines the structure of data that gets passed back and forth between the client and the server.
Some problem domains are served well by the ability to stringently define the message format, or can benefit from using various SOAP-related APIs, such as WS-Eventing, WS-Notification and WS-Security. There are times when HTTP cannot provide the level of functionality an application might require, and in these cases, using SOAP is preferable. 


Friday, June 22, 2018

Installing R

Installing R on a Windows PC

To install R on your Windows computer, follow these steps:
  1. Go to http://ftp.heanet.ie/mirrors/cran.r-project.org.
  2. Under “Download and Install R”, click on the “Windows” link.
  3. Under “Subdirectories”, click on the “base” link.
  4. On the next page, you should see a link saying something like “Download R 2.10.1 for Windows” (or R X.X.X, where X.X.X gives the version of R, eg. R 2.11.1). Click on this link.
  5. You may be asked if you want to save or run a file “R-2.10.1-win32.exe”. Choose “Save” and save the file on the Desktop. Then double-click on the icon for the file to run it.
  6. You will be asked what language to install it in - choose English.
  7. The R Setup Wizard will appear in a window. Click “Next” at the bottom of the R Setup wizard window.
  8. The next page says “Information” at the top. Click “Next” again.
  9. The next page says “Information” at the top. Click “Next” again.
  10. The next page says “Select Destination Location” at the top. By default, it will suggest to install R in “C:\Program Files” on your computer.
  11. Click “Next” at the bottom of the R Setup wizard window.
  12. The next page says “Select components” at the top. Click “Next” again.
  13. The next page says “Startup options” at the top. Click “Next” again.
  14. The next page says “Select start menu folder” at the top. Click “Next” again.
  15. The next page says “Select additional tasks” at the top. Click “Next” again.
  16. R should now be installed. This will take about a minute. When R has finished, you will see “Completing the R for Windows Setup Wizard” appear. Click “Finish”.
  17. To start R, you can either follow step 18, or 19:
  18. Check if there is an “R” icon on the desktop of the computer that you are using. If so, double-click on the “R” icon to start R. If you cannot find an “R” icon, try step 19 instead.
  19. Click on the “Start” button at the bottom left of your computer screen, and then choose “All programs”, and start R by selecting “R” (or R X.X.X, where X.X.X gives the version of R, eg. R 2.10.0) from the menu of programs.
  20. The R console (a rectangle) should pop up:
image3

Tuesday, June 19, 2018

Aggregation Nodes WMB

WebService scenario in WMB V7.0

This post elaborates a particulate scenario where Aggregation is being implemented using different web service nodes ( SOAP & HTTP Nodes)

Background :
Aggregation is the generation and fan-out of related requests that are derived from a single input message. It is also the fan-in of the corresponding replies to produce a single aggregated reply message.

Aggregation is an advanced form of message routing. With aggregation, a request message is received, and multiple new different request messages are generated. Each new message is routed to its  destination using a request-reply interaction.

Aggregation Nodes:
  • AggregateControl, AggregateRequest nodes (Used in Fan-Out to broadcast the request message to multiple destinations 
  • AggregateReply (Used in Fan-In to collect responses)
  • ‘Aggregate Name’ property of AggregateControl & AggregateReply nodes should be the same.
  • ‘Folder Name’ property of the AggregateRequest node decide how the input will be structured  in Fan-Out flow.
  • The AggregateReply node creates a folder in the combined message tree below Root, called ComIbmAggregateReplyBody. Below this folder, the node creates a number of subfolders using the names that you set in the AggregateRequest nodes. These subfolders are populated with the associated reply messages.

Broker internally maintains aggregation state in following queues:
  • SYSTEM.BROKER.AGGR.REQUEST
  • SYSTEM.BROKER.AGGR.CONTROL
  • SYSTEM.BROKER.AGGR.REPLY
  • SYSTEM.BROKER.AGGR.UNKNOWN
  • SYSTEM.BROKER.AGGR.TIMEOUT

Core Aggregation Flows :

Fan Out Flow :


Fan In Flow :

Input :
      <myms:SaleEnvelope  xmlns:myms="http://tempuri.org/MyMS">
         <myms:SaleList>
            <myms:Invoice>
               <myms:Initial>A</myms:Initial>
               <myms:Balance>B</myms:Balance>
               <myms:Currency>C</myms:Currency>
            </myms:Invoice>
         </myms:SaleList>
       <myms:SaleList>
            <myms:Invoice>
               <myms:Initial>A1</myms:Initial>
               <myms:Balance>B1</myms:Balance>
               <myms:Currency>C1</myms:Currency>
            </myms:Invoice>
         </myms:SaleList>
      </myms:SaleEnvelope>

Output :
<ABC>
 <AG2>
  <SaleEnvelope>
   <SaleList>
    <Invoice xmlns:NS1="http://tempuri.org/MyMS">
     <Initial>a</Initial>
     <Balance>60.16</Balance>
     <Currency>Dollar</Currency>
    </Invoice>
   </SaleList>
  </SaleEnvelope>
 </AG2>
 <AG1>
  <SaleEnvelope>
   <SaleList>
    <Invoice xmlns:NS1="http://tempuri.org/MyMS">
     <Initial>S</Initial>
     <Balance>07.55</Balance>
     <Currency>Rupees</Currency>
    </Invoice>
   </SaleList>
  </SaleEnvelope>
 </AG1>
</ABC>

Wrapper (Web Service) Flows :

The same flow can be called by HTTPInput Node or SOAPInput Node.

HTTPCaller Flow :


Input & Output for the above flow would be same as normal flow mentioned above.

Different ways of calling HTTPInput node (Web Service implemented using HTTP nodes) :
  • nettool (Its a tool ; Need to give the URL & input xml)
  • Another message flow which uses HTTPRequest node to call HTTPCaller flow.
  • Java : Can be called through plain Java code; following code sample is a standalone Java program to call HTTPCaller flow.
Code :
import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.FileReader;
import java.io.InputStreamReader;
import java.net.URL;
import java.net.URLConnection;

public class HTTPCaller{
public static void main(String[] args) throws Exception {
// Default port for HTTPInput node is 7080
// Path suffix for URL :/path/to/aggrservice/
URL url = new URL("http://localhost:7080/path/to/aggrservice/");
URLConnection urlConn = url.openConnection();
FileReader fileReader = new FileReader("C://Input.xml"); // Input XML (It is same as above input xml)
urlConn.setDoOutput(true);
InputStreamReader inStream = null;
BufferedReader buff = null;
String nextLine;
String inputLine;
BufferedReader in = new BufferedReader(fileReader);
DataOutputStream printout = new DataOutputStream(urlConn.getOutputStream());
while ((inputLine = in.readLine()) != null){
printout.writeBytes(inputLine);
}
printout.flush();
printout.close();

// Get Response data.
inStream = new InputStreamReader(urlConn.getInputStream());
buff = new BufferedReader(inStream);
while (true) {
nextLine = buff.readLine();
if (nextLine != null) {
System.out.println(nextLine);
} else {
break;
}
}
in.close();
}
}

SOAPCaller Flow :


Input :
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:myms="http://tempuri.org/MyMS">
   <soapenv:Header/>
   <soapenv:Body>
      <myms:SaleEnvelope>
          <myms:SaleList>
            <myms:Invoice>
               <myms:Initial>A</myms:Initial>
               <myms:Balance>B</myms:Balance>
               <myms:Currency>C</myms:Currency>
            </myms:Invoice>
         </myms:SaleList>
         <myms:SaleList>
            <myms:Invoice>
               <myms:Initial>A1</myms:Initial>
               <myms:Balance>B1</myms:Balance>
               <myms:Currency>C1</myms:Currency>
            </myms:Invoice>
         </myms:SaleList>
      </myms:SaleEnvelope>
   </soapenv:Body>
</soapenv:Envelope>

Output :
<soapenv:Envelope xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
   <soapenv:Body>
      <ABC>
         <AG1>
            <SaleEnvelope>
               <SaleList>
                  <NS1:Invoice xmlns:NS1="http://tempuri.org/MyMS">
                     <NS1:Initial>A</NS1:Initial>
                     <NS1:Balance>B</NS1:Balance>
                     <NS1:Currency>C</NS1:Currency>
                  </NS1:Invoice>
               </SaleList>
            </SaleEnvelope>
         </AG1>
         <AG2>
            <SaleEnvelope>
               <SaleList>
                  <NS1:Invoice xmlns:NS1="http://tempuri.org/MyMS">
                     <NS1:Initial>A1</NS1:Initial>
                     <NS1:Balance>B1</NS1:Balance>
                     <NS1:Currency>C1</NS1:Currency>
                  </NS1:Invoice>
               </SaleList>
            </SaleEnvelope>
         </AG2>
      </ABC>
   </soapenv:Body>
</soapenv:Envelope>


Different ways of calling SOAPInput node (Web Service implemented using SOAP nodes) :
// Default port for SOAPInput node is 7800
// Path suffix for URL : /MyMSSOAP_HTTP_Service ; so the URL would be http://localhost:7800/MyMSSOAP_HTTP_Service?wsdl

Wednesday, June 13, 2018

IBM ACE

At a glance

Top rule

IBM® App Connect Enterprise V11 combines the existing, industry-trusted IBM Integration Bus (IIB) technology with new cloud native technologies of IBM App Connect Professional. App Connect Enterprise delivers a platform that supports a breadth of integration needs across a modern digital enterprise. It is ideal for businesses that need to take advantage of API-driven architectures, connect cloud-based applications, or quickly utilize artificial intelligence (AI) technologies to extend the value and investment in their existing data and systems.
Available as managed or unmanaged cloud or as an on-premises offering, App Connect Enterprise delivers a range of capabilities to optimize the creation and deployment of integrations that support API-driven digital and hybrid cloud architectures. These capabilities and features include:
  • Extended connectivity across Cloud Services, Software as a Service (SaaS), cloud platforms, and on-premises applications
  • Lightweight integration runtimes for cloud native and container-based deployment
  • Deployment options that can enable clients to achieve a balance between control, management overhead, and budget
  • The ability to build and expose APIs through a no-code approach that can be easily managed through IBM API Connect™
  • New, simple tooling for all styles of user that works together to expose and integrate enterprise systems
  • Detection of business situations that require user engagement, with insightful and actionable notifications 1
App Connect Enterprise V11 is the official successor product for IIB clients. For more information regarding migration of workloads from IIB to App Connect Enterprise, see the Statement of Direction section.
1 This capability is only available to clients that have purchased IBM App Connect on IBM Cloud.


Back to topBack to top 

Overview

Top rule

App Connect Enterprise V11 delivers the premier integration platform that supports an extensive range of data and application integration needs of enterprises that capture digital opportunities by using cloud technologies. Simple tooling that is optimized to the users' skillsets can enable users to be productive in a matter of hours and achieve real results in a few days, while powerful underlying capabilities move data quickly to support today's digital needs. The primary capabilities and features of App Connect Enterprise include:
  • User-aligned integration tooling. An upgraded desktop user interface coupled with new award-winning tooling1 that brings together the teams that own and manage the data with those that have the context to apply it. Digital businesses rely on data that is delivered in the right context, to the right client touch point, at the required time. The tooling provides frictionless access to enterprise data at the front line of the clients' business, whether those individuals are in IT or citizen integrators in the line of business. Access can allow every system and member of the clients' team to connect to the data they need and to act on it at the right time.
  • No-code RESTful integration services. App Connect supports building integration flows through a no-code approach and exposes those flows as RESTful APIs without having to be an API development expert. These APIs can be seamlessly brought into API Connect to handle the management, securing, and socializing to development teams. Whether building cloud scale, resilient applications from the ground up or taking the opportunity to utilize existing technologies as part of a serverless architecture, enterprises can rely on the rapid build and access to the systems at the right time.
  • Flexible integration patterns. Broad support in a single platform for API and event-driven technologies to complement integrations supporting batch data movement, Electronic Data Interchange (EDI), and service-oriented architecture (SOA). This helps to ensure that existing investments in integration can be used where they are optimal, while they support the rapid build of new use cases.
  • Broad deployment options. Two form factors, software and a managed cloud service, provide an extensive range of deployment options that include on premise, either to private datacenters or to dedicated instances, on IBM Cloud Private, to the IBM Cloud, which includes a fully-managed IBM Cloud service, and on other cloud providers with the option to use containers. The decision of where to run the integration can be optimized to the needs of the business.
The new capabilities that are delivered in App Connect Enterprise unify the capabilities of IBM Integration Bus (IIB) with those of App Connect Professional in a single offering to better serve the demands of clients who integrate applications and data to compete in today's economy. App Connect Enterprise benefits from the IIB runtime, trusted globally by large enterprises, which has been optimized in this release for cloud native deployments. For more information regarding migration of workloads from IIB to App Connect Enterprise, see the Statement of Direction section.
1 This capability is only available to clients that have purchased IBM App Connect on IBM Cloud.


Back to topBack to top 

Key prerequisites

Top rule

App Connect Enterprise V11.0 can be used on a variety of computer systems and platforms.
For additional details, see the Technical information section.


Back to topBack to top 

Planned availability date

Top rule

March 30, 2018: Electronic distribution
See the Availability of national languages section for national language availability.


Back to topBack to top 

Description

Top rule

App Connect Enterprise brings together the best of the existing, industry-trusted IBM integration technology with the new IBM Cloud native technologies to deliver a platform that supports a breadth of integration needs across a modern digital enterprise. With a focus on simple tooling to suit a range of user skillsets, the fast movement of data from any endpoint application to where it is needed, and deployment options to suit the right balance between control and budget, App Connect Enterprise provides the only integration platform an organization needs to unlock its business data and deliver it to the right touch point, in multiple channels across the business.
New in App Connect Enterprise
  • Extended connectivity across cloud service applications, cloud platforms, and existing on-premises applications
    Pre-packaged connectivity to a wide range of Cloud services, Software as a Service (SaaS) applications, and cloud platforms to complement the robust existing set of connectors for packaged applications that include:
    • Customer relationship management (CRM)
    • Enterprise resource planning (ERP)
    • Marketing and Human Capital Management (HCM)
    • Files
    • Databases
    • Messaging systems
    • Mainframe applications
    • And more
  • Extensive range of supported integration styles
    Because one style of integration does not fit all needs, a digital business can benefit by building on the existing investments it made in integration tooling while taking advantage of new technologies, as easily as possible. Proven EDI and SOA capabilities are now joined by events and OpenAPI (Swagger) support with a range of deployment models to enable the business to build and integrate applications and data in new ways to take advantage of agile methods and cloud scalability and resilience.
  • Simple tooling for all styles of users
    New coupled tooling experiences for the spectrum of users across the digital enterprise:
    • For the core IT teams that manage the key systems and packaged applications, there is a rich tooling experience to support all styles of interaction, powerful mapping, parsing and transformation. A broad range of functions, which include built in-unit testing and the ability to perform pre-deploy validation, alongside linked browser-based tooling for the line-of-business teams, ensures both developers and non-technical users can rapidly build integration without the need for code.
    • Knowledge workers and citizen integrators in lines of business can take advantage of the simpler, configuration-based "designer" tooling 1 to connect applications in the cloud. Alternatively, they can innovate on-premises applications for themselves to automate information and process flows by using a no-code approach while taking advantage of the multi-tenant, Cloud Service runtime. 1
    • Integration specialists can choose to use the new web based tooling to build simple things quickly, or utilize the full Integrated Development Environment (IDE) toolkit to tackle more detailed and challenging requirements.
    When utilized in partnership, these tooling experiences truly unlock the value of enterprise data. IT teams can curate data from complex packaged applications or systems of record and expose it to line-of-business users for final mile integration using the designer tooling, dynamically and without difficulty. This perfect pairing supports collaboration between the IT teams that manage the data and the users with the context of where it is needed.
    Users of all experience benefit from accelerators, such as templates for common integration and industry-specific-use cases.
  • Situational awareness with insightful and actionable notifications 1
    This new capability empowers knowledge workers to easily consume data in enterprise systems and cloud services, and then proactively detects business situations of interest to remove information blind spots. Key to the ability for any enterprise to act immediately, non-technical users can quickly and easily build flows to detect events of interest and provide notifications that communicate the key pieces of information required for them to make an informed decision. Users can then quickly select the right, next-best-action that should be carried out based on that insight.
  • Quick utilization of artificial intelligence (AI) services:
    • Take advantage of the cloud-based tooling to enrich data in flight or quickly build digital agents by utilizing pre-built connectors to IBM Watson® cognitive services.
    • Imbed AI capabilities into clients' integrations to perform sentiment analysis, translation, or to pull out key aspects of a document narrative using rich cognitive and natural language services.
    • Alternatively, take advantage of the simple, rapid tooling to integrate data directly with conversation services to quickly build out chat bots.
  • Rapid orchestration of data and systems for API-driven architectures
    The strength of an API relies heavily on how well it is composed to bring existing sources of information together. App Connect Enterprise provides a range of relatable tooling experiences that support users of multiple types and skills sets to perform that composition, with everything from simple, graphical flow design right through to deep programmatical controls. Users, whether business-focused or technical, can create and expose innovative APIs from wherever data it is located.
  • API exposure and strong synergies with API Connect
    To expose a REST API is rarely sufficient in itself. If that API is to be used by multiple consumers, it should be secured and managed appropriately. Accelerator tooling in the cloud-based experience ensures clients' exposed APIs have a basic level of maturity from day one, with common security, and traffic management controls 1 . Should clients need to introduce fully fledged API management, assets can be easily made available in API Connect to provide developer portals, self-administered subscription, external lifecycle management, monetization and much more, to bring their enterprise firmly into the API economy.
  • Flexible deployment across cloud and on-premise deployments
    Supports a broad range of deployment options from fully-managed or dedicated instances on the IBM Cloud through to portable, containerized deployment on other cloud providers. Users can also opt for a more traditional, self-managed software installation, the decision of where to deploy the integration can be optimized to the needs of the business. The managed service provides holistic browser-based administration with visibility across multiple integration deployments in a single view.
  • Lightweight integration runtime for cloud native deployment
    App Connect Enterprise delivers revolutionary changes to the way that integration assets are deployed to the integration runtime. This massively reduces build pipelines and offers rapid deployment of new artefacts, fast start-up times and elastic scaling, and availability configurations. The result is to create a runtime that is more CPU and memory efficient, truly cloud-native and aligns with the principles of microservices.
    Users who deploy the software variant of App Connect Enterprise can take advantage of simple file-system-based, dependency-free installation, and deployment that is ideally suited to Docker images. The resultant images can then be easily scaled and managed by using orchestration frameworks, such as Kubernetes, alongside other components within a modern architecture. This is in addition to a range of additional features suited to new-generation-use cases:
    • Deploys processing and integration flow runtimes all under and coordinated by a single, operating system process to simplify deployment models.
    • Helps ensure the ease of cloning of integration server settings between environments.
    • Runs as a truly, cloud native application with tailored architecture for use in container technologies, such as Docker that run under a Kubernetes framework.
  • Existing users who are familiar with the IIB tooling, changes are provided to the following more specific capabilities and features:
    • Run integration servers directly from a command line without any prior creation step, and without any affiliation to an Integration Node.
      • Run integration servers directly from a BAR file's contents.
      • This feature removes the IIB V10 internal configuration stores and can dramatically simplify the product's external administrative interfaces.
    • No specific deploy step is required when running independent integration servers that point to a pre-configured file system which adheres to the structure of a BAR file.
    • Simplified scoping of artifacts are deployed to an integration server.
    • IIB V10 SalesforceRequest node is now included as part of App Connect Enterprise, without needing to purchase IBM Application Integration Suite.
    • Define App Connect Enterprise policies in the Eclipse-based Toolkit.
    • Define settings that previously were only available in IIB V10 configurable services as App Connect Enterprise policies.
    • Add App Connect Enterprise policies to a Broker Archive file for deployment to an integration server.
    • Use App Connect Enterprise policies to define and control runtime behaviors without the need to create a configurable service definition in the runtime environment.
  • Extension of a trusted platform
    App Connect Enterprise builds upon the robust and proven IIB runtime that is trusted by thousands of clients over the past 18 years or more to run their mission-critical, application integration projects. During this period, the offering continually grew to allow clients to embrace new technologies, such as Kafka and Loopback bridge across cloud and on-premises architectures with a hybrid runtime, and adopt open standards through the delivery of OpenAPI features.
    The connectivity and tooling options extend the wide variety of data formats and application that are supported and include standards-based formats, such as:
    • eXtensible Markup Language (XML)
    • Data Format Description Language (DFDL)
    • JavaScript™ Object Notation (JSON)
    • Industry formats and standards, such as:
      • Health Level 7 (HL7)
      • The Society for Worldwide Interbank Financial Telecommunication (SWIFT)
      • ISO8583
      • Custom formats
    An extensive range of operations can be performed on data, such as routing, filtering, and enrichment.
    Wherever the applications are on premises, on cloud, or both, these flexible integration capabilities can support the users' choice of solution architectures, which include:
    • Service-oriented
    • RESTful
    • Event-oriented
    • Data-driven
    • File-based (batch or real-time)
The new capabilities that are delivered in App Connect Enterprise unify and extend the capabilities of the IIB family with those of App Connect Professional in a single offering to better serve the demands of clients who are integrating applications and data to compete in today's economy. App Connect Enterprise is the official successor to the IIB family of offerings and is available as:
  • App Connect Enterprise V11 software that is deployable:
    • On premise
    • To IBM Cloud Private
    • In containers
    • On a public cloud (unmanaged)
    App Connect Enterprise clients can utilize an extensive range of SaaS connectors, which can run on premise using the bundled App Connect Professional, or on the cloud using the managed App Connect service on IBM Cloud. For more information, see IBM Knowledge Center after March 30, 2018.
  • App Connect Enterprise on IBM Cloud provides:
    • An IBM hosted and managed cloud service for clients with entitlement to deploy reserved-instance integration servers and multi-tenant integrations. For more information see the App Connect Enterprise on IBM Cloud Service Description.
Hybrid entitlement provides clients with the flexibility to use either App Connect Enterprise software or App Connect Enterprise on IBM Cloud, or a combination of both.
1 This capability is only available to clients that have purchased IBM App Connect on IBM Cloud.

Monday, June 4, 2018

What's new in IIB?


As per the IBM info center..
Learn about the main new functions in IBM® Integration Bus Version 10.0.
IBM Integration Bus is a compatible evolution of WebSphere® Message Broker that is designed to incorporate features that are found in WebSphere Enterprise Service BusIBM Integration Bus provides a universal integration capability that addresses a wide range of integration scenarios. These scenarios include web services such as SOAP and REST, messaging, database, file, ERP systems, mobile, physical devices, email, custom systems and more.
For details of the new features in IBM Integration Bus Version 10.0, see the following sections.
If you are migrating from WebSphere Message Broker Version 8.0, also see What else is new if you are migrating from Version 8.0?.
If you are migrating from WebSphere Message Broker Version 7.0, also see What else is new if you are migrating from WebSphere Message Broker Version 7.0?.
If you are migrating from WebSphere Enterprise Service Bus, also see What's new in IBM Integration Bus for WebSphere Enterprise Service Bus users?.