OpenSpan Blogzone

Archive for the ‘desktop’ Category

Trial

Wed ,15/07/2009
We’ve just announced a new way to try out the OpenSpan software using a cloud based service from Amazon. You can register here and you’ll be given a machine in the cloud that is preconfigured with a the OpenSpan platform and a set of tutorials and finished solutions.

It’s a simple, easy way to try our award winning software. Try it for free for 30 days at http://www.openspan.com/Members/TrialIndex.php

How quickly can you integrate to Salesforce.com?

Mon ,13/07/2009
OpenSpan has built a component that will allow you to integrate to Salesforce in under 5 minutes without writing a single line of code! That’s a big difference compared to the “normal” integration path people take – starting your IDE, creating an empty project, configuring which libraries are required takes at least 5 minutes, then you’ve got to integrate the API in to your existing applications.

At OpenSpan we’ve created a component that wraps the web services API provided by Salesforce.com. This means that you can now integrate your existing applications in to the market leading cloud based CRM system, with only a few clicks.

SF.com Properties.png

The main data object is configured with the User ID and Password (which is encrypted) of your Salesforce.com API login – these can be statically assigned or dynamically added at runtime.

After assigning your credentials it’s simply a matter of picking the data table you wish to interact with from the drop down list. You have access to all the standard data tables as well as any custom ones that you may have configured in your Salesforce setup. Now your ready to query the data held in the table – this is done using the Salesforce.com query language which is very similar to SQL.

The data object has a number helper methods to add a record, update a record, delete a record or simply select one. By dragging one of these methods on to an automation you will have access to your Salesforce.com data. The returned data object can also be pushed directly in to a data table for easy of integration in to a Windows form application control such as a DataGrid.

SF.com Automation.png

As well as this, there are is another component called GetRecords which can used to build a query visually, without having to understand the Salesforce.com query language. This component is built dynamically based upon the data table and the schema held within Salesforce.com, so not only does it work with the standard schema it also matches your schema!

In summary, OpenSpan provides a simple to use drag and drop interface that allows you to integrate virtually any application without writing any code. The platform is extensible and allows components to be added to the toolbox simply by using the IComponent interface to wrap any API, as explained in this post using Salesforce.com as an example. For more information and to try OpenSpan and our Salesforce components, you can register for a trial instance on our website here


Accessible and Reliable

Sun ,28/06/2009

Recently, Eric asked me to speak at one of our company meetings about the future of the OpenSpan platform. He didn’t want me to speak about releases or features, but rather about the platform as a whole. What is our vision for the OpenSpan platform?

This is actually a topic I think a lot about. For every feature we design and every release we plan, I ask the question: “How will this push the platform forward?” One of the things I think we’ve done very well at OpenSpan is to stay true to the principles that led us to create OpenSpan in the first place. When Stephen and I first started planning the platform we each brought two sets of distinct experiences to the table.

Stephen had spent the past several years creating visual programming environments. He believed strongly that the barrier that prevented more business analysts from programming was not the concepts of programming but rather the syntax of programming. Ultimately, many of the concepts programmers use everyday, conditions and loops in particular, are familiar to every advanced Excel or Access user. Other concepts, such as types, casts, threads and objects are either unnecessary for many tasks or presented in such a way as to be impenetrable to the lay person. Stephen was committed to providing an environment where business users could develop or participate in the development of automations.

I had spent the past few years creating custom desktop automation solutions for enterprise customers with diverse application requirements. I had become painstakingly familiar with the available APIs: COM libraries for Lotus Notes, Internet Explorer, Office, Siebel and others; MSAA and windows functions for Win32 applications; HLLAPI, EHLLAPI, etc. for mainframe emulators. I had also become painfully familiar with the limitations of these APIs: narrow or incomplete APIs; little or no support for events; frustratingly inconsistent implementations of supposedly standard APIs. My experiences had convinced me that there was a better way to automate these applications.

In our very first face to face conversation, Stephen and I decided two things: OpenSpan would be accessible to both developers and non-developers and OpenSpan would be completely reliable. If you clicked a button with OpenSpan, it would click every time.

I would be lying if I claimed that we knew that these principles would lead us to our current automation engine and injection library. Some ideas like controls, targets and match rules evolved quickly. Other ideas like asynchronous links and keys evolved in response to customer requirements. Whatever happened, though, we stayed true to our principles. When we reached the limits of message hooks and accessibility interfaces, we scrapped them and wrote an injection and hooking library from the ground up. When we encountered a control we didn’t support, we reverse engineered the platform to get at the real object. When a public interface didn’t supply the events we needed, we made our own with some well placed hooks.

