Monday, August 22, 2011

Enterprise Integration - SOA vs EAI vs ESB

Enterprise Integration


WebSphere Message Broker:

WebSphere Message Broker is capable of understanding the content of message that it moves through the Broker. Customers can define the set of operations on each message depending on its content. WebSphere Message Broker are capable of processing messages from various sources (data transformation, data translation, Protocol Transformation), such as Java Message Service (JMS) providers, HyperText Transfer Protocol (HTTP) calls, or data read from files. By connecting these nodes with each other, customers can define linked operations on a message as it flows from one application to its destination.
Message Broker can do the following:
  • Matches and routes communications between services
  • Converts between different transport protocols
  • Transforms message formats between requester and service
  • Identifies and distributes business events from disparate sources
Capabilities WMB
  1. Message routing
  2. Message transformation and enrichment
  •     Publish/subscribe
  •     Point to Point
IBM Enterprise Service Bus:

WebSphere Enterprise Service Bus (ESB) is a flexible connectivity infrastructure for integrating applications and services. An ESB provides the connectivity to implement a service-oriented architecture (SOA), reducing the complexity of integrating applications and services. With WebSphere ESB

It provided the connectivity between heterogeneous applications, data flow, message flow, protocol transformation, connectivity between mainframe, java application, SOA supports, service enabling. 

IBM Integration Bus:

IBM Integration Bus is designed to solve integration requirements between back-end systems, from simple point-to-point connectivity to sophisticated topological using SOA patterns such as ESBs. It has built-in connectors that enable integration between web services, files, databases, packaged applications such as SAP and Microsoft® Dynamics CRM, variety of configuration and transformation options such as graphical mapping, Java™, and Microsoft .NET®.

IBM Integration Bus incorporate an increasing number of integration use cases, such as BPM, business rules, Microsoft .NET, and workload management. Migration from WebSphere Message Broker to IBM Integration Bus is a simple version-to-version upgrade. it provides a single command to migrate between the two environments.

IBM Integration Bus incorporates WebSphere ESB use-cases, with WebSphere ESB capabilities folded into IBM Integration Bus in time. 

IBM Integration Bus complements WebSphere DataPower integration gateway products, which are designed for all edge-of-network scenarios.

IBM Integration Bus Developer: 
It is used by developer and it only use for development purpose. It can migrate to other version of IIB easily.

IBM Integration Bus Express:
is an entry level enterprise service bus (ESB) at a low price point for developmental projects, small and midsize companies. 

IBM Integration Bus Standard:
IIB Standard is a flexible, scalable ESB for small to medium size projects.

IBM Integration Bus Advanced:
It supports businesses of any size can eliminate point-to-point connections and batch processing regardless of platform, protocol or data format. This has full capabilities of ESB

Conclusion:

WMB was the initial version of one of product for message routing and message transformation. 

ESB infrastructure based on SOA ESB design pattern, which have other capabilities other than such as data translation, data flow, protocol transformation, service enabling, connectivity between heterogeneous and desperate system

IIB, this is an advanced version of software which does have all the features which have ESB and WMB. it does have BPM, BPEL capabilities. Systems, protocol, database etc. can be connected using IIB from end.

Developing BPEL processes with Integration Designer

IBM Integration Bus (WMB) 
It is Strategic Integration Technology to replace all other IBM ESB related products.

Hub and Spoke:
          SOA vs EAI vs ESB

Some other details:
  1. IIB and ESB Details
  2. IIB
  3. DataPower vs Message Broker
  4. IBM-integration
  5. IIB and WMB
  6. two-way SSL for Message Broker and Integration Bus
  7. FAQ - IIB and WMB
  8. Difference between WMB and ESB
  9. ibm-integration-bus


Wednesday, May 25, 2011

Cloud Computing?

This subject is very vast area and it does have lot of components (Servers/Data center/Infrastructure etc.) and entities (CRM/BPM/SOA etc.) involved to make Cloud computing (IT/Services) available.

