Archive for the ‘Uncategorized’ Category

Exchange Server 2010: Mobile Messaging

Friday, April 30th, 2010

When Exchange Server 2007 was released, mobile messaging was at best in its adolescence. Most mobile messaging users at that time were signed up with the BlackBerry service as the only viable option for enterprise level mobile messaging (34 million subscribers). Today, as we see so much with modern technology, people seem to be unable to live without getting their e-mail on their phone. So let’s see what Exchange Server 2010 now brings to the table.

One of the things that I like the most is that Exchange now is able to automatically synchronize with mobile devices over the cellular signal. Of course this is expected for messages, but Exchange also syncs up calendar items and contacts to make sure that users always has the most up to date information. Taking this even further, Exchange Server 2010 also gives users access to unified messaging features, allowing them to access their work voice mail from the mail application, and use speech-to-text voice mail preview the voice mail messages. Using Exchange ActiveSync over the air, you can also now see free/busy information in real time when checking a contact’s calendar availability allowing you to schedule meetings on the fly.

The mobile client also now is able to search the user’s entire mailbox for specific messages. This is cool because the typical user will only want to store their most recent few hundred messages at most on the device (so don’t run out of storage space). With Exchange ActiveSync, the search is sent from the mobile device to the server, where the search is performed, and then the results are returned to the phone.

Now to take advantage of all the new mobile messaging features, the users must be using a device running Windows Mobile 6.1 or later. All the features are automatically available to the users without any additional installation or configuration once Exchange 2010 is deployed in the organization.

Exchange 2010 Server Roles

Monday, April 12th, 2010

Exchange server roles were introduced three years ago with Exchange Server 2007 as a way to group specific Exchange management tasks together often on separate dedicated servers. Think of Exchange Server roles as similar to the Windows Server server roles, you CAN run all the roles on the same server, but generally it is not a good idea in anything other than the smallest deployments. For example, if you download the Hyper-V Evaluation VHD for Exchange 2010 testing, that server has all the roles installed on a single virtual machine.

The server role groups a set of features and components which perform specific functions in the messaging infrastructure. By using server roles you are able to reduce the attack surface of the Exchange Server and allows you to deploy and customize Exchange to fit your business goals and needs.  The Exchange Server 2010 server roles are as follows:

  • Mailbox Server: This is the host server for all mailbox and public folder databases. Address lists and offline address books are also generated and maintained on the Mailbox server. The server indexes all the databases and provides the ability to search across multiple mailboxes and Public folders. The Mailbox server also enforces messaging records management and retention policies for the organization.
  • Client Access Server: The CAS is basically the communication gateway between the messaging client and the mailbox. The server hosts the client protocols for mail access including POP3, IMAP4, HTTPS, Outlook Anywhere, the Availability service, and the Auto-discover service.
  • Unified Messaging Server: Unified Messaging basically refers to the marriage between e-mail and the telephone system. This allows you to access your voice mail through your email client, and allows you to access your e-mail through your telephone (system can read your email to you). Users can also receive faxes through this integration.
  • Hub Transport Server: The Hub Transport server is the router for the Exchange organization. This handles all mail flow inside the organization, applies transport rules, applies journaling policies, and delivers messages to the recipient.
  • Edge Transport Server: This server is your protective layer between the internal messaging environment and the outside world. Anti-spam and Antivirus scanning take place on the Edge Transport server. As such, this server is typically placed on a perimeter network with a firewall on either side of it, meaning a firewall between the Internet and the perimeter and a firewall between the perimeter and the company network.

Exchange 2010 Deployment Assistant

Thursday, April 1st, 2010

As I’ve been working through some of the new Exchange 2010 material recently, I came across the Exchange 2010 Deployment Assistant. This tool is also called ExDeploy, which if you remember working with Exchange 2003 is the same name as the Deployment Tool from that version. So this is not exactly a new idea, but let’s take a look at what they put together for Exchange 2010.

The Exchange 2010 Deployment Assistant is a web based tool that basically gathers information about your environment and uses that information to create a customized checklist detailing the procedures that will help to simplify your Exchange 2010 deployment.

To access the Exchange 2010 Deployment Assistant, go to the following web site:
http://technet.microsoft.com/en-us/exdeploy2010/default.asp

On the home page, you will choose one of four options:

  • Upgrade from Exchange 2003
  • Upgrade from Exchange 2007
  • Upgrade from Exchange 2003 & 2007
  • New installation of Exchange 2010

