I'm creating a overview of TopDesk. I've wanted to ask some of you what the best way would be to get this done.
At the end the application will be set on a big screen so everyone could see how many topdesk calls we have.
I've thought of the following options:
Web based. (PHP or ASP/.NET)
Java application
Could someone get me started on this one?
TOPdesk 4.x is a webapplication, and it already has functionality to create overviews and reports of this type of information. So ideally you could just use the existing functionality and display it on a big screen.
You could als contact TOPdesk themselves for additional information. If what you want cannot be done with the standard features, there is a chance that they (for some things) can also provide bespoke work solutions.
Full disclosure: I worked for TOPdesk a few years ago
If you are talking about TOPdesk 3.x without TOPdesk Application Server (TAS), then things will be a bit harder.
Maybe you could contact our Support department? They can probably answer your question: http://www.topdesk.com/en/support/overview/
#Coulton TOPdesk is available as a web based application as well as a local installation.
Related
So here's the situation:
I recently took over responsibility for a Vaadin8 WebApplication from a former colleague who left the company, meaning I will now be responsible for maintenance and also for developing any enhancements the customer may want to have.
The application basically displays a form in which the user can enter his / her personal data which, upon clicking "Submit", will be sent back to the application server which then stores the data in a backend database.
Since the customer is planning on using this application in environments were WiFi connectivity may be very bad / unreliable (e.g. large fairs with thousands of people accessing the WiFi simultaneously) they have requested me to come up with a way the application could be used offline. This means that the appliaction should be available with or without internet connection, and the data should be stored locally until a connection is reestablished.
Now, as far as I understand Vaadin (I am by no means a Vaadin expert, last time I briefly touched Vaadin was 2 years ago), offline operation is not really what Vaadin is meant to do, not leastly because of its server-side architecture.
My question, therefore, would be if there is any good way to achieve the mentioned requirements.
While googling around a bit, I came across Vaadin Touchkit, which more or less seems to do what I want. However, to me (haven't worked with it before) it looks like it's a technology that is pretty deeply integrated into the application, making it difficult for me to get an estimation on the effort it would take to "convert" the existing app to a "touchkit-app".
Any help and / or suggestions on what technologies to look at would be greatly appreciated.
Now, as far as I understand Vaadin (I am by no means a Vaadin expert, last time I briefly touched Vaadin was 2 years ago), offline operation is not really what Vaadin is meant to do, not leastly because of its server-side architecture.
Yes, vanilla Vaadin with Java is stateful architecture, hence offline operation is not supported out of the box.
While googling around a bit, I came across Vaadin Touchkit, which more or less seems to do what I want.
Yes, Touchkit 5 with Vaadin 8 is meant for creating mobile applications. Note, if you have target to create one application that scales between desktop and mobile, including offline support, Touchkit is not very well suited to that purpose. Touchkit it works ok when you want to create two Vaadin UI applications, one for desktop and one for mobile. Those can share some common business logic and backend logic.
Any help and / or suggestions on what technologies to look at would be greatly appreciated.
Our newest version of framework Vaadin 14 is based on different client side tech stack. It does not yet have support for complex offline mode logic. It however have support for simple offline page, which can be customized.
Documentation is here: https://vaadin.com/docs/v13/flow/pwa/tutorial-pwa-offline.html
There is another discussion see how you can try to customize it:
PWA offline mode not loading from cache on mobile browsers
Vaadin 15+ onwards there has been possibility to create views also using TypeScript. One of the primary use cases for this is to be able to create views that are stateless by nature and are easier to support offline as well. There is a chapter about creating offline views in Vaadin's documentation.
After five and a half years full-time work on a product ranking engine project, which revolves around a 64,839 line applet, the browser companies have seen fit to dump applets.
At this point I am in no position to convert the applet to another language (unless I get a huge injection of funds to hire a team of programmers). My partner is not going to support me for another two years.
I know the questions are rather vague and I should be keeping up with the latest tech, however I've had chronic earaches for 14 years that affect memory and concentration, so programming is difficult enough without trying to keep up with the latest developments in software as well. The reason I am asking for advice is that I don't want to make another monumental screw up.
Question 1: My understanding is that Java Web Start launches the application, but it then cannot communicate back to the JSF web page any more (JSF2.0). Is there any way of getting around this?
Question 2: Can anyone suggest any other options other than re-coding the whole thing?
Question 3: Is it likely that applets will be altered to use the latest plugin format or are they gone for good? Does anyone have any inside information on this?
Overview of the applet's requirements:
The applet allows a user to customise some or all of the product ranking criteria, which has been preset by a panel of knowledgeable experts, to their own particular needs. The criteria is stored and edited via graphs (custom painted jPanels).
The ranking criteria can be altered entirely using the mouse (to change the graph shapes), though some values can be entered using the keyboard if the user wishes. Once customised, the applet is then used to submit the changes to the ranking engine server.
It is also used to allow third party experts to alter the ranking criteria to create their own product usage category ranking criteria. The third party expert can then place links on their own web site that will allow users to rank products using the third party expert's own ranking criteria. This allows anyone to create their own ranking criteria for use by others.
The applet uses a plugin bean that is also used in a standalone Java editor application, which is used to create a product usage ranking criteria file from scratch (the editor is 77,710 lines of code, though 61,257 lines of that is the plugin which is also used in the applet). This means most likely having to convert the editor as well, as the two are inextricably linked. The plugin basically is the applet and also the editor.
The plugin can capture, edit and store ranking criteria for virtually anything the human brain can rank. Thanks to the graphs, it can use any attribute that the brain uses, and for which we have no formal system of measurement; hence why the applet is so damn big.
Your question is probably too broad for Stack Overflow, but I'll give a brief response.
Java Web Start
Java Web Start is probably the best route for you. This technology is basically a convenient way for a user to obtain, install, and run a Java desktop app. The web browser is only used to initially download a small XML file describing your app and where to get the app. The Java Network Launching Protocol (JNLP) defines these pieces of information stored in that XML file. Your app will be downloaded from a server, and saved to the local machine. A Java Runtime Environment (JRE) can be downloaded and installed if need be as part of the process.
By default the app runs within a security sandbox similar to Java Applets. But you can sign your app and define security protocols to break out of some of those restrictions including making network connections.
The bulk of your programming would remain intact. The app is still pure Java, running in a JVM. You would need to do a bit of reprogramming to be a desktop app rather than packaged as an Applet. And you would have to learn about easing those sandbox restrictions. And your app will have a menu bar of its own as a full-fledged app, so you may want to take advantage of that. But the guts of your app would remain the same.
Over the years, Sun & Oracle have put efforts into improving Java Web Start. Unfortunately it came too late after Java-on-the-desktop had lost too much mind-share. And Swing never got the overhaul it so desperately needed. So Java Web Start never went big-time. But Java Web Start does work as advertised, so give it a try.
While there were some security issues years ago, I believe they have been resolved long ago. The many infamous security problems with Java were largely involving the web browser plugins bridging between browsers and the Java JRE; those problems do not affect Java Web Start (though you should do your own research to confirm).
For the general public, Java Web Start may be too much to ask of new, anonymous, and less-motivated users. For a commercial product with a user-base of eager customers, it may the perfect solution for you. I suggest you do some more study, read the Wikipedia page, study the Oracle technology page, look at the Tutorial, read this overview by John Zukowski that includes an example of network (making socket connection to time.nist.gov), and so on.
Vaadin
The Vaadin framework is an open-source free-of-cost professional user-interface development framework that uses pure Java to run your app on a server in a Java Servlet web container while automatically generating a user-interface using standard web technologies (HTTP, HTML, CSS, JavaScript, GWT, WebSocket, etc.) for presentation within a regular web browser (Firefox, Chrome, Safari, IE, Edge, etc.). As a graybeard, I think of Vaadin as an X Window System for the new millennium: The user interacts with screen widgets on their local computer but the business logic of the app is executing on the server, and the server is updating the remote UI as a result of that business logic executing.
Vaadin is not yet-another-web-templating system. Instead, your app is written in pure Java. No need for you to learn the alphabet-soup of web technologies listed above. Vaadin takes care of that for you, auto-magically. You say in Java “I want a label, then a field, and a button” and Vaadin makes those appear in the web browser.
Using Vaadin would allow you to retain your Java code for the business logic part. But you would need to re-write the user-interface parts to use Vaadin widgets instead of Swing widgets. This would not be so terribly difficult as Vaadin was inspired by the general style of Swing, defining layouts governed by layout managers in which you place your various widgets (fields, labels, buttons, etc.).
Vaadin can make very professional business-oriented apps that feel almost like desktop business apps. Tip: I prefer the Reindeer theme for business apps over the newer Valo theme.
But you mentioned some kind of free-form drawing canvas in your Swing applet. That may be a sticking point. I do not know of such a widget for use within a Vaadin app. I am not saying there is no such thing, I just do not know of any. There are slider widgets that may useful, but I don't clearly understand your needs in that regard.
Initially i was php programmer and was using joomla to build websites .
I could easily build good websites in joomla in few days.
I was learning java spring hibernate for last three months and now i have build simple user registration logins and members area using spring MVC , hibernate annotation etc.
Now i want to ask that whether from now onwards should i use spring MVC to build site just because i have learned it or its good for me in future. Because i still feel that the same site can be build in few days in php
Is it the case that in future i can also come on same level as php that i can build simple site in java in few days as well or no matter what experience i have java still is going to take longer than php always
Can any java CMS make my life easier because i want to say good bye to php.
i mean if i want to make just 5 page portfolio website can build in java cms in 1-2 days
If by "simple website" you mean a normal page with categories, articles and some navigation (i.e. not a web-application), then yes: Building that from the grounds up with Java + Spring + Hibernate is probably overkill (i.e. those are low-level tools, you'd have to build a lot yourself). I'd stick with the tools built for this specific task, namely some kind of CMS system.
If you want to bring "some Java" into your day-to-day job, then you might want to try looking into a Java CMS system.
You should, of course, use the appropriate tools for the job. Spring MVC is not appropriate if you are re-implementing functionality that has already been robustly provided by an existing tool (eg. Joomla etc.).
Given that much of the 'interactive' part of many websites can now be hosted elsewhere (eg. Disqus for comments and so on), you may not need a dynamic website at all and could host the site on one of the many cloud services for static content. This has the advantage that your performance is elastic, and 'cost per user' can be vanishingly low.
I am working on a Java program that has bunch of classes consisting of dialog boxes, JFrames, etc.
Can someone guide me where I can learn how to transform it to an 'applet' kind of. ( I don't even know if applet is the right word)
Like for example, can it be accessible through the internet browser. If I somehow make a domain www.myjavaprogram2011.com it would be nice if it will take it straight to the java program I coded. I see this as anyone can come to this website and use that program.
Thanks!
You may want to look into Jars for distribution or probably more aptly Java Web Start as this allows Clients to be downloaded and run.
Java Applets isn't your best bet as there's lots of security permissions that you need to worry about as well as your jars needs to be signed (especially for client/server data access).
Try using Java Web Start, it will allow you to launch fully-featured application from the Web Browser. Oracle has tutorials on deployment of JWS, etc.
Sounds you're looking for some kind of RIA technology. Have a look at JavaFX, though it's not mature yet IMHO.
Ah, but then, if you already have a Swing application then this isn't an option probably.
I've been introduced to this wonderful project, xhtmlrenderer; the flying saucer project. Problem is, is that where I work, it's strictly a microsoft shop and I haven't done any java development since college, and a smidge of WebSphere a few years back.
I was wondering what it takes these days to do java development? I set up a quick proof of concept to see if I could do what I wanted with this project and it works great, however, I used jnbridge whose licenses are a bit on the expensive side but Visual Studio was what I had handy and got the job done with an hour of finagling.
I'm wondering what it take to do java development these days? Are servlets still the norm? Is Apache where I should start looking to get a small web server up and running? Is Eclipse/Ganymede the IDE to use?
Essentially what I want to do is pass a url to the service and have it spit back out a PDF. Just on vacation right now, and stuck on dial up, but can't stop thinking about this.
Thought I'd post these thoughts now to see if I can get a jump start on next weeks work.
Eclipse is certainly the IDE on no budget, NetBeans is also free. I prefer IDEA from Intellij, but for something that sounds like such a side part of your project, it probably isn't worth the money.
In terms of servlets, etc., it really depends on the archetecture/scalability you are looking for.
If you are looking for something that needs to run as a small web interface, then something like Jetty or Tomcat with a basic servlet should be fine.
You might be looking at something invoked via the command line, although starting a JVM for every conversion is going to be too heavy for all but the most trivial usages, but a little program that monitors a directory and pulls stuff out of it for the conversion may be what you need.
If you give more details about the archetecture and how you are planing to use it you could get some more specific advice.
In general .NET and Java development are quite similar (.NET was started to compete directly with Java, after all), but the real practical difference is that a lot of the .NET environment is kind of provided to you on a silver platter. You need a web container, you have IIS, you need a database, you have MS-SQL, You need an IDE, you have Visual Studio, etc., etc. In Java development, these are all choices to be made, there isn't really a default obvious good choice for a lot of things - there are many competitors. That can create a larger curve for a Microsoft shop than you are expecting.
Java's not all that different, although generics add some excitement; PDF with iText is fairly straightforward; and the IDE world is pretty much the same as ever. Eclipse and Netbeans are common, there are several others, and real programmers still use EMACS.
Apache is pretty generic, but with servlets in mind you might think about Tomcat.
If you want a small enough web server, you can always use an embedded Jetty. If you need the full services of Tomcat, it's also available. For Java development, I use Eclipse for an IDE. Not only is it free, but its support of refactoring is ahead of Visual Studio. Actually, if you used the WebSphere development environment, then Eclipse will be very familiar.
Consider sneaking in IKVM (http://www.ikvm.net/) as it allows you to use Java components in a .NET environment.