Over time, some new principles evolved:

  1. A button is a button is a button. In other words, hide the platform implementation details. Every control in OpenSpan should act the same regardless of the actual platform.
  2. Never hide functionality. If a platform provides functionality that another platform does not provide, expose it. A great example of this is HTML controls. They follow the same pattern as other OpenSpan controls, but add extra properties to manipulate the inner HTML, set attributes, etc.
  3. Always talk to the object. Pretty quickly it became apparent that every time we tried to take a shortcut, it burned us. GDI hooking. Sucks. MSAA. Sucks. Message hooks. Suck. There’s always something to tweak or modify or re-implement for each environment. The only API you can rely on is the one the original developer of the application used. So what if it’s not exposed? Sure, it takes more time initially, but we only need to do it once and then it works every time. I’m very proud of the fact that OpenSpan implementations never need engineers on site to develop integrations. If there is a control we don’t support, we write a translator and publish it for all of our customers. One and done.
  4. Know everything about the object. It’s not enough to talk to the object. We know when an object is created. We know when an object is destroyed. We intercept events before the object receives them. ‘Nuff said.
  5. There is no such thing as too advanced. Early on we had a debate about threading. Should we hide threading from our users? Should the platform make threading decisions for them? Ultimately, we decided not to hide threading because doing so would inevitably limit our users. We made threading accessible by making it easy to visualize. Do people screw themselves up with threading? Sure, but people burn down their house with turkey fryers every year too. That doesn’t mean fried turkey doesn’t taste good.
  6. Developers do not always want to drag and drop. This one is pretty obvious. Even though we want the platform to be accessible to non-developers, we want it to be just as accessible to developers. For developers, sometimes it’s just easier to write code. And when it is easier, there’s nothing more frustrating than not being able to. From the very beginning, we made sure that developers could write C# and VB .NET scripts and use their own .NET components in automations.

So what is our vision for the OpenSpan platform?
OpenSpan was built from the ground up to be a accessible and reliable desktop automation platform. Those two simple words, accessible and reliable, have directly guided the evolution of our most valuable IP: automation and injection. Our vision is to extend those two technologies into new areas. We are actively working on new ways to expose them to developers including our upcoming Visual Studio plug-in, Lotus Expeditor container and translator SDK. We are also working to apply these technologies in new environments. In the future, we will move beyond the desktop to provide automation and injection on the server. When we do, you can be sure it will be just as accessible and reliable as our current platform.

Where should I put my desktop?

Mon ,06/04/2009
It may sound like an odd question but in reality you don’t need to have your desktop on the machine that’s physically in front of you anymore. The cloud based desktop has arrived or has it?

As the idea of the “cloud” expands, having your desktop hosted in a data centre comes closer to reality. In fact there is already a few service offerings available today, that will allow me to host any number of machines at the flick of a switch, for next to nothing. EC2 is the name of such a service that is part of the Amazon Web Services umbrella.

It allows you to switch on and off machines, using images you’ve created, so that they have all your required applications installed and ready to go. You have access to persistent storage, that’s backed up and distributed across multiple sites and you no longer need to worry about your machine becoming unstable because every time you boot it up it launches from the base image.

If you need to make changes to the base image, for example you need to install a new product or update an existing application, you can overwrite the base image or better still just create a new image. This way if the platform becomes unstable, you simple stop the instance and start using the old image and you’ve rolled back any changes – perfect!

But best of all this machine can change it’s hardware profile depending on the task at hand. If you’re doing some video editing and need lots of memory/CPU then you can boot the image on a higher spec machine. For day to day use, you may just use the smaller hardware profile and the beauty of it is you only pay for what you use.

At the end of the day, I switch the virtual machine off and I stop paying for it. It’s very similar to a using a hire car when they limit your milage. You don’t pay while the car is stopped, likewise you don’t pay for hosting a machine that’s not running (except for a small disk usage charge but this is really tiny).

The uses for this are endless – to the extent that you could consider using this as a method of hosting multiple clients development environments. Build the base image, launch the number of instances required (one for each developer) and you’re done – an instant place to being work.

Go and check out Amazon for more information as well as IBM, Microsoft and Salesfore.com – they all offer similar services.

Connecting Windows Applications to the iPhone

Tue ,24/03/2009

How do you connect a closed Windows application to a killer device such as the iPhone? Most would normally expect to have to alter the existing application adding APIs or even worse be forced down an upgrade path which costs 10 times more than you have available and takes 18 months to rollout.

With the launch of the OpenSpan Virtual Broker, you can now add Web Service wrappers to virtually any application and host them in a virtual (or physical if you like) environment. These services can then be accessed from anywhere, such as your portal environment (for customer self service) or directly from your other internal applications, even those hosted on a mobile device like the iPhone.

It’s a simple drag and drop process to build a set of automations that integration my application(s) and then with the click of a button I can expose this functionality as a Web Service for any client to integrate.