Just to see how detailed the checklist is, let’s explore the Upgrade from Exchange 2003 & 2007 option. On the first page, we are asked three questions:

  1. Are you running a disjointed namespace?
  2. Are you planning to deploy an Exchange 2010 Edge Transport server role?
  3. Are you planning to deploy an Exchange 2010 Unified Messaging server role?

Now the Assistant doesn’t expect you to be an expert at all things Exchange (though a little knowledge goes a long way) so each question can be expanded to show a full explanation of why the topic is important during the Exchange deployment. So for these questions, I’m answering No, Yes, No.

Surprisingly, the Deployment Assistant is able to create a checklist based on just the answers to these three questions. The checklist include the following steps along with detained explanations on what to do along the way:

  • Confirm prequisties steps are done (stuff like making sure all the installation minimum requirments are satisfied on the existing Exchange Servers and in Active Directory).
  • Install the Client Access server role (insert the disk, run through the installation wizard).
  • Add digital certificates on the Client Access server (to secure external access to Exchange, including an exportable private key in X.509 format).
  • Enable Outlook Anywhare (allowing remote users to access their mail without them needing to VPN into the network).
  • Configure OAB and Web Services virtual directories (allowing Outlook Anywhere clients to discover and automatically connect to Exchange 2010).
  • Configure settings on virtual directories (used for Autodiscover, ActiveSync, OWA, Exchange Control Panel, PowerShell, Exchange Web Services, and public folders).
  • Install the Hub Transport server role (responsible for mail flow).
  • Configure a legacy host name (to allow coexistance with Exchange 2003 and 2007).
  • Install the Mailbox server role (host for mailbox and public folder databases).
  • Change the OAB generation server (for creating and updating the OAB).
  • Install the Edge Transport server role (anti-spam and antivirus filtering, and applies messaging and security policies).
  • Subscribe the Edge Transport server (enables internet mail flow).
  • Move mailboxes from Exchange 2003 or Exchange 2007 to Exchange 2010 (self explanatory, but be aware that users cannot send or receive email while the mailbox is being moved so this should only be performed when would otherwise be sleeping).
  • Post-installation tasks (just a list of items to check on each server such as making sure that the servers have been activated with a valid product key).

And that is the complete upgrade path. Seems pretty easy. What I like about this checklists is that it can be used directly because it only lists the step needed for your specific environment. When working through many of the Deployment whitepapers, you need to determine whether many of the steps are relevant to your situation. Using the Exchange Server Deployment Assisstant reduces or removes this problem.

Intel’s New i7 Processor for Business

Wednesday, March 31st, 2010

I just purchased a new laptop for my son who is graduating this spring. The laptop uses the new Intel i5 chip, the i7 chip version was nearly $500 more. He absolutely loves the laptop and has commented several times on how fast it runs, especially compared with the old Centrino laptop he has used up to now.

This got me thinking about possibly purchasing one of the new i7 desktops for development. Wondering what the difference is between the i5 and i7, I went straight to the Intel website to find out.

According to Intel the new features that set the i7 apart from the i5 (and other processors) include faster clock speeds, 4 cores capable of running 8 threads simultaneously (6 and 12 respectively on the i7 Extreme), and intelligent Intel Turbo Boost technology. All of this combines to make the i7 a premier candidate for 3D gamers and multimedia applications. That’s great for the gamers, who tend to tax processors more than most businesses by the way. But, how do these features translate to our world of business and development work?

Four cores double the processing capabilities and provide extra speed for multi-threaded applications. If you use a computer with the i7 for virtualization, it means you can run more virtual machines before the system becomes noticeably taxed. In my case, it is typical to have several virtual machines running to simulate a network environment for development. Added to this are the additional resources required to run Microsoft Word, Microsoft PowerPoint, and/or Camtasia. I have frequently struggled to eke out that last little bit of performance with all of these running.

This brings me to the Intel Turbo Boost Technology. The i5 and i7 processors include this intelligent speed boosting technology. These processors constantly monitor resource usage and dynamically increase the processor speed when needed. The converse is also true. The processor decreases speed when the demands on it are light. When the speed decreases, power consumption also decreases. So, when we are running multiple virtual machines or several instances of SQL Server 2008, the processor can boost itself to a higher speed if all of the applications require processing time, and conserve energy when only one or two of them are running.

Hyper-Threading enables each processor core to act like two cores by running up to two threads when necessary. The technology ensures that at each thread runs during the pause, or down times for the other thread to maximize each clock cycle.

One last feature that impresses me is Application Targeted Accelerators. Application Targeted Accelerators are special fixed-function additions to the processor that handle specific duties outside of the mainstream core processing. The applications that will benefit the most include graphics, video encoding and processing, 3-D imaging, gaming (really?), string and text processing, CRC checking, lexing, regular expression evaluation, virus scanning and intrusion detection.

