Saturday, February 2, 2013

Power Your Word with SharePoint !


Enterprises invested in both Office 2013 and SharePoint 2013 can derive more business benefits from their investments. Availability of the new app development paradigm – Apps for Office & Apps for SharePoint opens doors for more business innovations & possibilities.

These new app models allows developers to leverage their existing web development skills such as HTML 5, JavaScript / jQuery etc.

Microsoft Word provides automation capability when it comes to checking for grammatical errors. Imagine, if the same can be extended for validating a documents against regulatory compliance – how beneficial it will be for those organizations like insurance companies where day in & day out they are involved in lots of documentations and underwritings ..more ..

Tuesday, November 6, 2012

Enterprise Storage optimization


For any Enterprise, even in the age of social computing, Email still remains as the primary medium of information sharing. It is source of information on current state of Business, communications with partners, customers etc.  It is also leveraged for sharing non-business related information.

Depending on the no. of employees, their daily activities, business transactions, the no.  of emails that are generated by them, storage requirements will grow. That too, if those emails are carrying business critical, heavy weight documents, storage requirements will still grow. Other factors that will impact storage requirements include no. of persons with whom a document is shared and no. of subsequent versions of that document before its final version is getting frozen.

Even if the Enterprises have governance mechanisms, IT policies ensuring the restrictive, optimized usage of emails, some of the business critical factors still demands increase in the per employee email storage quota and hence impacts storage requirements. Imagine a scenario where an Enterprise has 10,000 employees. Assume every employee generates 1 email per day with 1 MB average size of document. Total size of the content generated will be 10 GB / day.

Adding to these, imagine every employee shares his email with on an average with 10 other no. of employees. This will result in generation of the document copies, sizing 100 GB approximately.

Now you can visualize the impact of the Email system on the storage requirements.

Significant increase in the storage requirements will also impact the back office operational routines such as back-up / restore and it will also make things complex in DR planning for business continuity.

One solution which can be considered to tackle this problem is capability to minimize the no. of document copies that are generated & stored.

Imagine only these employees generate 1 MB of the document and the same copy will be shared with other employees. Based on our above mentioned scenario, storage requirement will get reduced by 100 GB

With the availability of Office 2013 and SharePoint 2013 from Microsoft, this capability is available now!

Site Mailbox – it leverages the combined power of Email storage capability of Exchange 2013 & Document storage capability of SharePoint 2013.

Instead of sending document as attachment in every email, he can save it in the Site mailbox. So that only one copy will exist; for the end users, they can still have the same experience as if they are accessing the document from the Email attachment.

Site mailboxes can be accessed by the users from the Outlook in a seamless manner, without compromising the native “Outlook” experience

In addition to storage optimization, Site Mailbox provides more benefits to an Enterprise …really more  !!….

Sunday, June 17, 2012

Flexibility through product customization - How Secured it is ?

When providing solutions based on the multiple products, the success of the solution depends on what level of OOB features of those products helps in addressing the business / functional needs and what level of flexibility those products offers in terms of customization.

Also, how those products help in addressing business needs is very important in terms of time-to-market through:

  • Capabilities for seamless integration with federated business partners through adapters (like what Microsoft BizTalk, & StreamInsight  have rich set of adapters minimizing the development time),
  • Partner ecosystem with solutions  (like what partners have solutions based  on SharePoint in addressing various business requirements such as document storage, DRM / IRM, BI etc)

 
In addition to above mentioned factors, success depends on how the products allow developer community in extending its capabilities to address complex techno-business requirements.

 
While allowing the developer community for customization, it is also very important how a product provides capabilities for the secured execution of those custom code blocks – at the same time, without affecting the performance of the application and without allowing the code blocks to block resources – CPU, RAM, Threads etc. – especially in the scenarios of “careless “/ malicious code blocks, bringing down the entire application execution environment.

 
SharePoint is one such product that allows developer community to address complex techno-business requirements and other needs of an Enterprise through extensive customization and also ensures reliability of the application through “Sandbox” – secured code execution environment.

 
In addition to secured code execution capability, for the developer community, it is a must for the availability of the sophisticated tools for carrying out post code engineering activities such as performance tuning, code profiling etc.  Microsoft development platform provides tools for carrying such activities on SharePoint customization code blocks that are marked for Sandbox environment

Wednesday, January 25, 2012


Service Modeling Realization

When we enable a platform / a set of capabilities for consumption through the enablement of custom development, some of the points to be considered for wider reach .

Wider reach means to provide flexibility such as facilitating development on heterogeneous platform through supporting interoperability, various communication protocols and data encoding formats.

  • Data encoding format – XML, JSON
  • Protocol – Http , Tcp-ip
  • Type of communication - Synchronous / Asynchronous communication
  • Consumption  type – Proxy objects, RESTful communication

