About Me
Facebook
Facebook
Linked In
Linked In
Twitter
Twitter
YouTube
YouTube
Google +
Google +

October 15, 2015

Explore IBM Bluemix


Introduction 
In this article, I am going to explain you how to start developing and deploying applications using cloud-based services on IBM Bluemix. Simply put, Bluemix is a place for software developers to go to quickly create, deploy, and manage applications in the cloud — without dealing with any of the underlying infrastructure. Just go to Bluemix and create your free trial account. You'll receive a verification email, and once you accept that, you're in. 
Overview 
The best way to get started is to go to bluemix.net, sign up for a free trial account, check it out yourself, and see just how quickly you can create applications in the cloud. 
With your Bluemix account, you have access to runtimes (all the resources you need to run an app) and a vast catalog of services that provide instant functionality for your running app. You can do all the cool things that I do in this video. Because Bluemix is built on Cloud Foundry, an open source cloud platform, the approach to building and deploying apps is simple: 
         ü  Choose the runtime that you want to use (such as Node, Java, PHP, Python, or Ruby) 
         ü  Choose the services from the Bluemix catalog that you want in your app 
         ü  Deploy your app by pushing your code up (directly from your Eclipse workspace, for example, or via the Cloud Foundry command line) 
Follow along in the video as I start at my dashboard in Bluemix and build a hypothetical Node application for an insurance company. My app lets customers get information about their financial portfolios, so I add a Cloudant database to store the customer information. I also add a Watson Q & A service to add customer support to the app. 
In the artical, I also include helpful tips, such as how to easily create a Git repository for your code, how to import existing code or export from Bluemix, how to scale your application by adding more instances and memory, and how to get answers to your questions from the very active Bluemix developer community. 
Conclusion 
Ready to deploy your first app? Choose the tutorial for your programming language of choice: 
§  Java: Deploy a sample Java app to the cloud 
§  Node.js: Deploy a sample Node.js app to the cloud 
§  PHP: Deploy a sample Node.js app to the cloud  

continue reading

October 12, 2015

Bluemix Key Advantages, from a developer's perspective



In this article I am going to summarize the main benefits and advantages that Bluemix has over other cloud development platforms.
v Bluemix has all the popular runtimes already installed and ready to go. And you don't see your favorite runtime, you can install your own, because Bluemix is based on Cloud Foundry technology.
v Bluemix has a large and growing catalog of services that are already installed and licensed for the platform, so they are easy to incorporate into your application. And they have usage-based pricing.
v The Bluemix compostable service approach lets you "kick the tires" of new technologies like Watson services.
v If the Bluemix runtimes and services aren't enough for your needs, you can build your own environments using Docker-based containers.
v If you need control the entire software stack, Bluemix supports virtual machine deployments via OpenStack.

continue reading

Difference between Coaches & Coach Views in IBM BPM


Introduction:
Welcome to the introduction to Coaches and Coach Views in IBM® Business Process Manager. This article describes Coaches and Coach Views at the conceptual level, demonstrating the relationship between them.
Overview
Coaches
Coaches are the user interfaces for human services.
There are two types of user interfaces for human services:
ü  Task completion
ü  Stand-alone service.
To build either type of user interface for human services, you use coaches.
When a coach is a stand-alone service, such as a dashboard user interface, users can run it as at any time. Users access it through the Process Portal. For information about dashboards, see Dashboards in Process Portal. Users can also access it as a WebSphere® portlet.
When a coach is a task completion user interface, it is part of the human service flow. When the flow enters the coach, the user sees the user interface that is defined for that coach. The user interface consists of HTML code that is displayed in a web browser. The flow leaves the coach when a boundary event occurs. A coach can have multiple exit flows with each one associated with a different boundary event.