Another significant feature is the enhanced vPro technologies. I think I will save that for a future blog.

Oracle to SQL: Part 2

Wednesday, March 31st, 2010

In my previous post, we looked at the first steps to accessing Oracle data in SQL Server: creating a Replication Administrative Schema User, and then granting the Replication Administrative Schema user SELECT permissions on the tables you want to migrate to SQL Server.

Next, you need to install the Oracle client networking software and the Oracle OLE DB provider on the SQL Server Distributor, so that the Distributor can make connections to the Oracle Publisher. You should install the most recent version of the Oracle client software. You may choose to install different options depending on your needs, but these are the steps that I followed when I installed the software.

I chose the Administrator option to ensure all the components I needed were installed. The Oracle Universal Installer will guide you through the rest of the steps to install the client software. I also installed the networking software which didn’t start automatically after I installed the client software. You can start this wizard by navigating to Start | All Programs | Oracle – OraClient11g_home1 | Configuration and Migration Tools | Net Configuration Assistant.

When I opened the Oracle Net Configuration Assistant, I chose the Local Net Service Name configuration option.

To access an Oracle database across the network you use a net service name. The net service name is usually the global database name. On the Net Service Name Configuration, Service Name page, you need to enter this name. I selected the option to use TCP to communicate with the database over the network. On the Net Service Configuration, TCP/IP Protocol page, you need to enter the name of your Oracle server, and you can change the port number if you want, but I kept the default.

On the Net Service Name Configuration, Test page, you should perform a test. When I performed this test, I got an error. To get around the error, I had to change the login to the Replication Administrative Schema user I created. Then, the test succeeded.

For the rest of the wizard, I accepted the defaults, and then restarted the computer.

After completing the wizard, there are a few more steps to migrate Oracle data to the SQL Server, which I will talk about in my next post.

Oracle to SQL: Part 1

Wednesday, March 31st, 2010

I started working on a simple migration of Oracle data to SQL Server and had a hard time finding a single document explaining the entire process. Having almost no experience with Oracle, any steps that involved Oracle took me a long time to complete. So here are the steps that I followed.

First, you need to run a script to create a Replication Administrative Schema User. There is a script that is provided when you install SQL Server 2008. It is located at <drive>:\\Program Files\Microsoft SQL Server\<InstanceName>\MSSQL\Install\oracleadmin.sql. You need to copy this script to the Oracle server. In this example, I copied the script to the root of the C drive. Then you need to run the script using sqlplus. Here are the steps to run it using sqlplus on a Windows Server 2008 R2 server with Oracle installed.

  1. Open a Command Prompt.
  2. Type sqlplus.
  3. Logon with an account with DBA privileges on the Oracle server.
  4. Run the script by typing @ and then the path to the script in quotes. For my example this would be @”c:\oracleadmin.sql”.
  5. You will be prompted for a name and password for the new user. Also, you will be prompted for the default tablespace.

Next, you need to give the Replication Administrative Schema User you just created SELECT permissions on the tables you want to access in SQL Server.

You can grant the SELECT permissions in the Database Control console.

  1. On the Oracle server, you need to login to the Database Control with a user that has DBA permissions.
  2. Click on the Server tab. Under Security, click Users.
  3. Select the user you created, and then click Edit.
  4. Click on the Object Privileges tab. In the Select Object Type list, select Table, and then click Add.
  5. Under Select Table Objects, click the flashlight icon.
  6. In the Schema list, select a schema.
  7. Click Go.
  8. Select the tables you want to be able to access in SQL Server.
  9. Under Available Privileges, click SELECT, and then click Move.
  10. Click OK, and then click Apply.

The next steps are performed on the SQL Server machine. I will discuss these steps in my next post.

It’s Part of SQL Server 2008 R2?

Friday, March 5th, 2010

SQL Server 2008 R2 includes some impressive new features and functions. But, when you run setup they are nowhere to be found. Included in the list are the new StreamInsight, PowerPivot (sort of), and Master Data Services. Where are these features and why are they not included in the setup wizard?

Except for PowerPivot for SharePoint, the features are in their own distribution folders on the setup DVD. StreamInsight is in the StreamInsight folder and Master Data Services is in the MasterDataServices folder. PowerPivot for SharePoint is actually included in the setup wizard, but you need to know where to look. More on that later.

To answer the question as to why StreamInsight and Master Data Services are not part of the setup we need to look at the big picture as Microsoft defines it. Microsoft has decided to migrate all data management and analysis applications under a single umbrella and that umbrella is their flagship database, SQL Server 2008 R2. This is much like what they are doing with SharePoint by including PerformancePoint as a feature beginning with SharePoint 2010.