In addition to this, other key infrastructure & administration related factors to be considered are:

  • Reliability – Data submitted is not lost. The infrastructure behind the service model should be reliable without losing any submitted messages that is submitted

  • Security  - Integration with the consumer’s security infrastructure

  • Performance – Of course, first & fire most requirement of any exposed services and will be governed by SLAs

  • Service Metering – very important especially in the “pay per use” model

  • Centralized Dashboard – for the consumers to have insight into logs & exceptions


Frist point in consideration in realizing a service model is to select a platform that has the potential to offer various required capabilities. For example, Windows Communication Foundation from Microsoft provides lots of options to provide flexibility such as :

  • Encoding – Plain text for interoperability, Binary to optimize performance, MTOM for large payloads
  • Channels – one way, Duplex , Request-Response, Streaming
  • WS-*
      • WS-Addressing – extra additions to SOAP headers which makes SOAP free from underlying transport protocol
      • WS-Security,WS-Trust,WS-SecureConversation
      • WS-ReliableMessaging
      • WS-Coordination , WS-AtomicTransaction
      • WS-Policy (for more dynamic features of a service), WS-Metadataexchange

So, for a successful realization of a Service Model, choosing a capable platform is very much important !

Thursday, October 27, 2011

Microsoft SharePoint and Agility

SharePoint is a becoming natural choice for enabling key capabilities of an Enterprise such as Collaboration, Social Computing, BI, Web Content Management, Document Management, Portals / web applications targeting both intranet & internet users etc. . Perception on SharePoint is gradually changing from a simple COTS product to very flexible platform. Especially the custom development & integration capabilities of SharePoint platform is a door opener for lots of opportunities. In fact, in some of the Enterprises, SharePoint is becoming the default development platform.

Recent research report from Forrester highlights that SharePoint is gaining very wide adoption in large organizations. Given that the capabilities of SharePoint can address most of the needs of an Enterprise, Enterprises which are planning to leverage the full potential of the SharePoint platform may end up in an IT portfolio where major portion will be solutions based on SharePoint. Hence, Enterprise Agility of those Enterprises will have more dependency on SharePoint.

Enterprise Agility of an Enterprise depends on its IT Portfolio. If the IT portfolio is based on the home grown solutions and COTS products which do not support agility, then Enterprise agility will be affected. Investments in COTS products can be maximized only if those products are customizable / supports wider custom development. Based on how “Testable” the “Customizable” parts of the COTS products of an IT portfolio, Enterprise will have impact on Maintainability, TCO and Agility.

True agility is considered to be achieved only when a change in business / functional requirement is achievable with minimal time – when you have a piece of code developed and if an automated unit testing capability can be leveraged to test that piece of code, then your overall time for development , testing & deployment will decrease.

Testability & loose coupling are 2 key paths to Agility. In SharePoint, when it comes to custom development, Web Parts are predominantly used to address business / functional needs. These Web Parts are “Testable” when they are built based on MVP pattern. These web parts can leverage Automated Unit Testing capabilities. These MVP based web parts are de-coupled from the environment, data source & UI. Hence they are unit testable through Mock objects

A combination of Microsoft’s PEX & Moles framework & VSTS 2010 can be used for performing automated unit tests on MVP based (Testable) web parts.

Loose coupling can be achieved through Service Locator pattern provided by SharePoint guidance from Microsoft Patterns & Practices – compass for the best practices adoption in SharePoint based development. When there is a change is the actual service provider, we can deploy that as a separate assembly and change can be enabled in the main application without re-compilation

So, the conclusion here is - Once a SharePoint based development is planned with these 2 things in mind – Testable & Loose coupling through MVP pattern based web parts to leverage Automated Unit Testing framework and Service Locator pattern respectively, time required to respond to changing business requirements will decrease and hence will have a positive impact on Enterprise Agility !

Sunday, April 17, 2011

CEP - CPU of an Enterprise ?

Can CEP can become a CPU of an Enterprise ?

Let us see first what is CEP


With the increasing competitiveness and changing market dynamics, Enterprises are looking for more innovative ways to do business. Lots of emerging capabilities are available for an Enterprise that could help it to keep an edge over its competitor through efficient operation of its business. One such capability is Complex Event Processing.

Even though “Agility” capability will help an Enterprise to drive its business in accordance with the changing market demands, “Real-time Analytics “will help an Enterprise to plan its business more accurately.

