Thoughts and Tutorials about Continuous Integration, Application Integration, SOA, IT Architecture, WebSphere and Liferay

Aug 24, 2014

How to change the JDK in WebSphere 8.5 or above



This article describes how to change the JDK of your websphere JVM.

Aug 23, 2014

How to synchronize WebSphere nodes

The Problem

In case of an inconsistent configuration between the master repository (deployment manager) and one or more WebSphere Network Deployment nodes, a manual re-sync is nessecarry.

Inconsistent configurations typically occur when changing security settings like certificates or jaas setups.

Synchronizing the node

To synchronize a specify node change to the command line.

First the the node agent needs to be stopped.
<WebSphere-Profile-Root>/bin/stopNode.sh
If the stop command does not work (loading forever...) simply kill the process.
kill -9 <nodeagent pid>
The process id (pid) can be extracted from
<WebSphere-Profile-Root>/logs/nodeagent/nodeagent.pid

Next synchronize the node with the deployment manager
<WebSphere-Profile-Root>/bin/syncNode.sh <dmgr-host> <dmgr-soap-port>
The <dmgr-soap-port> is typically 8879.
The synchronization it self can take a few minutes.
After the sync was successfull start the node agent by issuing
<WebSphere-Profile-Root>/bin/startNode.sh

Thats it. The node should by in sync now.

Aug 17, 2014

What is Enterprise Application Integration (EAI)?

Standardisation

Unfortuntly there is nearly no standardization in the area of "(Enterprise) Application Integration (EAI)". It is quite confusing searching for an unique and clear discribtion about what EAI exactly is.
I can not give you an all-embracing definition of EAI, however i try to give an high-level overview about what EAI is - from my point of view. I try to update this article consequently.


The Defintion of EAI - What actually is EAI?

The starting position - in most cases - is an application landscape with point-to-point-interfaces between the specific applications. These interfaces are heterogeneously implemented (FTP, JMS, etc). In a growing landscape this leads to an increased amount of interfaces, which therefore leads to a high complexity of the whole landscape.

A change in one application can cause several other changes in depending applications. This tight coupling between application leads to a low tolerance  against errors and modifications.



EAI is an approach to organize Application Integration in an Enterprise-wide context. The EAI-concept is using an integration platform (also called EAI Backbone or Integration Bus). This integration platforms acts as an so called mediator between the specific applications. A mediator compensates changes or errors in the integrated applications (and their interfaces). This approach leads to a looser coupling between the applications and therefore to reduced dependencies. In addition to this, less interfaces are required.

Topologies

The integration platforms can be structed in two topologies. The "Hub and Spoke"-Topology consits of a centralised integration platform. The "Integration Bus"-Topology consits of decentralised nodes. Each node is typically installed "near" the integrated application.

As Hub-and-Spoke-EAI-Tools have an an single point of failure, Integration Bus-EAI-Tools often have an communication overhead.




However both integration platform topologies provide standardized adaptors to interact with the applications.

BPM

Most EAI-vendors also provide a business process engine to execute orchestrated processes across the integrated applications (process integration).


Additional Considerations

However please keep in mind that the  centralization of integration intents in one platform can cause a serious vendor lock in and organizational problems, when most projects depend in one central department which is responsible for the integration.

Also security is a important aspect that needs to be considered. Typical questions in that context are "is application X allowed to see every data of application Y?", "is the interface secure?" or "does to integration platform support LTPA-Tokens in order to authenticate the interface to application X?".

The versioning of interfaces and the integration platform itself can also be a complex problem.


Sources

[1] Own experiance and images. Images are inspired by source [2].

[2] Liebhart, D. (2007). SOA goes real: Service-orientierte Architekturen erfolgreich planen und einführen. München: Hanser Verlag.

[3] Kaib, M. (2004). Enterprise Application Integration. Wiesbaden: Deutscher Universitäts-Verlag.

[4] Laudon, K. C.; Laudon, J. P.; Schoder, D. (2009). Wirtschaftsinformatik: Eine Einführung. 2., aktualisierte Auflage. München: Pearson Studium.

[5] Linthicum, D. S. (2000). Enterprise Application Integration. Upper Saddle River: Addison-Wesley.

[6] Josuttis, N. (2008). SOA in der Praxis - System-Design für verteilte Geschäftsprozesse. 1.Auflage. Heidelberg: dpunkt.verlag.