The thinking is that creating a comprehensive data management suite is simpler if the components are marketed as a single platform. Not only does this make sense logistically, it makes sense financially. Instead of socking companies with more fees as they continue to build their data management infrastructure, Microsoft has rolled many of their previous offerings into the SQL Server 2008 R2 platform. Companies now benefit financially by no longer being required to fork out thousands of dollars for each of the features that they want to implement. Rather than forking out thousands of dollars for each application, they can purchase the appropriate edition of SQL Server and find everything they need.

I mention this because StreamInsight, in particular, is not a SQL Server based product. StreamInsight sits outside of the SQL Server resource pool and performs Complex Event Processing on incoming data streams. Designed to handled massive volumes of data in memory, StreamInsight enables a company to create processes that scan the incoming data streams and discard or redirect the data based criteria written in a .NET compliant language and using LINQ.

StreamInsight can use SQL Server based data tables to hold static data used for comparison purposes. It can also pass selected data through and ouput adapter to SQL Server for storage. Because StreamInsight runs against memory based data, it can process the queries without the I/O overhead required by a traditional database server.

Master Data Services is another application included with SQL Server 2008 R2. Master Data Services does store data in SQL Server. However, the processing it does is not a pure database or data warehouse function. Master Data Services (MDS) enables and organization to gather multiple copies of significant master data together, merge and standardize the data, and then send it back out the original applications. Those applications then contain a consistent and accurate representation of the common data. A previous blog contains a more detailed discussion of what constitutes master data so I will not go into that here.

Finally, we have the new PowerPivot for SharePoint. PowerPivot for SharePoint is a new addition to SQL Server Analysis Services in SQL Server 2008 R2. Microsoft created the SharePoint add-in to enable users to create, share, and manipulate PowerPivot workbooks in concert with PowerPivot for Excel 2010. The only way to install PowerPivot for SharePoint is to perform a SQL Server Analysis Services installation with SharePoint integration. After selecting SharePoint integration, the wizard walks through the essential configuration tasks for PowerPivot. A standard Analysis Services installation does not include PowerPivot. For a more in depth discussion of PowerPivot for SharePoint and PowerPivot for Excel please see my previous blogs.

By combining all of these features into SQL Server 2008 R2, Microsoft is proving even more that they are committed to improving the way businesses handle data without requiring excessive investments. I am sure that there is even more to come and that the next release of SQL Server will continue this trend of managing data where ever it is so that companies can continue to gain ground in managing and analyzing business critical data.

SQL Server Reporting Services on Windows Server 2008 R2

Friday, March 5th, 2010

In the tradition of the entertainment awards season, I want to thank Microsoft for taking IIS out of the equation with SQL Server 2008 Reporting Services. That made installation and configuration of Reporting Services much simpler. For those who began working with Reporting Services 2008, this is the first version with a dedicated web server. The main advantage is simplified configuration without worries about the impact on IIS and the web applications that depend upon it.

SQL Server 2005 Reporting Services, however, does depend upon IIS to manage and share reports. This works very well with Windows Server 2003 and IIS 6.x. If you need to install the 2005 version of Reporting Services on Windows Server 2008 R2 you will need to pay special attention to the IIS installation. This version of Reporting Services is not fully compatible with IIS 7.5, which is provided with the operating system.

I recently needed to get Reporting Service 2005 installed on Windows Server 2008 R2 and quickly ran into my first issue. No matter how hard I tried, I could not get the Reporting Services to show up as a selection during setup. After doing some research, I found that the IIS 6 components of IIS 7.5 are required for Reporting Services. Most of the blogs and articles simply indicated that adding IIS 6.0 Management Compatibility would fix that. However, the problem still existed.

After reading many articles and literally days of following the recommendations, I finally stumbled upon an article located at http://support.microsoft.com/kb/938245 with all of the answers I needed. It seems that IIS 6.0 compatibility is not the only thing required.

The most common services and features are automatically included when you install the IIS 7.5 role on Windows Server 2008 and Windows Server 2008 R2. It turns out there are a few more features that Reporting Services 2005 requires. The first one we have already mentioned: IIS 6.0 Management Compatibility. When you select this feature, make sure that all of the sub-features are selected.

Moving up to the Common HTTP Features section, you will notice that not all of the sub-features are selected. The HTTP Redirection and WebDAV Publishing are not selected for installation. HTTP Redirection is required so make sure to install it. The WebDAV Publishing feature is not required by Reporting Services 2005.