Coaches contain one or more coach views. The coach views provide the user interface elements and layout for the coach. Each coach view can contain one or more other coach views, which creates a parent-child relationship between these coach views. At run time, the parent coach view is rendered as a <div></div> tag that contains a nested <div></div> tag for each child coach view. Each coach view can also have a binding to a business object, CSS code to control its visual layout, and JavaScript to define its behavior.
Coach views
Coach views are reusable sets of user interfaces that users use to interact with a business object or service. Coach views can consist of one or more other coach views, data bindings, layout instructions, and behaviors.
Because coach views are reusable, each coach view instance can share parts of its user interface with other coach view instances within a coach. For example, you create a coach that contains a coach view instance that includes a set of address fields. If you create a second coach that needs the same address fields, you can reuse the same coach view. In both cases, the coach is using an instance of the coach view. You can edit the properties of each instance independently. For example, changing the label of one coach view instance does not change the label of the other. Both coach view instances use a reference to point to the coach view definition. This approach means that if the coach view definition changes, you can see the change reflected in the instances of the coach view.
You can create a coach view in the process application or in a toolkit. In general, create highly reusable coach views in toolkits and more specialized coach views in process applications. Choosing the process application means that you can reuse it only within the process application. However, it also means that if someone edits the coach view, the changes apply to the instances of the coach view in the process application. If the coach view is in a toolkit and then someone edits it, the changes could apply to all instances of the coach view in all applications that use that version of the toolkit. Because editing a coach definition can affect many instances, be careful in your changes. For example, deleting a content box in the coach view definition could mean that coaches or coach views that contain instances of that coach view cannot display the content that they had defined in that content box.
You cannot directly edit the definition of the coach view from within the parent coach or coach view. Instead, you must open the coach view definition first before you can change it. When you open a coach view definition to edit it, you can see the following pages:
ü  The Overview page displays the coach view name, information about the coach view, the images used to represent the coach view during design time, and how the coach view is used. You can also tag your coach view to make it easier to find in the library and on the palette.
ü  The Behavior page displays the JavaScript code and CSS files implementation of the coach view. The page also contains inline JavaScript and style code. The Behavior page is also where you define event handler code. The event handlers are the entry points for the code of the coach view. While the coach view might reference supporting JavaScript files, the event handlers contain the functions that the IBM® Business Process Manager framework calls.
ü  The Variables page displays the interfaces to the coach view, which include the business data binding, the configuration options (including Ajax services), and the localization resources that are available to or are used by the coach view.
ü  The Layout page displays the coach views and controls contained within the coach view and their relative positions. The layout page also displays the palette, which contains items that you can add to the coach view. These items consist of other coach views, advanced items, and variables. When you select a coach view or control in the layout, you see its properties.
Controls are coach views. IBM BPM provides a set of stock controls on the palette. In terms of use, IBM BPM treats the stock controls and the custom coach views that you create identically.
Difference between Coach & Coach views

Coach
Coach View
Coaches are the web-based user interfaces that provide process-related data to Process Portal users and collect input from the users.
A Coach View is a reusable unit that you use in Coaches and other Coach Views.
We can see the flow of the Coaches on the Diagram page of the human service.
A Coach View generally defines the user interface for a particular type of data, giving you the potential to customize the user interface by specifying the configuration options.
Coaches are implemented in human services, which manage the flow from one Coach to another.
We can use Coach Views to lay out other Coach Views.
Coached can be developed under Process App only.
Coach Views that are provided in the Coaches toolkit are called stock controls.
Coaches are like user interface can be seen on screen once we run it.
Everything under Views in the palette is a Coach View.
We can edit the properties of each Coach instance independently or dependent.
We must edit the properties of each Coach View instance independently.
We can’t set the visibility of Coach.
We can set the visibility of Coach Views.

Conclusion
This article we covered Coaches and Coach Views at the conceptual level, demonstrating the relationship between them. I have described difference between Coaches and Coach Views.

continue reading

October 06, 2015

The Fundamental SOA Programming Model