Here at OpenSpan, we’ve just built a simple iPhone applications which calls a hosted service that allows a user to look-up contact information contained within a Windows fat client CRM system. If we’d wanted to create an API it would have involved getting the CRM vendor to upgrade our application, costing massive amounts and no doubt taking an age to be delivered.

This set of automations were built inside 1 day with the iPhone application taking a similar amount of time to put together – compared with a traditional approach – which one would you pick in today’s market?

The iPhone application will be available soon in the App Store – I’ll send out a link once it’s live. In the meantime, if you want to be able to extend the life of those mission critical Windows applications, give OpenSpan a call.

Desktop Service Enablement: What’s the Point?

Sun ,23/03/2008

As many of you know, OpenSpan began making a big push into SOA technologies last year. We even came up with a new marketing slogan: “OpenSpan the last mile of SOA.” While we’ve always had the capacity to consume web services, we wanted to add the ability to expose our automations as services. This culminated in the announcement last week of the OpenSpan Platform SOA Desktop Edition, which allows you to create an automation within or across applications and then expose that automation as a service deployed on the desktop (we call this desktop service enablement). While many of our customers are very excited about this new capability, I have been asked by others “that’s cool but what’s the point?”

I have to admit this reaction makes me want to jump up and down screaming: “What’s the point! What’s the point! Are you kidding! This isn’t just cool! This is totally freaking awesome!”

But… after taking a deep breath, I realize that this is really our fault for not explaining ourselves clearly. As anyone who’s read my blog knows, I think the software industry has treated the desktop environment like some provincial backwater for a quite a while now. Sure you need it to keep your empire running but you sure don’t want to go there if you can avoid it. Even though most of us spend most of our working lives in the Windows environment, the desktop is just the place everyone’s applications happen to end up. All of the cool stuff happens on the server.

Gradually, that opinion seems to be changing. ClickOnce, JNLP, WPF, Adobe Flex and other emerging desktop technologies are using the web as a delivery mechanism while using the power of the desktop to create rich interactive applications for users. Even Web 2.0 and AJAX are examples of this trend. The server delivers the HTML and JavaScript for the site once. After the initial delivery, all of the presentation and interaction logic runs on the desktop, only calling the server when new data is required. However, one thing hasn’t changed, once these applications get to the desktop they are still running in silos, usually isolated from the rest of the desktop for security purposes and unable to interact with the desktop environment.

OpenSpan desktop service enablement is the platform that allows these applications to integrate with the rest of the desktop. With OpenSpan services exposed at the desktop, these applications can now call services on the local machine just like they would their own backend services. What if your AJAX portal could now display not just data from your backend, but from your soft phone running on the desktop, the host system with your billing data, and your Java email application? What if your users could click a link in the portal and generate calendar invitation in Outlook? What if they could click another link and start an automated billing process?

OpenSpan desktop service enablement allows you to integrate any server delivered application with the rest of your desktop. Now, instead of using OpenSpan windows forms, you can create a user interface using the technology of your choice but still use OpenSpan to pull and push data, invoke automations and respond to events. Instead of being a “dumb” application that OpenSpan automates and monitors, your application can be a “smart” application that interacts and controls OpenSpan. That’s not just cool, that’s totally freaking awesome.

Why “Do It on the Desktop?”

Tue ,26/02/2008

When we first started OpenSpan we didn’t really have any marketing. When it came time to produce some glossies, we all sat around the table trying to come up with a good catch phrase. We kicked around things like “Empowering Your Enterprise Applications” and “A Remote Control for Your Enterprise Applications.” Sometime during that discussion I suggested “Do It on the Desktop.” It was short, funny and memorable. Plus, it would make a great trade show t-shirt. Mostly, however, it summed up our philosophy really well.

Unlike most of our competitors, our technology started on the desktop and was designed for the desktop. From the beginning we did more than just automate applications. We added functionality. We modified behavior. We responded to events. We saw the desktop as the forgotten foundation of the enterprise. Every knowledge worker spends most of their day in front of a screen, moving windows around, entering data, cutting and pasting. We knew we could make those users more productive if we just made their applications work together.

In the end, we didn’t make “Do It on the Desktop” our catch phrase. Since then we’ve gotten a marketing department and they’ve come up with some great catch phrases like “The Last Mile of SOA” and “The New Enterprise Desktop.” For the technology organization, however, our catch phrase will always be “Do It on the Desktop.” I’m still hoping for some t-shirts.

Pharmacy Without Prescription:
Buy clomid online
Buy zovirax online
Buy cipro online
Buy nexium online
Buy diflucan online
Buy lasix online
Buy neurontin online
Buy synthroid online
Buy flagyl online
Buy nolvadex online