After hours of staring at log files and trying everything known to man to get my BES server functioning properly, I finally found a fix.
It was as simple as re-creating the user in eDirectory/GroupWise and then adding the user again in BES. It was that easy?! BLAH!
I recently purchased a Blackberry 8703e from Sprint and so far it is an awesome device. This is the first blackberry that I’ve ever owned and I can’t believe it took me this long to get one! Unfortunately I have been having some big issues while trying to get BES to communicate with my device. I have a GroupWise system which BES talks with to synchronize my e-mail, calendar, contacts, etc,. The problem I am running into is BES not pushing new changes to my device. Anything from the device goes through BES to GroupWise just fine. Right now I’m stuck, so when I find the solution I will definitely post it here.
Check out this thread I started where my problem will hopefully get solved: http://www.blackberryforums.com/bes-groupwise-discussion/78389-bes-server-device-not-pushing.html
[tags]blackberry, groupwise, bes, blackberry enterprise server[/tags]
Recently I’ve been playing around with Open Enterprise Server again and I found this old article I wrote about integrating eDirectory with wireless auth.
The goal of this article is to allow you to have your wireless access protected by WPA and have users authenticate to eDirectory for access to the wireless network.
WPA (http://en.wikipedia.org/wiki/Wi-Fi_Protected_Access) is a wireless authentication standard used for controlling access to wireless networks. WPA can operate in a pre-shared key mode(router and client both know a secret password), or authentication can take place with a RADIUS server.
Open source software has been around for a while in the enterprise server markets, but not in the desktop markets. In any given business you will most likely find Windows based desktops, with a small minority probably having Mac computers. The problem that I see with this is that when you start to employ thousands of Windows machines, your costs for licensing are insane. But with all the new user-friendly distributions of Linux, such as Ubuntu or OpenSUSE, it seems that it might be time to start evaluating some of these free desktop operating systems for use in the enterprise.
One of the main things that is very important for a desktop is that it be very easy to manage remotely. This means designing policies for desktops so that you can control them and manage them in the way you want. In Windows this is known as Group Policy. It integrates amazingly well into the desktop if you are running an Active Directory domain(on a Windows server of course). The limitations here are that there are no current free solutions to run a compliant Active Directory(2003 based) domain. Samba is the closest thing to this that you can use, but it has only limited support for domains, as it is based on old Windows NT domains. The upcoming Samba4 is supposed to implement a lot of the newer features, but it is no where near close to a stable release. It also seems that the complication of the implementation of a Windows Server 2003 domain server might just be too much to ask for.
This brings me into wanting to deploy Linux-based operating systems onto desktops. Unfortunately I’m not aware of any management products for Linux desktops that replicates the functionality of group policy. I know that OpenSUSE has its own solution, based on some of Novell’s work on ZENworks, but ZENworks doesn’t seem as feature complete on linux than its counterpart on Windows.
I think that there are many good applications for Linux and that it can be a very powerful, user-friendly desktop OS, but I don’t think it’s ready for prime time in the enterprise desktop environment.
Can anybody shed some light about Linux on desktops in the enterprise?
Recently, I was researching a more efficient way for creating a TCP/IP server to handle multiple clients at once. I have used select() in the past, and that was probably the best thing I could find. I eventually came up with kqueue(), which is a way to asynchronously handle multiple sockets(or file descriptors). From what I read, it seemed to be a very efficient way to handle many clients. The only problem was that there was little information available for how to implement kqueue() in a sockets environment. Due to the lack of information I found, I thought it would be nice to share what I have learned.
I have created 2 classes that you can inherit, to add kqueue() functionality to your server program. The classes are ServerSocket and SocketClient. The ServerSocket class is the heart of the server, it handles all the clients, and does all the hard kqueue() stuff for you. The SocketClient class is what you inherit so that you can control the different socket events. Here are the methods you should implement when inheriting ServerSocket and SocketClient.
SocketClient *createClient(); - You MUST implement this method. It is a pure virtual function in the base class. Basically for this method, you just need to return a class that inherits from SocketClient. For example:
SocketClient: The following methods are all optional, but you probably want to implement them, or else what is the point?
void OnConnect(); - Called when client connects void OnDisconnect(); - Called when client disconnects void OnReceiveData(unsigned char *buffer, int length); - Called when data has been received void OnSendError(int errorNumber); - Called if there was an error sending data
When using the SocketClient class, there are also a few methods you can call, which are:
void sendData(unsigned char *buffer, int length); - Send buffer to client void disconnectClient(); - Disconnect the client
With these classes you should be able to get a basic kqueue() server running. It is relatively limited right now, but still has the core features in it. I will probably extend it more as I start using it more myself.
Here is a zip file with the classes, and a demo of extending the 2 classes:
Below is an excerpt from SocketClientDemo.cpp that shows how to use the classes: