Developing a BPM Solution using MOSS and Nintex Workflow 2007 (Screencast)

In the following screen cast I have tried to prove the concept of the possibility of developing BPM solution using MOSS and Nintex Workflow 2007.

Kindly, find the screencast link below:

Screencast link

Resources:

I welcome anyone how wants to work on a BPM product using MOSS and Nintex, please send me your comments and ideas and let’s work together to achieve it.

Send to shokr.ahmed@gmail.com

I hope that helped

Ahmed

What questions should we ask before architecting a SharePoint solution?

In the last 6 months, I was doing a lot of SharePoint presales, architecting, planning and development, the thing that I have noticed that there is a lot of SharePoint guys is missing the some of the core fundamentals when dealing with MOSS solution.

Most of them thinks from a developer prospective only, so they focus on the functionality and ignore the other key elements of a MOSS solution success, that’s why from my point of view they face a lot of failed MOSS projects however they made a pretty cool job with the actual implementation.

OK, skip the lecturing thing and tell us what we missed :), that’s fine; the first thing you need to understand that your solution is not built on an island by itself, it’s a solution which will be functioning in an environment, so the first basic rule [Get familiar with the current environment].

For example, imagine that your are working on document management solution, so you can get to something like the following:

image   

From the simple diagram above, I was just thinking of the required functionality, so I had proposed the following:

  1. MOSS: document libraries, versioning, indexing, search, auditing, may be some workflows, audience management, records ,management, etc
  2. RMS: Rights Management Services
  3. OCR: scanning, text recognition, etc
  4. SQL Server: data storage

Although, this solution will satisfy the client’s functional needs but it doesn’t satisfy other categories of needs.

So, we can categorize the project needs into four main categories:

  1. Functional
  2. Environment
  3. Administration and Monitoring
  4. Ownership

Functional

Not everything is around developing new components, try to search for well known third party or open source components which will fill the required gaps in MOSS functionality or will give you a good boost instead of starting from scratch.

For example, if we have a very good MOSS team they should – at least – have the following ready:

  1. Very good OCR integrated with MOSS document libraries.
  2. Very good workflow tool to decrease the workflows development effort.
  3. Very good interface tool, custom grids, controls, etc.
  4. Very good tool for MOSS deployment, for that one we used to depend on a own developed framework :), but the field is open for any innovative ones.

Environment

Cab be broke down to:

  • Integration

What type of applications the client already have and the level of integration required.

Ex., some clients need the DMS to be integrated with their HR system and this is not clearly stated in the functional requirements.

  • Capacity planning

The current number of users who will use the system, the expected load on the system, peak hours and expected down time.

  • Required level of availability

What is the maximum HW utilization that we can get and the backup, restore, maintenance plans, also what about the minimum accepted down time.

  • Hardware

What is the current available HW and what is the best HW optimization which can be done, ex. Virtualization versus using actual HW

  • Licences and products edition

It is not about just proposing enterprise edition from everything, try to choose wisely and put justifications for every choice.

Administration and Monitoring

We should keep in mind the SharePoint and the IT administrators when we build a MOSS solution.

The basic need for these guys is to keep track of what is going on in the application, and these monitoring needs can be divided into three categories:

  • SharePoint related events

The SharePoint Usage Analysis and MOSS logs are great components in MOSS, however the level of details they provide is not enough for a successful monitor for a MOSS server.

Here, we can take the advantage of using System Center Operations Manager 2007 (SCOM), which provides a great detailed monitoring and reporting.

Definitely, we need SCOM as part of our solution.

  • Application related events

We should implement a very good designed error and logs reporting while developing our custom components, as the Administrator needs these information for better tracking on the application, and we need them for maintenance and troubleshooting.

Enterprise library logging framework is a very good idea to be put into consideration.

  • Users related events

Our system users need also a level of reporting, specially with Manager –> Employee approach, so we should think of some proper reporting from business prospective that helps our system users to keep track on what’s going on.

Ownership

Cost of Ownership, that sentence my manager kept telling me until it became essential part of my thinking 🙂

Most of our clients specially enterprise ones, care a lot about the fact that they need to take the full ownership of vendor custom made applications.

I have seen a lot of solutions fail because the client’s internal technical team was not able to handle and understand the solution.

For example, if we know that the client doesn’t have a good SharePoint administrator currently we have three options to solve this:

  • Put the need for a MOSS administrator as a prerequisite
  • Propose training on MOSS administration if we found that someone is there is capable of handling this
  • Or the most costly and last option to be taken is to provide most of the MOSS related administration tasks as a custom made component in our application and provide it in a way that will be very easy for any IT guy to handle [I remember once we had to do so 🙂 ]

So basically what I’m trying to say here is:

Try to fully understand the client’s needs from all prospective, remove the developer hat and try to see the big picture.

MOSS solutions is not about writing code, it’s about satisfying a customer’s need in a way that will achieve:

  1. Cost advantage – decrease the cost of productivity.
  2. Boost efficiency – people will be able to work more efficiently using our solution. 
  3. Resources utilization – The client have resources that are not utilize, our system will help in that, for example the client already have MOSS installed, but with the default installation, with minor development effort, we can convert it into something that everyone is using daily.