Complex Event Processing (CEP) helps an Enterprise to have the real-time analysis capability. CEP is suitable in the scenarios where there is a need to capture a very high volume of events in real-time to perform some analysis and take proactive measures / to make informed decisions. It include capturing more than one event, correlate them and extracting a “meaning” out of it.

Let’s look at this with an example from a lay man point of view. When a plane starts its flight from a source to destination, lots of its parameters such as latitude and longitude, altitude, speed, etc. will start changing continuously at a rapid rate

Here assume that it is configured to emit an event when it’s ground speed change from X miles / hour to X+ 200 miles / hour within a time period of 1 second; Also it is configured to emit an event when it’s altitude drops from some X meters to X-100 meters . These are 2 separate events. When you are able to co-relate these 2 events and extract a “meaning” out of it, it can be used to make a decision.

Say for example, when the altitude drops from 100 meters to 0 meters and its speed shoots up from X to X+200 miles / hour you can co-relate these 2 events and make a meaning out of it – something wrong. A plane’s speed may not shoot up when its altitude drops to zero and hence accordingly a “red alert” alarm can be triggered; Pilot can be warned. A CEP capability is required here to perform such type of processing.

This same type scenario can be applicable for the business / operational data of an Enterprise. As an Enterprise moves through days, weeks, months and quarters of its business, lots of it’s parameters will change and lots of events can be published; Co-relating a no. of individual, isolated events published across an Enterprise will help in understanding on what is actually happening in the system and plan accordingly.

Similar to what an ESB was having a place in Enterprise IT ecosystem; CEP could also find an equal position. When it comes to enabling an Enterprise with a CEP capability, multiple options are available from the platform / product vendors such as Microsoft, IBM, Oracle etc.

Let's see more on technology option for implementing CEP in an Enterprise in the coming posts.

Wednesday, January 26, 2011

Follow the SUN Model - Global Workflow


Recently I had an opportunity to do an architectural analysis for enabling the “follow the SUN” business model for an Enterprise. Since the application is based on Microsoft Sharepoint 2010, analysis include evaluating various deployment options available in SharePoint platform, different WAN optimizations solutions & constraints and also performing cost benefit exercise.

Scenario involved users accessing a web based system from different geographical locations & in different time zones, carrying various parts of the same business process.

The primary options available for this are:

  • Option #1 - Central Farm with users around the world
  • Option #2 - Central farm with regional SharePoint deployments

Each of these options carries its own merits & demerits.

Option #1

 In this option, all the layers of the application (Web & App) will be deployed in the central location including the DB layer (which holds all the databases and data pertaining to users of all regional locations). The central location is chosen where the Enterprise has its IT support hub.

This is suited in the where bandwidths & latencies between WAN connections provide a reasonable experience.

Merits
·         Minimal Total Cost of Operations
·         Optimized IT operations maintenance
·         Zero data / content latency which will enable efficient load sharing model
Demerits
·         There could a impact on the page response / performance for the other regional users in the scenarios of high network latency & underperforming WAN



Option #2

In this option, the Web & App layers will be deployed in the central location with regional deployments of Data layers. To enable the users of different regional locations to carry out workflow activities, regional databases should be kept mutually synchronized.  

This is suited in the scenarios where regional users most likely to access local data & data on the day-to-day basis.

Merits
·         Optimized performance for regional editors when they access data & content  of their local regional enquiries
Demerits
·         There could be latency on the availability of data & content to other regional users.
·         Increases complexity and operations cost of the overall solution
·         Requires greater organizational coordination to build effective governance of content that is authored in multiple geographic locations



Let us see what could be the best option and why

In case of option #1, sometimes it may require real-time replication which will significantly affect OLTP performance. This will also become more complicated when the volume of data is huge.

In case of option #2, even though constraints related to network & bandwidth may affect the performance when the system is accessed by the users in different geographical locations especially when they access data from remote locations, it can be solved through the various WAN optimization solutions. From the cost perspective, investment in WAN optimization solutions is less that investing in servers farms across different geographical locations.

Also, TCO will be high in option #2 than in option #1 because of the need of deployment of IT support professionals across different regions in the earlier case.

From the security perspective, regional deployments will increase complexity.

This qualitative analysis helps us to conclude that option #1 looks more suitable than option #2.

But still it is to be backed by the metrics of actual POC results.

When it comes to option #1, Data layer will become a bottleneck. Since the Data layer includes data for all the regions, a request from a particular region need to traverse way all the data of other regions. Unless a strategy is  adopted for its scalability and efficient data retrieval & updation, it will affect the performance of the entire system.

On performing a detailed analysis and evaluating various options, Data Dependant Routing emerged as the best suitable option.

We will see more on Data Dependant Routing.