Cloud Computing help to reduce the operation cost for customer to maintaining the hardware (IT/Data center/Servers), software (Services) and new changes for customer.

What is Cloud Computing?
Cloud computing is virtualized resources are leveraged to serve as a platform for Internet-based software, infrastructure and/or services. It is highly scalable, robust, high availability, universal accessibility, easily customization.

Cloud Computing Architectures and Services

Cloud architectures are divided into different categories based on user access and ownership:

Public Clouds:

It hosts of pay-per-use, virtualized servers by third-party cloud vendors/service providers. This managed by a third party. This is like leased servers/services as per need basis. It is also called external cloud. It will maintain and customized by third party on request basis.

Private Clouds:

A virtualized IT infrastructure that hosts services for employees and is managed by an organization’s IT staff, shifting the IT department’s primary role from service and maintenance to service provider. It is also called internal cloud. In a private cloud, all data remains under the full control of the host organization.

Hybrid Clouds:

The integration of on-premises IT infrastructures and internal cloud applications with applications and information deployed to a service provider either on a temporary or permanent basis. This model enables an enterprise to serve as its own cloud provider as well as a host for outside applications.

Cloud computing system architecture (CCSA), It offerings are divided into four additional categories:

Platform-as-a-Service (PaaS):

A full or partial development and deployment environment that supports online access and collaboration.

This type of cloud enables developers to leverage a robust developing environment – via an IT infrastructure – without the necessary investment in hardware and additional management personnel.

Infrastructure-as-a-Service (IaaS):

A comprehensive computer infrastructure (servers, storage, software and networks) made accessible to users via the Internet.

Software-as-a-Service (SaaS):

Software applications – including complex customer relationship management (CRM), SAP, financial applications and enterprise resource management (ERM) programs – accessible via the Internet. These solutions are available through the dedicated SaaS provider.

Desktop-as-a-Service (DaaS):

PC desktop virtualization for single-user clients. Facilitates virtualized access to an individual workstation, including operating system interfaces and built-in storage hardware.


Opinion about Cloud:

Ther are multiple views and multiple thoughts. It will compare as offshore BPO, offhsore data management and similar.

In my opinion security is the major issues and concerned about every company it could be banking, finance, Healthcare or similar. These companies have many laws and regulatory about their data sharing more about their data stealing.

Currently all the data, network, hardware, software, security system and all stuff is owned by individual companies and still there are data theft, data stealing, individual security theft and many more cases and here i am referring to big name like Citi bank, Google and many more.

So in this case i really think cloud as a service will succeed in the long run.

Reference:
http://www.infoworld.com/d/cloud-computing/what-cloud-computing-really-means-031

Friday, April 22, 2011

Agile- Scrum

Agile and Scrum?

Agile is like a match box and Scrum is one of the stick type in match box. So Agile is umbrella and scrum comes under that. There are many other sticks like extreme programming and so on.

What is Scrum? Is it process, is it methodologies or it is some magic?

Scrum is not a process and it does not dictate anything.

It is kind of framework and it consists with different roles Product owner, Scrum Master and team.

I will define all these roles later.

Scrum also consists with certain more information likes sprints, scrum estimation, burnout chart, retrospective, adapt and review, scrum meetings, product backlog, sprint backlog.

Release planing metting:
This meeting will eastablised a plan and goal for scrum team.

This meeting will also set the expectation how scrum team can satify the customer and thier ROI.

Sprint planing metting:
This meeting is consist with 2 parts

1. agreement for When what will be done in the sprint for sprint backlog.
2. When the Scrum team will start going to build sprint backlog into a product increment during the sprints.

Product backlog:
It is the all the requirements which is provided and priorities by product owner. Each and every product backlog detailed out. So each backlog can have multiple steps or features.

Sprint:
A projects can have multiple sprints. A sprint can have max 4 weeks time frame. A sprint is time boxed. It will have predefined time for product backlog. A sprint can have multiple features. Team needs to finish the sprint backlog in a sprint.