Introduction
IBM's SOA programming model provides a set of rules and languages that lets you focus on creating an implementation of a business design. The programming model addresses the aspects of service components and the data that is exchanged between services as service data, over a service bus. Now, let us look at the key aspects of this programming model.
Overview
Service Component Architecture
We design and build applications (for example, customer billing, order management, customer care, account opening, loan underwriting and so on) so that an organization can run their business effectively and efficiently. Applications can be looked at as a collection of software components that are assembled or integrated together for a particular purpose. Ideally, you should have the freedom to implement the different components in the technology of your choice. However, at times you may have to inherit or work with existing systems, technologies, or work with third parties who have a different set of technologies. When you adopt an SOA approach to building applications, these components can be viewed as services. When we look at the constructs that make up a service, two things immediately come to mind:
§  The What part: Data that should be passed to the service and data received back from the service
§  The How part: The mechanism required to realize the service and how it can be invoked or can be made available to a service consumer
For each of the previous two questions, there are many standards and programming models and, at times, it may get too overwhelming. This is where an SCA model comes in and mitigates these complexities. SCA is not another programming language or replacement, but rather gives a model to assemble and build SOA applications by choosing any technology specific to the implementation approach. The fundamental goal and premise of SCA is to separate business logic from infrastructure logic. IBM's BPM development tool WID provides the design time environment to build SCA-based applications using a bottom-up or top-down approach.
Therefore, WID enables architects and developers to spend more time working on solving a particular business problem rather than focusing on the details of which implementation technology to use. BPEL is one of those components that are available in WID to build applications.

