We are using IBM Maximo for one of our projects.
Now we decided to improve the user interface (currently it's using the standard UI components provided by the Maximo system), but we want to move forward and create our own web pages (interface) using the Maximo engine as the business layer behind it .
Does anybody have experience using Maximo as the business layer and then other stuffs 开发者_运维问答(like ASP.Net pages or ...) as the presentation layer ?
There are mainly two options available to you:
Access Maximo business layer (MBOs) via RMI
Expose functionality that you are interested in as a web service in Maximo
The RMI route gives you the most flexibility as you get access to (almost) all functionality that Maximo UI has access to. You can open MboSets, manipulate Mbos in them, change attribute values in the Mbos, save you changes in one transaction, etc. There are a few notes to consider here: a) RMI interface is very chatty, you need to make sure that your custom UI is on the same network with Maximo, b) if application security is enabled in Maximo you will have to jump through hoops to connect to Maximo, c) if Maximo is on a cluster you may not achieve load balancing (as you may have to connect to specific application servers), d) you will need RMI stubs in your custom UI and therefore you will need to keep businessobjects.jar in sync with Maximo's if it changes.
Web services route lets you overcome most of RMI limitations (if done right it will be less chatty than RMI, application security is not an issue, automatic benefit from cluster's ability to balance load and recover from failures, no need to maintain RMI stubs in sync, no need to open additional FTP ports) but it requires more upfront work as you cannot simply open an MboSet on the server and pass it to the client as you could with RMI.
I found going web services way offers more benefits then RMI, but your case maybe different. One of the Maximo connected applications that I built is a web application designed along the MVC (model-view-controller) design guidelines where Maximo acts as a model and exposes a Standard Web Service with a bunch of methods, one per transaction type. Views are hidden JSP pages utilizing JSTL and servlets acting as Controllers passing data between Model (Maximo) and JSPs (Views).
I also implemented my own web service client based on Apache HTTP Client (Apache HTTP Client).
With Maximo 7.5 you can use a REST interface to interact with Maximo.
REST API on Info Center
Developer Works Article
You could set up the Maximo's external interfaces and have your web application built on top. It looks like a lot of work unless you want to build only a small web app that focuses on a single area.
Adding to what ilcavero suggested, in our organization we have created a few smaller, standalone apps focused on specific functionality. These are built in .NET and consume Maximo web services.
Typically we have built 'query' type web services for populating drop down lists and form validation, then we have 'Notify' services to update the system.
You could probably also use some .NET to Java bridge and make RMI calls which may make it easier to access more of the native Maximo functionality.
精彩评论