[7] Vogel, O.; Arnold, I.; Chughtai, A.; Ihler, E.; Kehrer, T.; Mehlig, U.; Zdun, U. (2009). Software-Architektur: Grundlagen - Konzepte - Praxis. 2. Auflage. Heidelberg: Spektrum Akademischer Verlag.

[Images] Cover picture by Markus Spiske (http://www.raumrot.com/);

Best of Breed


The Definition of Best of Breed

Best of Breed is the process of selecting the best application available, that provide a set of capabilities which are highly specialized for the specific function they cover.
Therefore Best of Breed is an approach for selecting the best available software
solution for each field of application and combining (integrating) them in an appropriate way.

Alternatives

The opposite of best of breed is standardisation.
The standardisation of the application landscape can be achieved in multiple ways.

One approach refers to packaged software, especially to big integrated enterprise resource planing (ERP) suites.
ERP applications are an aggregation of a company's application systems designed
to bind more closely a variety of company functions and operations. These ERP
systems usually provide support for the entire internal company supply chain and
for functional areas such as human resources, finance, and marketing.
Today, these packages incorporate internal integration across business operations and functions, as well as to external entities (suppliers, customers). Major ERP vendors, such as SAP, Oracle and Microsoft, are offering package modules (e.g. for speci c industries) that can be added to the ERP system.

Another approach for standardisation is called Single-Sourcing . A Single-Sourcing strategy aims to implement as many software solutions as possible from he same vendor, assuming that this software solutions would integrate easily, as they from a single vendor.
However typical examples for Single-Sourcing vendors are ERP vendors.
A Single-Sourcing strategy also leeds to an serious vendor-lock-in.

Sources

[1] Baschab, J., Piot, J., 2007. The executive's guide to information technology. John Wiley & Sons.
[2] Hanschke, I., 2009. Strategisches Management der IT-Landschaft - Ein praktischer Leitfaden für das Enterprise Architecture Management. Hanser.
[3] Strahringer, S., Gmeiner, R., Oktober 2004. Auswahlstrategien für Standardsoftware in Banken. HMD - Praxis der Wirtschaftsinformatik 239, pp. 95 -101

[Images] Cover picture by Markus Spiske (http://www.raumrot.com/);

Aug 14, 2014

How To Install WebSphere Developers Edition - script based



One part of a WebSphere administrators daily business is to integrate an application in a large WAS topologies.
In most cases the developers develop applications on some lightweight application servers like tomcat or jetty.
However it´s easier (for the WAS admin) when the developers have a Websphere server on their machine to develop directly on the IBM JDK and with the difficulties of WAS.

Aug 13, 2014

JMS in WebSphere


WebSphere Application Server 8 / 8.5 provids a basic JMS support for most Java based messaging scenarios.
Advanced scenarios including e.g. clients written in languages different from java, require a fully featured messaging middleware system like Websphere MQ or Apache Active MQ.

How to decode Websphere passwords

WebSphere Application Server 8 / 8.5 XOR-encodes (not encrypts!) system passwords based on an underscore ("_") - and some additional base64.

WebSphere Application Server Object Cache

WebSphere Application Server provides basic cache functionality for java ee applications.
One cache functionality is the "Object Cache" which allows applications to programatically use a container hosted cache instance. When using WebSphere Application Server Network Deployment the object cache can also be used as a clustered cache (invalidating & replicating). It therefore can be used as an alternative to Infinispan or EhCache.

405 method not allowed for IBM HTTP Server



Modern application architectures are making use of REST/HATEOAS-patterns for designing a scalable structures.
RESTful application or interfaces are heavely based on the standard HTTP-Methods - including the DELETE and PUT methods.
This methods are NOT supported by default by the IBM HTTP Server. This typically leads to an the HTTP-Error 405 Method not allowed.

Deploy Liferay 6.2 in WebSphere Application Server 8.5.5


Liferay is a open source portal application runnable also in a WebSphere Application Server 8.5.5. In this post i describe how to get liferay 6.2 GA2 running.
As you will see getting liferay running in a WebSphere Server is not as easy as running liferay in a Tomcat container.

WebSphere: Port conflicts while starting new JVM

Problem

In big WAS topologies with more than one cell you sometimes get some port conflicts with JVMs from the other cells. The JVMs wouldn´t start correctly because WAS isn´t able to handle this conflict with other cells. So multiple JVMs can get the same ports while creating the JVM.