P.S. This is an open discussion post, so please tell me what do you think in the comments section below, and let’s make this article a very good foundation of taking our MOSS experience to the next level 🙂

I hope that helped

Ahmed

Connecting Oracle Database to Microsoft Office SharePoint Server 2007 – Concepts

Introduction

Microsoft Office SharePoint Server 2007 best definition is a framework build using SOA, to provide the needed functionality to build and connect line of business applications.

With the integration with SQL Server 2008 Analysis services, Integrations Services and Microsoft Office Excel Data Mining Add-on we can build Business Intelligence Solutions that relay on different data sources like Oracle Database.

Business Data Catalog

Business Data Catalog is a new business integration feature in Microsoft Office SharePoint Server 2007. It is a shared service and it enables Office SharePoint Server 2007 to surface business data from back-end server applications without any coding. Business Data Catalog bridges the gap between the portal site and your business applications and enables you to bring in key data from various business applications to Office SharePoint Server 2007 lists, Web Parts, search, user profiles, and custom applications.

Business Data Catalog provides built-in support for displaying data from databases and Web services. That is, you can use Business Data Catalog to display data from your SAP, Siebel, Oracle Database or other line-of-business (LOB) application via Web services or databases.

image

BDC enables this connection by defining data connection and application definition in the BDC metadata database, once the LOB application is registered and its connection is defined, then we can use this connection to display the required data on the MOSS lists, document libraries and web parts. 

Business Intelligence Enabled Approach

Microsoft introduce BI with the SQL Server Analysis Services, the role of SQL Server is to host the data warehouse info cube and provides the needed functionality for the data mining, OLAP and data retrieval.

image

As shown in the above diagram, in order to populate the SQL Server DWH database we need an ETL tool that will synchronize the changes from the Oracle Database on periodically manner.

After the data is synchronized in the DWH then the SSAS will analysis process it in the info cubes and make it available for reporting and data mining.

In the interface layer we can use the SQL Server 2008 Report Builder 2.0, Microsoft PerformancePoint Server 2007 and the Dashboard Designer to design and build professional reports, KPIs and scorecards.

All the reports, dashboards, KPIs and scorecards can be displayed on MOSS as the unified user interface using MOSS Report Viewer, Report Explorer, MOSS KPI lists and MOSS dashboards.

As an innovative way to help business users to build their own reports in an efficient and easy way Microsoft presents the Data Mining Add-on in Microsoft Excel.

In Excel normal business users can build their reports using common Excel functionality with the data connection to MS SQL Server 2008 Info cubes and the drag and drop functionality.

Note: the same entry is available on my blog on it.toolbox.com, See the entry on it.toolbox.com

I hope that helped.

Ahmed

Business Intelligence Solution Architecture using Microsoft Technologies

In the last two weeks, I was working on a POC and solution architecture for a client that has a Business Intelligence needs.

I can’t go so much in the details for confidentiality reasons :), but I’ll share a common architecture for a business intelligence solution.

First, to be able to follow up with this post, I suggest to go and search for the following common concepts:

  • Business Intelligence
  • ETL
  • EAI
  • Scorecards
  • KPIs
  • Info cubes
  • OLAP
  • Data marts
  • Data warehouse

I won’t speak so much in here on these concepts, because I’ll ISA in the following posts talk about the POC I had made for the client piece by piece with sample code 🙂

 

Solution Architecture

As you can see in the above image we got a lot of layers and technologies involved, of course not all these technologies and layers required all the time but its need come from the actual solution requirements and business needs.

Below is a very abstract description about each layer in the above diagram:

Presentation layer

Service as the web interface fro the BI solution, it’s a MOSS portal with the Report Center template.

We can use SSRS reports, PerformancePoint Server scorecards, KPI lists and Excel Services to provide the end user with interactive dashboard and BI scenarios. 

Also the SSRS and PerformancePoint Server serves as the core components in storing the report templates, rendering the reports  to the portal and design the reports itself.

We can use the report builder for the SSRS and the Dashboard designer for the PerformancePoint Server.

Business Intelligence layer

The OLAP, SSAS and SQL Server database serves as the BI and data analysis layer.

In this layer all the complex analysis, data warehouse activities and OLAP activities done to provide the multi dimension data to the above layers.

We can use Business Intelligence Development Studio to develop SSAS packages and databases.

Integration layer

Two things we should take care while investing time in this layer EAI and ETL.

For most of the scenarios and as a good practice too, that we use BizTalk for EAI and SSIS for ETL, that’s when we experience the true power of each technology.

We can use Visual Studio to develop both BT Orchestrations and SSIS Packages.

Database layer

SQL Server 2008 is a great tool and so much enhanced to be able to serve data warehousing and BI solutions.

As our data store and DBMS, it will connect the whole solution technologies and make them interact together.

Finally, as I said this was made for a quick POC for a client, so I’ll post in 3 or 4 posts piece by piece of my final solution and in each piece I’ll explain all the related concepts and technologies.

Thanks for my friend Debashish – the data warehousing expert – for his continues support and education 🙂

I hope that helped

Ahmed