GlassFish Help Wanted Welcome to the Help Wanted page! If you are a new GlassFish developer and wish to contribute code, please consider joining one of the projects listed below. Also, see the Student Network wiki page where students and faculty from universities across the globe can find software projects to participate in, and where Project Engineers can find students and faculty interested in contributing to their project. See the Participation Process for more info on the process.
Project Details GlassFish v3 Plugins Leverage the Hands-on-Lab for reference. Examples:
- Plug in the ability to configure open source projects via the admin console.
Monitor something (via JMX). Perhaps use AJAX for live update of HTTP hits or something.
- Pull in the RSS feed of the Update Center via a plugin.
Submitted by: John Clingan End To End Blueprint Sample Application Showcasing Web Technologies Develop a sample application that show cases the use of various technologies for building the next generation web applications and how best to use the various technologies like jMaki, Phobos, JAX-RS, JRuby, JSF etc to build a scalable web 2.0 application. The sample should produce modular pieces of code that can then be reused. Submitted by: Rajiv Mordani Medium Enterprise Prototype Using AS v2 Come up with a paper and develop prototype on Deployment Architecture for medium size enterprises using GlassFish V2. Submitted by: Sreenivas Munnangi DAS/Cluster/Failover Prototype Come up with a prototype to facilitate Domain Administration Server fail over for GlassFish in a cluster environment. Technologies Involved & Learning Objectives: The GlassFish Application Server administration and its usability is highly acclaimed by the developer community. This is made possible by employing innovative architecture and design. The administrative infrastructure built on these principles provides support for front end administration thru GUI (Graphical User Interface), CLI (Command Line Interface), AMX (Application Server Management API) and Custom Administartion through Custom MBeans. Refer to this blog to learn more about GlassFish. The intern is expected to learn Java EE Technology and its administration in general and specifically the area of his chosen interest based on the above. How many hours: ~100 hrs. Submitted by: Sreenivas Munnangi Rich Client Web Browser In Java Goals: 1. completely robust Ajax automated testing capability. 2. NetBeans needs an HTML rendering facility that is better than what's currently available in core Java. The goal of the Webclient project is to provide a browser-neutral Java API to enable Java applications and signed Java applets to access generic web-browsing capability. The capabilities include, but are not limited to: web content rendering, navigation, document history logging, progress notification, and web-content caching. The project does not deal with web authoring. Ed has this working with mozilla XULRunner on Win32 and Mac OS X. The College Grad Project could go several ways. 1. re-activate the embedding of XULRunner on Solaris and/or GNU/Linux. 2. Add another browser such as Safari or Internet Explorer. Skills: Java, C++ and Make. Submitted by: Ed Burns Webservices Security Performance Paper The goal of the project is to prepare WS Security performance comparison chart involving various WS Implementations from SUN,AXIS,Oracle,IBM,WSO2,BEA,Microsoft,Novell. This would require either developing or modifying existing benchmark applications. Running the benchmarks on various SUN and X86 machines with and without crypto accelerators. Submitted by: Venu Webcast On Security Features In METRO The goal of this project is to learn about various security features, advantages that METRO provides. Prepare a Webcast and demonstrate how to benefit from these features. Submitted by: Venu Security Openid Realm For GlassFish Write a GlassFish realm which uses OpenSSo or any other framework to allow web applications to embed openid authentication in them. Submitted by: Harsha RA 196 Provider For CAS CAS provides an open source solution to Single Sign On. And 196 provides a mechanism to plugin a message authentication mechanism. The goal of this project is to provide a 196 AuthProvider for HttpServlet Profile. Submitted by: Shing Wai Chan Tool For JavaEE Security Analysis In a recent discussion, it was decided to turn off the security manager by default in PE ( http://anybodys.sfbay/j2ee/logs/asarch/0501.html ) and in the discussion it was mentioned it would be interesting (make user experience much better) if we could determine all the security permissions required for an application (via static source-code or byte analysis or any such mechanism) and suggest that to a deployer so that at some later point, the deployer could know the permissions that must be granted to the app if it is to be deployed in an environment controlled by a security manager. The fact that applications are now typically being developed without a securitymanager, has created a later stage (i.e. deployment time) need for a utility that can determine what permissions an app will require if it is to run under a security manager. Such an application would help the deployer from having to parse through source or get the required security permission list from module developers prior to deploying an application in an appserver where a security manager is present. This would be an interesting academic project and a definite glassfish-extra possibility. The implementation details are yet to be worked out worst case: source code analysis and search for SecurityManager.checkPermission in the closure of the application classes No InterWiki reference defined in properties for Wiki called worst case!) Some comments from Ron earlier, on the project idea: "It could be quite powerful if we were to integrate both analysis and the granting of required permissions within our netbeans development environment. Such a project could also complement the AM integration that is occurring via the OpenSSO initiative. It would be useful to be able to apply such analysis to the appserver code itself both to ensure that it remains capable of running with a security manager, and to get a better handle on the privileges needed by the various subsystems. In an appserver context, we would also need to be able to do a better job of isolating app code from container code; for there to be a clear benefit to running with a security manager. This could be accomplished by identifying all the unprotected places in the appserver, that encapsulate (via doPriv) privileges, and developing a method and policy model for guarding these blocks. Estimated time commitment:150-200 Hours Specific deliverables:
- An application that would infer security permissions required for a Java EE application
- Integrate the analysis from the above application and the granting of required permissions for that application in GlassFish from within NetBeans.
- Analyze application server codebase and identify unprotected places and develop a method and policy model for guarding such blocks.
Technologies that the student will be working with and expected to learn over the course of the project: Java EE and Java SE Security. Submitted by: Ron Monzillo and Sivakumar.Thyagarajan / Backup contacts: IEC security team (Harsha RA, VB Kumar) METRO Plugin For Eclipse To increase METRO (i.e., WSIT) adoption we need to be able to configure METRO-based web services in Eclipse like we can presently do in NetBeans. Submitted by: Harold Carr StockTrader Sample Application The application is based on an online stock-trading scenario. It contains three elements: a Web Application, Business Services, and an Order Processor Service. These are designed to be autonomous. It is intrinsically service oriented in that it uses services interfaces rather than shared data or internal APIs to communicate between elements. For example, the interfaces to the Business Services have no dependency on the implementation details of the Business Services layer itself—such as its (optional) use of a separate Order Processing Service—or how it manages/uses its own configuration settings. In the demo, elements can run on different servers, be developed by different teams, using different development tools and deployment platforms. See for more details. Of the different services, the order processing service is probably the easiest to implement. The demo will bring together different implementations of various components from different vendors, and show how they can be mixed and matched while maintaining the integrity of the overall application. I encourage you to participate by bringing one or more elements of the sample application to the event and showcasing its ability to interoperate with different implementations using the web services standards. The focus of this demo is entirely on standards-based interoperability. Submitted by: Harold Carr White Paper On METRO And DTRACE Show how to use DTRACE/Java in a METRO-based app to increase performance Submitted by: Harold Carr Jabber Transport Support For METRO Jabber is a set of streaming XML protocols and technologies (XMPP) that enables point-to-point communications and used by most of the Instant Messangers(GAIM, AIM, ICQ etc.). Metro Core (JAX-WS RI) provides extension points to plugin any transport, such as SMTP, JMS, TCP. The goal of this project will be to use these extensibility points to add support of such transport and demonstrate a sample web service working with a Jabber client. Submitted by: Vivek Pandey Securing RESTful Applications Investigate possible ways of adding security to RESTful applications (transport-level encryption, authorization, authentication). Evaluate existing technologies in this area. Output of the project should be a paper providing an overview of the security mechanisms available in the "RESTful world" including how-tos and examples of building secure RESTful applications using project Jersey (http://jersey.java.net). Effort Estimation: 100 hours Submitted by: Jakub Podlesak and Martin Matula Comparative Study of JVM Compatible Web Frameworks For Building RESTful Web Applications Build a sample RESTful application using the following frameworks: 1) Ruby on Rails (Ruby) 2) Django (Python) 3) Phobos (JavaScript) 4) Grails (Groovy) 5) Lift (Scala) 6) Jersey (Java) with other Java EE 5 technologies Expected outcome is a paper describing comparison of each framework with advantages and disadvantages. Effort Estimation: 200 hours. If the effort is too much consider reducing the list of frameworks being compared (e.g. to: 2, 4, 5, 6) Submitted by: Paul Sandoz and Martin Matula Comparative Performance Analysis Of METRO Stack With Other Webservice Stacks Do performance measurements and analysis of Metro stack with other WS stacks like Axis, Xfire etc. The output will be the following:
- using a open source benchmark to do the measurements
- an article or white paper reporting the findings
Submitted by: Vella Raman Migrating Applications From Other Appservers To Glassfish Create or participate in an open source project to develop NB based migration modules to migrate applications from other Appservers - mainly Jboss but can also include BEA and others - to Sun's GF appserver. A variation of this will be to write a paper describing how to migrate a various types of applications and what the issues are in migrating them. This work will take 1 - 2 months per module Submitted by: Vella Raman Glassfish Administration Specific Deliverables: (1) Come up with a paper and develop prototype on Deployment Architecture for medium size enterprises using GlassFish V2. (2) Come up with a prototype to facilitate Domain Administration Server fail over for GlassFish in a cluster environment. Technologies Involved & Learning Objectives: The GlassFish Application Server administration and its usability is highly acclaimed by the developer community. This is made possible by employing innovative architecture and design. The administrative infrastructure built on these principles provides support for front end administration thru GUI (Graphical User Interface), CLI (Command Line Interface), AMX (Application Server Management API) and Custom Administartion through Custom MBeans. Refer to this blog to learn more about GlassFish. The intern is expected to learn Java EE Technology and its administration in general and specifically the area of his chosen interest based on the above. How many hours: ~100 hrs. Submitted by: Nazrul Islam and Sreenivas Munnangi Extend GlassFish v3 Administration Console Specific Deliverables: Create GlassFish v3 modules to extend the adminstration interface. Perhaps provide monitoring of various JMX performance properties using AJAX interface with live updates on a chart. Perhaps configure open source frameworks from within the GlassFish v3 administration console. Can leverage the JavaOne hands-on-lab for reference How many hours: ~100 hrs. Submitted by: John Clingan Add Semantic Web To Glassfish This idea is certainly novel, and might attract the interest of students working in several areas including knowledge management and database systems. In broad strokes, I imagine that this involves the integration of an RDF triple store into the GlassFish database access system, the integration of a query engine, such as one of the SPARQL engines, as a servlet, and the deployment of some sort of web front end JSP/JSF system for making the queries. The semantic web is attracting more attention these days, though it remains a fairly academic pursuit for the most part. Semantic web systems (such as those already used in the bioinformatics space) need serious computing power, so there might be long term strategic value in getting Sun's name into the academic semantic web community. I also think the semantic web technologies remain promising. Submitted by: Norm Wiki Migration Tool The goal of this project is to design and develop an automated web based tool that can be used to migrate content from one Wiki implementation to another (e.g. between MediaWiki and JSPWiki). The tool will need to understand the different wiki formats, represent the formats in an object model and perform conversion. It should also take advantage of any programmatic APIs exposed by the wiki servers to perform read and write operations. The tool will also need to provide a report of the conversion results. This will be a two-month project. Submitted by: Tony Ng NetBeans Plugin For Web Application Testing Creating unit tests for Java classes within NetBeans is very simple already. There are also various web application testing tools, such as Selenium, Mozilla Webclient, and Watir in Ruby, that allow you to easily record actions in a web browser to automate web testing. Some of these (I have done this with Selenium IDE) will export these actions to Java code for you, but you still need to copy/paste this code into your unit tests along with the proper setup/teardown methods. It would be pretty nice to have a plugin so that you could develop, deploy, and record web-based unit tests all within the IDE. Submitted by: Bobby Bissett 508 Testing Tool For AJAX Applications Testing for 508 compliance of web 2.0 applications, specially those that use JavaScript to manipulate the DOM is particularly hard today. The project would develop a tool that could help with 508 compliance testing of applications. - Can be combined with Bobby's idea above of NetBeans plugin for Browser base web application testing. Submitted by: Rajiv Mordani PHP JMaki Tooling Improvement Sub tasks:
- NetBeans jMaki complib update center
- NetBeans PHP improvement: Palette customizer
- Eclipse PHP support
- Eclipse improvements for JSP: Palette customizer, complib update center
- NetBeans Ruby support extension
- Developing FaceBook type PHP applications with jMaki widgets and PHP target
- SAMP out of the box sample : php app+db app+data+tutorial
Submitted by: Ludovic Champneois Media Blogging Support For Roller You can upload any type of content to a Roller weblog and include that content on weblog entries as images or Podcasts, but the tools for doing so are lacking. The interface allows you to browse your file uploads does not display thumbnails, it is not sortable and not pagable. Once you have uploaded an image or Podcast you have to cut and paste the URL into your blog post. This project will replace that old File Upload user interface with a more interactive and modern UI for browsing and choosing media and automatically adding the correct HTML markup to blog entries. Requirements Replace Roller's existing File Upload pages with:
- Sortable, searchable, hierarchical and tabular display of uploaded files
- Display small thumbnails for all images
- Ability to select any file and create a Podcast blog post for it
- Ability to select multiple image, create blog post of them
- Add photo-browser feature to Roller's Weblog Editor
o Allow user to pick image from File Uploads to be included in blog post o User can pick multiple figures for collage
Deliverables
- Proposal to Roller community
- Revised proposal based on community consensus
- Patch for latest version of Roller trunk
Skills developed
- Technical writing and communications
- Open source development processes
- Java web application development, image processing
- Web UX development, AJAX
Effort
- Assuming intermediate Java web developer
- 1 week to develop proposal
- 3 weeks to implement
Submitted by: Dave Johnson Content Sanitizing For ROME It is possible for malicious parties to embed dangerous content in RSS and Atom newsfeeds in the form of JavaScript embedded in HTML script elements, Java script handler attributes and even CSS style attributes. Develop a utility for sanitizing RSS/Atom feed content, removing all possibly malicious content from the feed. Requirements
- Plugins for the ROME feed parser for sanitizing content
Deliverables
- Proposal to ROME community
- Revised proposal based on community consensus
- Patch for latest version of ROME trunk
Skills developed
- Technical writing and communications
- Open source development processes
- Java web application development
- XML and RSS/Atom feed technologies
Effort
- Assuming intermediate Java web developer
- Half week to develop proposal
- 1 week to implement
Submitted by: Dave Johnson Content Cleanup For Roller Even with a WYSIWYG editor it is possible to create invalid HTML content in a Roller weblog entries and comments. And it's possible that such invalid HTML can throw off the layout of a weblog. Fortunately there are tools that can take invalid HTML and fix it up, tools such as JTidy and Tagsoup. In this project you'll propose and add an optional new feature to Roller so that bloggers can choose to have each post they make automatically fixed up using one of those tools. Requirements
- Option to fix-up malformed HTML content at post-time in Roller blog entries
Deliverables
- Proposal to Roller community
- Revised proposal based on community consensus
- Patch for latest version of Roller trunk
Skills developed
- Technical writing and communications
- Open source development processes
- Java web application development
Effort
- Assuming intermediate Java web developer
- Half week to develop proposal
- 1 week to implement
Submitted by: Dave Johnson File Locking Diagnostic Tool Background: The Windows operating system prohibits files that are currently open from being renamed or deleted. In our experience building the GlassFish project application server we know that the parts of the Java runtime itself and some third-party libraries open but do not close certain files. We have made significant strides in reducing the impact of this behavior by improving the GlassFish app server itself, especially in the areas of redeployment and undeployment of Java EE applications. Still, there are some coding practices in the JDK or third-party libraries that the app server simply cannot overcome. To help identify where such locked files are opened we use a relatively simple but very effective tool that uses the published Java Platform Debugger Architecture (JPDA) to capture, analyze, and display information about files that are opened but not closed over a period of time. The tool has proven itself to be very useful in the hands of application developers, despite its simple command-line interface and plain text output. We would like to integrate this tool with the admin GUI of the app server and improve the U/I of the tool so it is graphical instead of text-oriented. This is the main task of this project.
Deliverables: Running, documented, and tested software providing:
- Enhancement to the admin GUI to configure and launch the tool.
- Improvement in the locking diagnostic tool's user interface to give it a graphical U/I.
- Possibly other improvements in the tool itself, as needs dictate and time permits
Estimated time commitment: 40-50 hours
Technologies and expected learnings: This project is a nice balance between offering exposure to the GlassFish open-source app server without requiring the participant to gain in-depth knowledge of it. The diagnostic tool uses the JPDA debugger API to work remotely with a GlassFish server instance to monitor JAR files that are opened and closed. The integration of the tool with GlassFish will involve the admin GUI and its GUI framework. Further, the participant will learn about Java class loading in general as well as how the app server handles class loading in particular as part of understanding how JARs can be opened but not closed and how the app server already tries to address this problem. Submitted by: Abhijit Kumar and Tim Quinn Annotation Processor To CaptureRuntime Information Annotations enable a lot of things to be done at runtime, but today there are several information that's only available at compile time, and javadoc and method parameter names are the biggest two. The project will develop an annotation processor that captures such information for the consumption at runtime. Fair amount of creativity can be involved to design a fast yet compact format for storing such data. The tool would benefit different technologies that across the board. Currently, JAX-WS get the information for Web Services from annotations on the class files only. The idea is to abstract the way JAX-WS annotation processor reads the annotations ( may be from external files). The advantages would be: 1) You can expose an pre-existing class as a Web Service without jax-ws annotations. This is general useful when one doesn't have access to sources. This will also be useful for migration of JAX-RPC based web services, where no annotations are used to expose POJOs as Web Services and, there is no need to re-write/modify the sources to do this. 2) Different annotation views from the same class file. Ex: Making the same class available using soap1.1 and soap1.2 bindings. Although, JSR-109 provides some way to specify/override some of the annotations in the Web Service classes through webservices.xml, it is not granular enough to annotate all the required information like the annotations on the WebParam, WebResult etc in webservices.xml. Submitted by: Rama Pulavarthi WSDL Doc Tool The project will aim to develop a tool that reads WSDL and generate human readable HTML description (like xsddoc and javadoc does for XSD and java, respectively.) Such a tool would assist developers to comprehend web services. The goal will be to develop an engine of this tool in a reusable way so that it can be used from CLI, Ant, or integrated into Metro runtime so that it can be used with live endpoints. Submitted by: Kohsuke Kawaguchi Incorporate XProc Into Glassfish This project is novel in a couple of ways; first, it's a new technology, part of a developing standard that we're helping build, and second because there are several kinds of Integration that could examined, depending on the interests of the student. It's straightforward to explain in terms of the current integrations of XSLT into GlassFish. Consider that anywhere a GlassFish application currently uses XSLT (for transforming incoming web requests, as part of a composite application, as part of the JBI/GlassFish integration, etc.), it might more usefully use XProc. I don't think it would be unreasonable for a graduate student to undertake this project in a semester. There's also an obvious extension path for this project, so that its scope might be expanded for a team of students or a multi-semester effort. While integration of an XProc processor into GlassFish would increase the capabilities of GlassFish, in a GlassFish context, one could imagine writing extension steps for XProc that increase its capabilities. For example, one could provide an XProc extension to run a servlet as a step. Submitted by: Norm Schema Grammar Generalization RELAX NG grammars are considerably more powerful than either XML DTDs or W3C XML Schemas. As a result, there are RELAX NG grammars that have no equivalent DTD or XML Schema. However, I think it's the case that for the great majority of RELAX NG grammars there is a less-powerful schema that that could be converted to a DTD or XML Schema. The resulting DTD or XML Schema, because it has inherently less power, will accept some documents that are not valid. However, I think that it will accept all valid documents. So, if you test with the DTD or XML Schema and the document is invalid, you know it's invalid. If it's valid, you may still have to test again with the RELAX NG grammar. I've been looking for a graduate student to write a program that will start with any RELAX NG grammar and construct from it an XML Schema (or, roughly equivalently, a DTD) that has the properties I just described. I imagine this project would appeal to a graduate student interested in the theoretical power of languages. Submitted by: Norm Adopt A Bug Program The main goal of "adopt a bug" is to get new designers into the project of their choice (e.g., GlassFish, Metro). A secondary goal is to get some help cleaning up bugs/RFEs. The idea is that a new/prospective member of the community adopts an issue, along with the engineer who actually owns the issue. The issue owner is still responsible for the fix, but can get input from the outside party (suggested fix, test case, whatever) in return for some "handholding" on how to get the project checked out, built, etc. The project I'm suggesting is to design a web application that lists issues and RFEs of a java.net project with configurable options for priority, release, etc. It would allow a java.net member to sign up as an adopter, and track which issues are adopted and by whom. The app would handle sending an email to the responsible engineer to initiate contact as well as possibly temporarily removing other issues owned by that engineer. Presumably it could also capture information about the adopter such as level of Java experience, areas of interest, etc. Submitted by: Bobby Bissett Technical Articles On Web2 On SAMP Write article/articles on how to deploy popular SAMP applications like MediaWiki, CRM apps like Joomla, accounting apps etc on SAMP stack. 150-200 hours of work is expected to produce 2-3 quality papers. Specific deliverables:2-3 Technical articles on sun web site. Technologies that the student will be working and expected to learn over the course of the project: Tools/app like Mediawiki, Joomla etc along with SAMP stack. Submitted by: Praveen Chandrasekharan Ports Of Glassfish GF on PS3 GF on FreeBSD GF on a iPod Touch/iPhone/Nokia N800/ some similar device Submitted by: Harpreet Port Wonderland To Glassfish Port Wonderland to use GlassFish or back end Submitted by: epll Help Jython People Help Jython People Submitted by: epll Help Grails And Groovy People Help Grails And Groovy People Submitted by: epll Templates For Horizontally Scaled Projects Using EhCache Templates For Horizontally Scaled Projects Using EhCache Submitted by: epll VMWare Images For GlassFish VMWare Images For GlassFish Submitted by: John dot Clingan at sun dot com Keep Wikipedia Entries Up To Date Keep Wikipedia Entries Up To Date Submitted by: epll Installer Improvement Improve the default GlassFish (poor man's) installer. Consider technologies such as OpenInstaller, IzPack, and the NetBeans 6 installer. Need to assess technologies first. Needs more work Submitted by: Alexis MP Create Documentation about Securing GlassFish Write the Securing GlassFish section for the OWASP Java Project. As mentioned in this forum thread, GlassFish should be represented. Submitted by: [Documentation team]. Please contact the team to discuss ideas or raise any questions! Create Articles, Tutorials, and Screencasts Write articles, tutorials, and screencasts about a variety of subjects, including but certainly not limited to:
- Clustering, load balancing, high availability
- Security
- Persistence
- Connection pools
- Usage profiles
- Domains
- Alternate docroots
- Migrating applications from other application servers to GlassFish
For more information about community docs and possible ways to contribute, see the Doc Home Page and the Community Docs page. Submitted by: [Documentation team]. Please contact the team to discuss ideas or raise any questions! Create New Examples with Code and Documentation Create new examples with code and documentation. See the existing documentation for examples of this. Submitted by: [Documentation team]. Please contact the team to discuss ideas or raise any questions! Translate User and Developer FAQs The GlassFish User and Developer FAQs on the GlassFish wiki are in English and need to be translated into other languages to be of benefit to users and developers around the world. If you're fluent in another language and interested in translating the FAQs, this is a great project for you. For more information, see Translating User and Developer FAQs. Submitted by: [Documentation team]. Please contact the team to discuss ideas or raise any questions! RESTfulAppDevKit Abstract: RESTfulAppDevKit (RADK): Auto RESTful based web application generator from DB. Most of the internet based applications are driven by the data. The data itself comes from database for any company or online shop. It is good that if we can develop JavaEE based web application automatically from a given db connection. Basically the tool can get the schema and generate the JPA classes. From the persistence classes, generate the RESTful API. Then generate the necessary forms including AJAX support as on necessary. Some of the services that the application can provide is – CRUDE (CRreate, Update and DElete) operations, Search, List, Summary generation, Graphs etc. Technologies: Java, J2EE/JavaEE - JPA and RESTful API and AJAX technologies. Products: GlassFish, Netbeans, MySQL Challenges: Auto code generation, Scaling of the application and Pagination Complexity: Medium Submitted by: Jagadesh Munta Web Traffic Generator or Service Abstract: There are many internet sites and online applications where vendors/merchants would like to host. There are not aware of the unpredicated load handling with internet users for their sites. Here comes this idea where the load generator can emulate the unique users under the realistic traffic. The users generation is one challenge where multiple clients/threads need to be handles with sessions. The second big challenge is generating the realistic load – offpeak, peak loads in the normal day and night life. For example, during nights of that time zone, may be less traffic where as in the day time, much traffic. But again different zones, might have different loads. The sites will be online and can't be interruption. Store the monitored data in the database so that multiple sites can also be handled and results produced as on when needed. Technologies: Java, J2EE/JavaEE (JPA/EJB/Servlets), AJAX Products: GlassFish, Netbeans, MySQL, JFreeChart Challenges: Simulation of unique web users, generation of realistic load (off-peak/peak) and plotting good graphs on the web Complexity: High Submitted by: Jagadesh Munta Architecture Analyzer Abstract: The most difficult problem is to make sure the architecture of a product or service is really good or not. Especially for an existing product and to take further changes, it is very important to understand the current architectural problems. It would be nice to have a tool which can build the architecture (any model) automatically with a given java source or classes. This project mainly aims at this generation and pointing of the problematic hot-spots. This is complex problem where the tool need to have the best practices of the model. For the first problem (generation of the architecture), the knowledge of the architecture and the analysis of the java code. Ploting of graphs on the web page with hotspots is the real idea. This tool will be very helpful for any java based code. Technologies: Java, J2EE/JavaEE Products: GlassFish, NetBeans, JFreeChart Challenges: Java code analysis, architectural models research and generation, model analysis and plotting of graphs Complexity: Very High Submitted by: Jagadesh Munta SIP Traffic Generator Abstract: SIP is a new emerging standard for VoIP networks. It is important to aware of the traffic conditions along with spams too coming to the VoIP services. There are not many such tools to generate the realistic traffic, which include Calls, Presence, IMS and Media traffic. The first problem is to how to simulate the unique users for different types of messages under the realistic traffic. The users generation is one challenge where multiple clients/threads need to be handles with sessions. The second big challenge is generating the realistic load – offpeak, peak loads in the normal day and night life. For example, during nights of that time zone, may be less traffic where as in the day time, much traffic. But again different zones, might have different loads. The sites will be online and can't be interruption. Store the monitored data in the database so that multiple sites can also be handled and results produced as on when needed. SIP might be also the target of some Spam attacks and to simulate such cases, the SIP Traffic Generator can help. Technologies: SIP, Java, SipServlets, J2EE/JavaEE (JPA/EJB/Servlets), AJAX Products: SailFin, Netbeans, MySQL, JFreeChart Challenges: Simulation of unique SIP users, Types of traffic, generation of realistic load (off-peak/peak) and plotting good graphs on the web Complexity: High Submitted by: Jagadesh Munta Asynchronous HTTP response Abstract: Current Grizzly implementation leverages the asynchronously, Java NIO proposes, just when read and process an HTTP request. However when we have an HTTP response, it is sent in blocking manner. In other words the thread, which writes HTTP response blocks until write operation will be 100% completed. For usecases, where server replies with large amount of data this could be bottleneck. We expect, that asynchronous HTTP response support will increase server scalability and reduce resource consumption (less worker threads will be required). Technologies: Java, Java NIO Products: Grizzly, GlassFish Challenges: Increase web server scalability, reduce resource consumption. Complexity: High Submitted by: Oleksiy Stashok Asynchronous HTTP client Abstract: The HTTP connection implementation, provided by JDK, works in blocking mode. It means in order to read or write some data on HTTP connection - we always block the thread until I/O operation will be completed. Using this model we should always have a thread, associated with certain HTTP client, in other words N threads can handle just N HTTP connections simultaneously. With Grizzly it is possible to implement non-blocking HTTP client implementation, which will be based on Java NIO. This way it will be possible to send HTTP requests and process HTTP responses asynchronous way either by using Feature (polling), or some kind of callback handlers (pushing). So, with asynchronous HTTP client implementation, N threads will be able to handle more than N HTTP connections. Technologies: Java, Java NIO Products: Grizzly, GlassFish Challenges: Increase HTTP client side scalability, reduce resource consumption. Complexity: Very high Submitted by: Oleksiy Stashok Smart protocol parser Abstract: Current Grizzly implementation lets us write the custom protocol parser, which will parse the source data (byte[], ByteBuffer) to some custom protocol representation (HTTPRequest, CorbaRequest). Developer should deal with situations, where there is not enough bytes to parse the message, or there are more than one custom messages in byte buffer. This makes parsing logic not so simple. Smart protocol parser should reduce as much as possible the developer's effort for parsing messages. Ideally it should take a custom message class as input parameter, parse the custom message class structure and be able to transform incoming byte buffer to a custom message. Smart message parser should have default transformation logic for Java primitive types and commonly used types like strings, calendars. To override the default transformation logic - custom message class could use annotations. Technologies: Java, Java NIO Products: Grizzly, GlassFish Challenges: Reduce developer's effort for writing custom protocol parsers. Complexity: Very high Submitted by: Oleksiy Stashok Grizzly benchmark module Abstract: As Java NIO framework Grizzly always deals with sensitive low-level resources like channels, selectors, buffers. It's very easy to make small mistake, which will lead to big performance regression. Grizzly is always tested as part of Glassfish, but these tests cover just HTTP related implementation, and could not be run on demand by each developer. It could be very useful to have a module with a set of light benchmark tests, which will be targeted on Grizzly core. The framework startup, shutdown time, TCP, UDP throughput could be very important to measure. The benchmark module should be targeted to give us fast and relatively accurate results to evaluate whether latest changes lead to a performance issues. Also benchmark module can play role of stress testing environment and help to find some issues, which where not found by regular unit tests. As additional features it could be interesting to have some trends analyses, graphs etc. Technologies: Java, Java NIO Products: Grizzly, GlassFish Challenges: Make Grizzly very sensitive to a possible performance regressions. Complexity: High Submitted by: Oleksiy Stashok Event Mapping view widget A portal page could consist several widgets where some widgets could be publishing an event while other widgets might be consuming an event. The information regarding the event publisher and event receiver are present in the deployment descriptors of each individual widget. As a portal administrator, it is of great value, to be able to see how the different widgets are communicating with each other as far as events are concerned. The Event mapping widget to be developed will try and provide a visual representation of these event communications. Effort: 2-3 months Priority: High Submitted By: Sriram Krishnan Flex Widget.Air Mashup Widget. This will be a mashup widget written in Adobe AIR (Adobe Integrated Runtime). A end user is given the option of planning a trip. He selects a starting city and the destination city. The widget will then make calls to the Google Map Service to render the map of the travel route and mashup this map with weather information for major cities that fall on the travel route. The widget will have the capability to be dragged and dropped onto a users desktop as well. Effort: 2 months Priority: High Submitted By: Sriram Krishnan Journal to CRUD widget The administrator should be able to define a JOURNAL content definition. A Journal content definition is like defining a dynamic SQL Table. Once this content definition is stored in the repository, a widget can be configured to take this definition as input and create a simple CRUD application out of it. Effort: 2 months Priority: High Submitted By: Sriram Krishnan Build a payment gateway widget This widget should be able to integrate with the payment gateway service such as PayPal and be able to accept payment information from a user and help in confirming a e-commerce transaction. Effort: 3 months Priority: High Submitted By: Sriram Krishnan Price compare widget This widget is of utmost importance for a B2C and B2B customer. The goal of this widget is to be able to hook up to a series of vendors who provide a cataloguing service which lists the items that the vendors sell along with their price and rating information. When a end user chooses an item that he is interested in buying, based on an item code, this service will query the individual stores, and bring out a comparison chart of this item from which the user is able to compare the prices and make a educated buying decision. Effort: 3 months Priority: Medium Submitted By: Sriram Krishnan
|