Sprint backlog:
All features which needs to be cover under the single sprint called sprint backlog.

Scrum Meeting:
Scrum team is require scrum meeting every day and it can not be more than 15 minutes.

It will have folllowings:
1. What has been done since last meeting.
2. What is the plan before next meeting
3. Is there any obstacle/pidement

Scrum review:
Team needs to review the after every sprints to what have been done in current sprint.

This meeting will have scrum team, stakholders to decide what has been done and what needs to be done in next sprint. So in this product backlog can be updated and the priority of the product backlog can be change for next sprints.

Retrospective
Scrum Team needs to covers the better process or method or practice which can improve team performance.

Burnout chart:
How much work have been left after each sprint so team can find out after each sprint how much features have been left.

Scrum estimation/timelines:
It depends on a print cost, how many features will cover in each sprint. How many sprint during the projects. How many peoples are in the team?
Note: Team can not be more than 7(+ , _ 2).

Product Backlog refinement:
Team will do the next sprint product backlog analysis so they can make sprint backlog for next sprint.

Product owner:
Normally this role can perform by anyone in the team but scrum master can not be the Product owner.

Team:
It is set of individuals peoples; they are owner of their work. Team will have developer, tester, architect, BA.

Scrum Master:
Who is responsible to implement the scrum framework in the team, He is not project manager and not responsible to assign the work to the team. A developer can be a scrum master. A scrum master can be dedicated to multiple sprints.

Scrum Artifact:

Product backlog
* All the requirements, order can be defined by Product owner.
Release burndown

* It is graph records the sum of remaining product backlog estimated effort across time.

Sprint backlog
* The requirements consites of the tasks the team perform duringa single sprint.
Sprint burndown

* It is graph records the sum of remaining sprint backlog estimated effort across sprint time.

Velocity:


It is efforts for a single sprint.
each sprint will have sprint backlog and every tasks in the sprint backlog will have some points and than total of the points will be called as a sprint velocity.

Let assume i have velocity in a single sprint is 12

Total point in project = 96

Total sprint required = 96/12 = 8

Buffer - 25% = 8*25/100 = 2

Pre-relased sprint = 1

Total sprint = 8+2+1 = 11 sprint for complete product backlog

Saturday, January 29, 2011

MEGA and SOA-

MEGA is well defined requirement, process and modeling tool. It makes any organization to defines their Organization structure, their processes, IT Services, infrastructure solutions etc. All these various components can have single view. It has capability to combines various components into a well defined model. This newly model will be SOA comply.

So yes MEGA can be used as a SOA compliance tool for any organization.

This product is based on BPNM. It is based on Microsoft Visio. It can be used as files system or any databases (not sure about DB2). All the changes can be move from one desktop to another easily. It can have images, documents. It can be connecting to external system which is based on the request; MEGA will provide those external interfaces.

MEGA can be used as a defining your use cases, class diagram (data model -MEGA terminology), activity diagram, sequence diagram (interaction diagram).

It has business layer, application layer for different purposes.

It is very light weight and can be used in any organization.

www.mega.com

Saturday, July 3, 2010

ESB and Enterprise Architecture

Logical and Physical architecture:

The logical architecture is a more detailed structure defines what has to be done to support the user services. It defines the processes that perform functions and the information or data flows that are shared between these processes. Logical architecture do not include physical server names or addresses. They do include any business services, application names and details, and other relevant information for development purposes.



A physical architecture has all major components and entities identified within specific physical servers and locations or specific software services, objects, or solutions. Include all known details such as operating systems, version numbers, and even patches that are relevant. Any physical constraints or limitations should also be identified within the server components, data flows, or connections. This design usually precludes or may be included and extended by the final implementation team into an implementation design.




I like these links, i have tried to compile various links at one place...

http://www.youtube.com/watch?v=Zmp5Pi4CFDw