Defining SCA
SCA is a set of specifications that describes a model for building applications and systems using an SOA approach. SCA extends and complements prior approaches to implementing services and SCA builds on open standards, such as web services.
SCA divides the steps in building a service-oriented application into two major parts:
§  The implementation of components (including BPEL) that expose (export) services and consume (import) other services
§  The assembly of sets of components to build business applications, through the wiring of references to services
SCA uses Service Data Objects (SDO) to represent the business data that forms the request and response values of services, providing uniform access to business data to complement the uniform and consistent access to business services offered by SCA itself. SCA supports bindings to a wide range of access mechanisms used to invoke services.
SCA emphasizes the decoupling of service implementation and of service assembly from the infrastructure capabilities, from technology or programming language specifics, and from the details of the access methods used to invoke services. SCA components operate at a business level and use a minimum of middleware-specific APIs. The basic elements of SCA include:
v  Service components
v  Service assembly
v  Service data objects
The basic building block in SCA is the service component and represents a business service that publishes or operates on business data. The SCA Component Fundamental Structure figure depicts the essential pieces of a service component definition. A service component can have one or more interfaces with which it is associated. The interfaces associated with a service component advertise the business operations associated with this service. These interfaces can be specified as either Java interfaces or WSDL port type interfaces.
The arguments and return types for these interfaces are specified as simple Java types, Java classes, SDOs, or XML Schema (for WSDL port type interfaces). Also, implementation is associated with a service component definition. As the figure indicates, there are multiple language and component types available for implementing a service component.
When specifying a component interface, you cannot mix Java and WSDL port type interfaces on the same service component definition.
A service assembly deals with the aggregation of components and the linking of components through wiring or wires. Think of the assembly model as how, when building a kitchen, you would assemble various components including kitchen cabinets, sink, appliances, counter top, and so on. The assembly model is independent of implementation language. An analogy would be, you don't care how and where the dishwasher is engineered, manufactured, and built, but rather focus on the features, functions, and durability.
As depicted in the following figure, an SCA-based application Order Handling System can be made up of one or many modules and hence one or many components. Components can be combined into composites, a logical construct. In the following figure, we can see that the Order Handling System is made up from two composites, an Order Processing Composite and a Third-Party Shipping Composite.
In WID, a composite can be compared to a Service Module, which in essence becomes the basic unit of deployment and administration in WPS or WESB (SCA runtime). A service module typically contains the following artifacts:
Ø  Module Definition
ü  An SCA-specification-defined deployment model for packaging components into a service module. In WID, the sca.module file contains the definition of the module.
ü  In the following figure, the Order Processing Composite and Third-Party Shipping Composite are the modules.
Ø  Service Components
ü  Each service component can be implemented in various ways (BPEL, Mediation Flow Component, State Machine, Java, and so on), specified by the implementation definition.
ü  Service components can invoke other service components or imports, defined in the current service module as defined by an appropriate reference.
ü  A component can have 1..N interfaces.
ü  Each service component definition can have zero or more references to other services.
ü  In the following figure, the Order Validation Component and Order Handling Component are the service components whose implementations are BPEL and state machine respectively.
ü  In WID, the service component definition is included in the <SERVICE_NAME>.component file.
Ø  Imports and Exports
ü  Allows SCA components in one module to invoke SCA components in other modules.
ü  A service module can have zero or more imports included with it.
ü  Imports have a name and a set of 1 . .N interfaces.
ü  A Binding attribute describes how the external service is bound to the current module.
ü  Once an import has been defined, other services within the module can reference the imported service as if it was a regular service component defined in the module.
ü  In the following figure, the Order Handling Component imports a component from the Third-Party Shipping Composite via a reference.
ü  In WID, import definition is included in an <IMPORT_NAME>.import file.
ü  Imports can use the following bindings, which can be remote or local:
·        SCA
·        Web service
·        HTTP
·        Messaging (JMS, MQ JMS, generic JMS, MQ)
·        Stateless session bean
·        EIS
ü  Allows SCA components in a module to expose their capabilities to components in other modules.
ü  In order to invoke any of the services in the order handling application by any client (SCA or non-SCA), the service must be exposed with an export.
ü  A service module can have zero or more exports included with it.
ü  Export components include a name and a target attribute.
ü  A Binding attribute describes how the service is bound externally.
ü  In the following figure, the Order Validation Component has an export named Order Validate Export.
ü  In WID, import definition is included in an <EXPORT_NAME>.export file.
ü  Exports binding can be:
·        SCA
·        Web service
·        HTTP
·        Messaging (JMS, MQ JMS, generic JMS, MQ)
·        Stateless session bean
·        EIS
Ø  References
ü  Inline
ü  Stand-alone
Ø  Interfaces, Business Objects, Java classes, and other components
In order to invoke any of the services in the Order Handling System by any client (SCA or non-SCA), the service must be exposed with an export. A service module can have zero or more imports included with it. An import is used to access services that are outside the current SCA module. Once an import has been defined, other within the module can reference the imported service as if it was a regular service component defined in the module.
As depicted in the following figure, the service module Order Processing Composite can have zero or more exports included with it. An export is used to expose a particular service to clients, outside the current SCA module. A service may also include a stand-alone references file that includes references to services in the module that can be used by SCA and non-SCA services.
An SCA service module is packaged and deployed to the native SCA container strategy provided by WPS. This capability allows a developer not to use any to generate runtime-specific artifacts prior to installing a module. Unlike the previous releases of WPS and WESB, with version 7.0 the native container provides greater performance improvements due to the elimination of ejbDeploy for standard SCA applications.
Service data objects
SCA gives us a universal model to define business services. The SDO provides the technology to represent a universal model for data that flows between components in an SCA. Each SCA component pass and exchange data with each other in a neutral fashion by passing SDOs. Data objects are the preferred form for data and metadata in SCA. The fundamental concept in the SDO architecture is the data object, a data structure that holds primitive typed data and/or other data objects. The data object also holds references to metadata that provide information about the data included in the data object.
SDOs allow the integration developer to focus on working with business artifacts. In fact, service data objects are transparent to the integration developer. They are defined by a service data object's Java Specification Request (JSR).
In the SDO programming model, data objects are represented by the commonj.sdo.DataObject Java interface definition. This interface includes method definitions that enable clients to get and set the properties associated with the DataObject. Another important concept in the SDO architecture is the data graph, a structure that encapsulates a set of data objects. From the top-level data object contained in the graph, all child data objects are reachable by traversing the references from the root data object. Another important feature included in the data graph is a change summary, which is used to log information about what data objects and properties in the graph have changed during processing. The WebSphere Process Server implements the SDO specification by way of business objects.
SCA components can exchange data by passing around business objects as shown. The following figure is a mindmap that summarizes the various concepts behind an SCA application.
Please take time to go through it and recollect some of the concepts explained in the previous sections.
Common business process implementation types
Some of the common implementation types of business process that can be implemented using WPS include:
Ø  GUI Intensive Process
ü  Navigational flow and data aggregation is controlled from a user interface layer rather than in a BPEL process in WPS.
ü  WPS is not involved in process navigation, but may be used to provide swiftly responding synchronous services.
ü  Use for cases where a GUI application performs the process orchestration or control.
Ø  Synchronous Transactional Process
ü  A slight extension to the GUI Intensive Process type. A collection of short-running BPEL processes provide real-time responses to graphical user interfaces or for transactional sub processes.
ü  Transactional and therefore, it must complete within the global timeout. No state is persisted by the process.
ü  Errors are typically translated for clarity and then passed back to the caller.
ü  Use for cases when you need high performance and the caller needs a response immediately.
Ø  Asynchronously Initiated Transactional Process
ü  The caller transaction is minimal and just makes a request, but does not wait for a response. The process is assured to occur at a later time in a separate transaction.
ü  The caller seeks feedback via notifications or e-mail.
ü  Error handling is more complex than a simple Synchronous Transactional Process, since the caller is no longer present to take action.
ü  Use for cases when you need high performance and the caller does not need a response immediately, but only an acknowledgement.
Ø  Briefly Persisted Process
ü  A special use of a long-running process, where the process completes relatively swiftly. The process lifespan is deliberately short (seconds, maybe minutes), such that process versioning issues can be avoided.
ü  The process must be designed to complete in a timely fashion, so no human tasks are allowed and error handling actions should be pushed out of the process. It may not receive in process events.
ü  Allows parallel processing, so it is good for aggregation. This is one of the most common motivations for this usage type.
ü  When choosing this pattern of business process place extra care and emphasis on exception handling to handle multi transaction scenarios
ü  A Synchronous Transactional Process is always preferable, if at all possible. For Briefly Persisted Processes, persistence adds a significant overhead and the error handling is much more complex.
ü  Use for cases where the process will take a long time (more than the runtime transaction timeout) and the process instance can be flushed through to enable simple maintenance.
Ø  Versioned Long-lived Process
ü  A true long-running process that will last a relatively long time (days, weeks, and so on). Process instances will always be present in the systems, so the complex issues of process versioning will be taken into account.
ü  Can contain human tasks and complex error handling, such as compensation.
ü  May receive in-process events, which need to contain sufficient information to be correlated with the existing process instance.
ü  Invocation typically does not provide a response and late binding techniques need to be well understood.
ü  Activities can be set to wait for manual intervention on error.
ü  Use for cases where the process will take a long time (more than the runtime transaction timeout) and the process contains external system interactions.
Ø  Task-Based Process
ü  Used to balance multiple tasks between a numbers of different users, possibly in different teams/departments.
ü  Necessitates long-lived processes and hence must consider process versioning issues.
ü  Allows progressive automation of tasks.
ü  This is a very broad category still and can be broken into four sub-types:
·        Structured Workflow
·        Case Handling
·        User Modeled Flows
·        Pageflow
ü  Used for cases where the process will take a long time (more than the runtime transaction timeout) and the process contains human interactions.
Conclusion
In this article we took a look at the fundamental SOA programming model concepts and understood how these concepts apply in the context of WID/ WPS/WESB.

continue reading

Designed By AMEER BASHA G