In the Application Development section, select the ASP.NET option.

The Windows Authentication option is a required security feature. Check Windows Authentication under the Security section.

If a dialog appears to tell you that other features are required as you make these selections, click OK to install those features.

After installing the new role features is complete, go to the Services control panel and confirm that the World Wide Web Publishing Service is set to start automatically, and is running.

Now you can run the SQL Server 2005 setup and install Reporting Services. When installing Reporting Services, go ahead and select the configuration option for standalone or SharePoint integration. Setup will walk you through the configuration process and you are now ready to go.

Note that this is how to install SQL Server 2005 Reporting Services 64-bit version. If you need to install the 32-bit version on Windows Server 2008, take a look at the Microsoft Knowledge Base article at http://support.microsoft.com/kb/934162/ for details.

SQL Server 2008 R2 Master Data Services

Friday, March 5th, 2010

In the past few weeks, I have had the opportunity to look at Microsoft’s new Master Data Management offering. This being a new area for me, I was very interested in the concept and did a bit of research to try to understand the ins and outs of Master Data Management, or MDM.

My understanding of the purpose of Master Data Management is the creation of a central repository for the most important data. This repository and its stewards are then responsible for maintaining the data in a consistent and current state for use by the originating systems. Essentially, MDM is the process of creating a single version of the truth for vital data and making sure that all systems using that data share that single version.

What I found was that managing master data is a much more detailed and evolutionary process than I would have imagined. For starters, each organization must determine what they consider master data. For some organizations, customer or product data will play a major role in MDM. These may not be as important to include for other organizations. The basic criteria for master data are that the data must be relatively static in nature, common to multiple systems, and it should not include transactional data.

Customer data is one of the most common collections of data in many MDM solutions. However, managing this data outside of the originating application may not be as important to an organization that has a transient customer base, or where the data resides in a single system and location.

Product data is another common element in MDM systems. Most companies deal with a static collection of products or services and may need to track and manage that data for use within several systems. However, product data is of no use as a master data element if the organization is an auction house where the products will change rapidly based on what is available at any given point of time.

Sales data is one of the least common data collections included in master data. Most of the time this data is considered transactional in nature. This is true for most organizations that produce invoices and collect payment in a short timeframe. For organizations that carry long-term sales contracts, this data becomes a good candidate for master data. The overall state of the entities remains static with periodic changes to balances.

So how do you decide what to include in an MDM solution? Here are some basic questions to ask about each candidate data set for master data.

  1. Is the data spread across multiple systems and/or locations? If so, it is a sure bet that each data set holds some common data with their own unique twist on the how it is maintained and ultimately looks. Remember to look places outside the mainstream applications for additional sets of this data. That includes checking individual computers for special purpose databases, spreadsheets and lists used for marketing campaigns and other analysis.
  2. Does the data remain reasonably static? Reasonably static data is data that experiences little to know change over a pre-determined period of time. Again, customer data where the address, phone number, or name may occasionally change is a good candidate.
  3. Does the volume of data justify the effort? If you sell no more than 10 products or services, or have only three customers, don’t bother with that data. The overall benefit of maintaining it out of the originating system, or systems, is very low when compared to the effort involved.
  4. Most importantly, is the data significant to the operation? If the data is frequently referenced for reporting or other operations, it may benefit the company to create and maintain the data in a consistent format to push back into the originating systems.

This is blog only scratches the surface of what to include in a MDM solution. With all of this considered, it is most important to start small and grow from there. Select at least two related data sets to include at the beginning and grow your solution as you learn what does and does not work.

Exchange Server 2010 Evaluation

Monday, March 1st, 2010

For several years now, Microsoft has been focused on offering multiple evaluation paths for trying out new software. The traditional software trial is available where you download a timebombed version of the software, install it on your own hardware, and hopefully have no major issues. For this release, there are three additional options which should make software evaluation easier.

First is the Virtual Experience. With the Virtual Experience, you are basically set up with a user account in the Microsoft Unified Communications Virtual Experience. In this trial, you can work with Outlook Web Access and Office Communicator 2007 R2 from the user perspective.

The next option is the Virtual Hard Drive experience (this is my favorite route). The Virtual Hard Drive is a fully configured Exchange Server 2010 server with a populated Active Directory in the Contoso.com domain. The Virtual Hard Drive runs on any Hyper-V capable server.

The third option is to test drive Exchange Server 2010 using Microsoft Online Services. This sets up a 30 trial account for Microsoft Online Services, allowing you to create users and access Exchange, Communications Server, Office Live Meeting, and SharePoint online.