http://www.youtube.com/watch?v=H72s78so6DM

http://www.youtube.com/watch?v=WI8P4YYubAw&NR=1

http://www.youtube.com/watch?v=1yUvonES0Gk&feature=related

Enterprise Architecture:

Zachman Framework:
https://apps.adcom.uci.edu/EnterpriseArch/Zachman/

NIST EA Model:
http://www.cio.gov/Documents/fedarch1.pdf

Department of Defence Architecture Framework (DoDAF):
http://www.defenselink.mil/cio-nii/docs/DoDAF_v1_Volume_I.pdf

Treasurey Enterprise Architecture Framework (TEAF):
http://www.eaframeworks.com/TEAF/teaf.doc

Federal Enterprise Architecture (FEA) Reference Models:
http://www.gao.gov/bestpractices/bpeaguide.pdf

National Association of State CIO (NASCIO) Enterprise Architecture:
http://www.nascio.org/advocacy/washWatch/documents/whitepaper_07-03EnterpriseArchitecture.pdf

Sunday, December 20, 2009

Database configuration on WAS

Configure DB2/Oracle type 4 driver on WEBSPHERE Application SERVER

Assumptions are followings:

i. All below mentioned required jars should be available.

1. classes12.jar
2. db2java.zip
3. db2jcc.jar
4. db2jcc_javax.jar
5. db2jcc_license_cisuz.jar
6. db2jcc_license_cu.jar

ii. All database authentications should be configured.
Login to WAS server:

STEPS -A- Creating JDBC provider
goto resources--> JDBC Providers --> Click on new
select Step 1- DB2
select Step 2- DB2 Universal JDBC Driver provider
select Step 3- XA Data source
click on Next --> new screen will be displayed apply the changes and save it.

STEPS -B -Creating Data sourcegoto resources--> JDBC Providers --> DB2 Universal JDBC Driver provider (XA) --> Data Source
select Step 1--> Enter the data source name (Two data source name can not be the same)
example-- testdatasourcename select Step 2--> Enter the JNDI name
example -- jdbc/testdatasourcename (It can be anything)
select Step 3--> select database authentication name (should be created before this configuration, so it can be selected from the option)
select Step 4--> Enter the DB2 data source properties
a. Database Name --> DB2TestName
b. Driver Type --> 4
c. Server Name --> TestServerName ((It will be the database server name)
d. Port Name --> 12345678 (It will be the port number)
click on Apply--> apply the changes and save it.

STEPS -C - Setting Environment variables
Enter the full path of the jars which can be places any where on the server and accesses by that user id and password
Select Environment --> Websphere variables

selects Step 1--> select DB2UNIVERSAL_JDBC_DRIVER_NATIVEPATHexm: /usr/IBM/WebSphere/AppServer/profiles/profileservername/lib
selects Step 2--> select DB2UNIVERSAL_JDBC_DRIVER_PATH
exm: /usr/IBM/WebSphere/AppServer/profiles/profileservername/lib

selects Step 3--> select DB2_JDBC_DRIVER_PATH
exm: /usr/IBM/WebSphere/AppServer/profiles/profileservername/lib


Apply all changes and save it.

Restart the server and test the applications.

Wednesday, August 19, 2009

Creating New websphere instance on WAS Server6.1

1. Get the server name from unix team.

2. Login in to the WAS (Websphere Application Server) using unix id and password

3. User id should have full access for this instance

4. It should not have any pre existing directories (lost-found or any other)

5. Let assume profile name is testserver

a. Changes directory to /usr/IBM/WebSphere/AppServer/bin/
Run the command wasprofile.sh with defined parameter.

wasprofile.sh -create -profileName testserver -profilePath /usr/IBM/WebSphere/AppServer/profiles/testserver -templatePath /usr/IBM/WebSphere/AppServer/profileTemplates/default -hostName -nodeName testservernode -cellName testservercell -startingPort <portNumber>

Port number can not be more than 64000.