JBoss Seam: 2 Developing the initial product. 4 Securing the application for release. 8 Simplifying the programming model

Size: px
Start display at page:

Download "JBoss Seam: 2 Developing the initial product. 4 Securing the application for release. 8 Simplifying the programming model"

Transcription

1 JBoss Seam: Agile RIA Development Framework by Jacob Orshalick and Nirav Assar 2 Developing the initial product 4 Securing the application for release 8 Simplifying the programming model 13 reduce front-end development effort with JBoss Seam 16 Integration framework 18 Scaling on a dime with JBoss Seam 19 Agile RIA development framework

2 Rich Internet Applications (RIAs) are in great demand in today's technology-infused business world. Customers want web applications that offer a rich, engaging experience and improve user productivity. Yet, an increasingly competitive market continues to constrain IT budgets and require rapid time-to-market to ensure product survival. In order to deliver a quality product that results in high customer satisfaction, developers need the right technology and an effective methodology. Due to consistent project failures with traditional methodologies, agile methods evolved to address the limitations of the traditional approach. Agile methods for RIAs Agile methods require frequent collaboration and embrace change. The product is developed iteratively in short increments by tackling top priority features first. This enables earlier product delivery, which increases return on investment (ROI) and allows the customer to provide feedback. In order to achieve these benefits, supporting technology must be chosen. The technology must enable rapid development while providing the flexibility necessary to adapt to constantly changing requirements. Technology plays a critical role in achieving agility. The role of technology in agility Choosing a framework that fails to complement the fast-paced environment of an agile project can cripple the development team. Rapid application development (RAD) tools and the ability to adapt to constantly changing requirements are vital to meeting the demanding needs of an agile project. RAD frameworks must provide a platform that allows the development team to focus on the business problem. Non-functional requirements, including security, usability, performance, and scalability should be achievable without significant impact to the application. As the needs of the application change in an evolving business environment, the framework must provide the support necessary to adapt. JBoss Seam, a web application framework, provides the perfect technology fit for an agile development environment. Achieving agility with JBoss Seam To demonstrate the value of using JBoss Seam in agile development, we will describe a series of use cases for which JBoss Seam is applicable. Typical use cases encountered in enterprise application development will be provided. We will then discuss and demonstrate the rapid implementation of each use case utilizing the features provided by JBoss Seam. The use cases are derived from real experiences in the software field and provide practical application of JBoss Seam. Developing the initial product One of the tenets of agility is, Release early, release often. The early visibility of a software product often plays a large role in the project's success. RAD tools allow a development team to get the project started with minimal delay making them the ideal choice for putting this principle into action. Seam-gen is the RAD tool packaged within JBoss Seam. This tool helps development teams generate application scaffolding. Scaffolding is the boiler-plate code and configuration that is required by any framework to plug into the capabilities that the framework provides. Once generated, a developer can immediately focus on implementing the specifics of business features. 2

3 Figure 1 JBoss Seam Developer seam-gen Get project started quickly Create CRUD application Reverse engineer database Use case: Get the project started quickly with Seam-gen The business wants to avoid a long ramp-up time for its new software product. In the past, the IT team spent several months in the requirements and design phases prior to implementation. The initial demo of the software product was often many months or even years after project kickoff. This time around, the business would like to see a tangible product quickly so that it can be influential early in the process. Seam-gen allows developers to create a project in minutes. The generated project is ready to be opened in any leading Java IDE and ready to be deployed to an application server of your choosing. Seam-gen is simple to operate and is ready for execution immediately after downloading JBoss Seam. After starting seam-gen from the command line, the tool will ask several questions to configure the new project. The questions are common to any enterprise application and address a range of concerns, including the project name, selecting the front-end technology, and specifying the type of database for the application. Once the questionnaire is complete, the project is generated in a matter of seconds complete with an Ant build file, template webpages, seam resource files, and the necessary jars. Seam-gen essentially alleviates the hassle of piecing together the build, configuration, and jar dependencies. The project is ready for deployment and custom code can now be incorporated. This provides the initial structure necessary to quickly release the application to the business for early feedback, and reduces the work of the software team. With such early visibility to the business, the software team is braced to accommodate the business and address its needs. Use case: Creating a CRUD application with JBoss Seam The business wants to manage business data using a software application. Users want a web interface to perform basic operations on the data. They would like a search screen to retrieve and view data. They also want to create new entries, edit existing entries, and delete entries that are no longer needed. These requirements are often referred to as a CRUD application (create, read, update, and delete). Seam-gen offers an interface that allows developers to leverage the Seam Application Framework, a group of components created to reduce the amount of custom code written when performing basic database operations within a web application. 3

4 The Seam Application Framework consists of two main components: EntityHome and EntityQuery. The EntityHome object performs persist, remove, and update operations on a JPA entity. Essentially the EntityHome object is a generic Data Access Object (DAO) that supports CRUD operations. The EntityQuery object encapsulates a search query and offers methods to retrieve the data. It also allows for customized search criteria and scrolling, which are common search page requirements. Seam-gen can create EntityHome and EntityQuery objects for all JPA entities within an application. In addition, seam-gen will generate basic front-end pages for browsing, searching, and managing application data. Once the components have been generated through seam-gen, further customization can be performed through configuration or class extension. The simplicity and automation offered by JBoss Seam allows a software team to meet CRUD application requirements rapidly. Use case: Application generation from an existing database The business has an existing database that now requires a web front-end. In the past, database administrators have been responsible for managing the data. In order to reduce cost and turnaround time, the business now wants to manage this data directly through a web interface. Seam-gen can scan an existing database and generate an application from the existing schema. This capability is useful when a legacy database exists, but has no application built around it. Through the commandline interface, seam-gen asks for the database specifics such as the JDBC URL, username, and password. Most importantly, it asks for the schema name and if the application will work with tables that already exist. If tables exist, JBoss Seam will read the database and generate JPA entities from the existing tables. The entities are complete with mapped relationships and validation annotations. In minutes, a web application is generated that supports legacy data management. Use case: Generate scaffolding through a GUI with JBoss Developer Studio The development team prefers working within an IDE to executing commands in a shell window. JBoss Developer Studio is an Eclipse-based integrated development environment that provides developers with everything needed to rapidly build applications with JBoss Seam. A development team can achieve the above uses cases (new project generation, creating a CRUD application, and application generation from an existing database) through the JBoss Developer Studio user interfaces in lieu of seam-gen. In addition, JBoss Developer Studio includes both tooling and runtime components that integrate with a large set of JBoss open source technologies such as JBoss Seam, JBoss Hibernate, JBoss Application Server, and JBoss jbpm just to name a few. Securing the application for release The goal of any agile project is to release the application as quickly as possible. Once the application includes a sufficient feature set to serve a business need, the software product can be released to the end users. This goal achieves the quickest ROI for the application and further improves the end product by eliciting feedback. To achieve agility, a team minimizes upfront design and focuses on the highest priority business features first. Even with the importance of security in today's enterprise environment, it is rare for security to be at the top of the initial priority list. 4

5 Security is an unspoken non-functional requirement that end users simply expect, similar to good performance and ease-of-use. The development team may progress through several iterations before appropriate consideration is given to application security. The product may even be ready for release before security is considered. With this in mind, it is important to select a framework that allows these types of architectural decisions to be delayed even up to the last minute without impacting the application. JBoss Seam security embraces the agile mindset by implementing security as a cross-cutting concern. This allows security features to be addressed when needed, even just prior to release, without a significant effort. JBoss Seam security eliminates the complexities of enterprise security and allows you to iteratively introduce your security needs into the application. Identify the user with JBoss Seam security Determining the user's identity is the core of any security model. Once the user's identity is known, more complex authorization requirements can be addressed. As shown in the diagram below, it is critical to identify a user prior to allowing access to certain functions to avoid malicious access. The following use cases demonstrate how JBoss Seam security allows an application to introduce authentication capabilities iteratively in an application. Figure 2 Unknown user JBoss Seam security authenticate Search parts Edit part Identity store Use case: Authenticate pre-production users The business initiates the project with a small user base that will evaluate the in-progress product. The basic authentication capabilities provided by a seam-gen project suit the needs of the in-progress product. In the early stages of development, the user's identity may need to be determined in order to implement authorization features, but in the early stages of evaluation an enterprise authentication method is often unnecessary. Seam-gen projects provide a simple login form with an authenticator component for custom authentication logic. You can add the logic necessary to authenticate the user and add any roles to the user's Identity. This solution provides a rapid authentication approach but maintains the flexibility to adapt more robust enterprise security requirements by utilizing the Identity Management API. 5

6 Use case: Authenticate users with an enterprise identity store The application is ready for production release but the organization requires that the application authenticate through a centralized identity management solution (like Active Directory). While this is ideal for managing a large user base, it often requires glue code to incorporate the specifics of the centralized authentication mechanism. Fortunately, JBoss Seam security provides IdentityStore components outof-the-box that allow an application to authenticate against a relational database or an LDAP identity store with minimal development effort. If the centralized identity store is a relational database, JBoss Seam security utilizes the JpaIdentityStore component along with the identity annotations. These annotations allow you to easily hook your existing database schema directly into JBoss Seam security with JPA entity mappings for users and their roles. The LdapIdentityStore allows users and roles to be retrieved from an LDAP directory by simply configuring this component with the appropriate server details. By implementing your own IdentityStore component you can integrate JBoss Seam security with any identity store technology (for example, Kerberos). In addition, separate IdentityStore implementations can be used to authenticate the user and retrieve user roles providing ultimate flexibility in retrieving the user's identity. While this is an ideal approach to managing a production user base, a centralized identity store may not be available. The next use case demonstrates how JBoss Seam security makes even the most complex case simple through its Identity Management API. Use case: Authenticate users and manage their identity The organization does not have a centralized identity store, so we need a way to manage the production user base efficiently. Maintaining a production user base can be a full-time job, but JBoss Seam allows you to put this task in the user's hands through its Identity Management API. Seam-gen provides a rapid solution with the add-identity-management command. This command can be executed for a new or existing seam-gen project. This command integrates a front-end with the components, views, and configuration necessary to manage users and roles using JBoss Seam's Identity Management API. Upon execution, a user interface is generated for performing create, read, update, and delete (CRUD) operations on user and role information. Authorize the user for privileged access Most enterprise applications require distinction between application users to determine what privileged operations a user has access to. The following diagram illustrates a simple case where only admin users are able to manage users. Figure 3 User Admin JBoss Seam security Search parts Edit part Manage users 6

7 In most applications, adding this type of functionality later leads to major changes in the code and and can cause release delays. This is not the case with JBoss Seam. JBoss Seam security combines a declarative access control with a unified approach to defining constraints, which creates a simple and flexible authorization model. In addition, JBoss Seam security provides layered access control, which makes it simple to enforce a defense-in-depth approach in your application. As you will see in the following examples, the use of XML, annotations, and the unified EL makes authorization with JBoss Seam simple and provides the flexibility to adapt your authorization capabilities as requirements demand. Use case: Role-based access to specific application functions In the initial release, users are grouped together based on roles that govern who can perform what operation. JBoss Seam security provides the ability to authorize users according to the roles they have been granted. Page access, user interface (UI) component access, and even JBoss Seam component access can be restricted to a specific role through declarative access control. Pages are defined in the pages.xml file, which allows you to restrict access to specific pages or sections of the application through simple URL patterns and EL expressions. UI components can be hidden for certain users by defining the role required in the components rendered attribute through EL. Method access can be restricted through annotations on JBoss Seam components. Component annotations provide the option to use EL restrictions to maintain ultimate flexibility or type-safe role annotations. Type-safe role annotations provide the advantage of compile-time checks on component security constraints. Use case: Application access determined by more than roles As the applications evolves, the complexity of authorization requirements increases. What used to be a simple role check now requires a role check, a certain part type, and a specific part status. While this seems complex, JBoss Seam provides the features necessary to address these capabilities through its permission authorization model. The permission authorization model provides two implementations out-of-the-box, a RuleBasedPermissionResolver and a PersistentPermissionResolver. The RuleBasedPermissionResolver allows permissions to be evaluated through rules defined in JBoss Rules. A set of rules defining a permission can be evaluated through a simple EL expression. This allows previously defined restrictions to be easily adapted to the new permission resolution method. The PersistentPermissionResolver allows permissions to be loaded from a relational database or another persistent storage method. This permission resolver allows specific permissions to be assigned to individual users and roles. For example, a single user could be granted temporary access to edit a product type outside of his or her normal permissions. A front-end can even be provided to easily alter persistent permissions through the permission management API. Secured and ready for release JBoss Seam security makes it simple to secure an application at every stage of development. Whether your application is in the initial stages of development, requires LDAP authentication and role-based access, or even requires complex ACL permissioning, JBoss Seam provides the flexibility necessary to achieve your needs. In line with the iterative methods of today's agile development, JBoss Seam allows you to integrate the security features you need, when you need them. 7

8 Simplifying the programming model Minimize architectural layering The JBoss Seam programming model addresses the issues of complicated layering that occur in traditional enterprise applications. These applications have many components, such as transactional services, security, data persistence, object mapping, UI rendering, and more. Enterprise web applications typically need a multi-tiered architecture, as this promotes separation of concerns, a model-view-controller pattern, and the cohesion of responsibility within layers. JBoss Seam addresses these enterprise concerns while considerably reducing layering. Use case: Reduce development turnaround time by simplifying architecture The client has noticed that what initially seems like a simple change request often turns into a complicated problem on the technical side. The development team attributes this phenomenon to the complex architectural layering of the system. Developers have to create excessive plumbing code to add new functionality or spend time digging through the layers to determine where to make the appropriate code change. This dramatically impacts the efficiency of the development team. The Java EE technology stack (JSF, Enterprise Java Beans (EJB), JPA) used to implement enterprise concerns is designed as separate frameworks. This disparity creates several unnecessary layers. For example, the front-end layer is JSF and the business layer is composed of EJBs. But since the transactional and persistence context is bonded to the EJB layer, a Data Transfer Object (DTO) layer is introduced to display data on the front-end. Figure 4 Presentation Backing bean Transfer Transaction and persistence context boundary Business ORM Entity JBoss Seam simplifies layering, which reduces development time. JBoss Seam collapses the artificial layer between EJB and JSF by allowing business components to directly back web forms and handle UI events. JBoss Seam also extends the transaction and persistence context over the entire web interaction request cycle so the Object Relational Mapping (ORM) objects can be accessed directly by the presentation layer. This eliminates backing beans and DTOs. 8

9 Figure 5 Presentation Transaction and persistence context boundary Business ORM Entity Using a declarative annotation-based approach, JBoss Seam integrates the disparate enterprise frameworks to minimize architectural layering. Developers are able to better understand the architecture and can navigate the code without encountering unnecessary layers. This results in faster turnaround time for change requests and a happier customer. Simplify state management with conversations Lean principals are an important aspect of agile methods. Maximizing the work not done is critical to eliminating waste. Conversations fit this bill perfectly by filling a gap in the traditional stateful web development model. Traditional stateful web applications store all states in a shared state container: the session. While this approach is simple, it leads to a lot of issues that are not immediately obvious. JBoss Seam breaks each stateful interaction with the user into a separate conversation which is a unique state container. As you can see in the diagram below, each browser window the user opens will initiate a new conversation. The following use cases demonstrate how this model reduces development effort and immediately provides user-friendly features. Figure 6 User Session C1 C2 C3 9

10 Use case: Multi-window operation and back-button support When business users run the application, they expect the browser's back button to behave consistently not matter how many windows or tabs they have open. Editing parts, booking vacation options, and configuring computers all require maintaining several pieces of information. The state of the user interaction must be maintained across multiple page requests. Traditional web applications rely on the session, where state is maintained in a single user state container. Each time a part is being edited, a vacation booked, or a computer configured, previous state information is overwritten. This creates unpredictable behavior when multiple windows are opened or the user backs up to a previous state. With JBoss Seam, each time a user initiates a stateful interaction, a conversation is started. Each conversation is a separate state container meaning that each stateful interaction is independent of the others. In a JBoss Seam application, it is common for a user to have several conversations executing concurrently. Conversations are started by simply specifying the conversation boundaries, defining where the conversation begins and ends. A conversation can be associated to a single page or a set of pages in pages.xml, through the <beginconversation> and <end-conversation> elements. Even a set of method calls can define the conversation boundaries by simply annotating methods The session simply holds these conversations with unique identifiers, allowing JBoss Seam to retrieve them according to which window or tab the user is accessing (or the back-button destination). This allows users to interact with the application naturally and prevents developers from needing to impose awkward navigation requirements. Use case: Eliminate memory leaks and reduce server memory requirements Previous applications have suffered from hard-to-debug memory leaks and have required extensive server memory. Resolving these types of issues takes time away from implementing new business features and creates a bad impression with business users. These issues often stem from storing state in the session. As the user navigates through stateful interactions with the application, the session data grows indefinitely. Without careful programming, state information is stored until a session timeout. As the number of users grows, the problem becomes exponentially worse. Using JBoss Seam conversations ensures that state information is managed properly. Stale information is automatically cleaned up when it is no longer needed. By maintaining each stateful interaction in a separate conversation, JBoss Seam can apply a timeout to the state. Once a conversation has been out-of-use for a configured period of time, JBoss Seam will remove the conversation. This ensures that regardless of application usage patterns, state information will consistently be cleaned up with no additional effort from the development team. Loose coupling with dependency bijection Enterprise applications that are difficult to maintain are generally plagued by tight coupling. Small changes impact seemingly unrelated components due to tightly woven dependencies. These brittle systems have a negative effect on team velocity. By contrast, loose coupling ensures that application components are largely independent. The impact of change is generally limited to a single component that reduces effort. Loose coupling is achieved through dependency injection in modern-day frameworks. Dependency injection is the inversion of the control technique where dependencies are injected by a container. An injected dependency can be a single object or a group of objects working together to achieve some goal. These components define a contract of interaction through their APIs. This ensures that as long as the contract is upheld, the component can change independently. Bijection is JBoss Seam's flavor of dependency injection. As shown in the diagram below, components are injected from the context. 10

11 Figure 7 Context Before you begin, here is the shippingservice to use... ShippingService calculateshipping() ProductShipmentAction Context is important in bijection. Components can be injected as dependencies or outjected into the context, making them available to other components. The following use cases demonstrate the simplicity of implementing complex application requirements using bijection. Use case: Swap the implementation when requirements change The business originally calculated shipping fees based on internally defined costs, but now wants to calculate shipping fees based on external shipping company costs. All shipping calculation logic now needs to be modified to call the business' external APIs. If the shipping calculation logic was spread throughout the application, this would require extensive changes to the application. Bijection resolves this by providing a mechanism to hide this complexity behind an interface that defines the contract of interaction. By implementing logic behind an interface, it is simple to change the implementation. Each component is given a name and is injected by that name. To alter the implementation, simply develop the new component according to the existing interface, and replace the existing component by name. The new component will be injected to replace the existing component in all places. Application behavior is immediately altered through a change in a single location. Use case: Initialize common objects only once User profile information is needed throughout the application to perform business functions. Generally this type of common data is retrieved when needed by direct database retrieval or by calling on a data access object (DAO). This approach is often inconsistent, making it difficult to change the way these objects are retrieved. Bijection allows you to provide a single location where these objects are initialized. Once outjected into the context, objects can be injected by name into any component. Factory methods allow you to define a single location where an object is initialized and set into the context. Simply annotate a method to create a factory method. As with a component, the factory method gives a unique name to the object so it can be referenced. When being requested by name through EL or by a component as a dependency, the factory method is invoked and the object is initialized. This provides a single location for changing the way an object is retrieved and makes accessing the object simple for any JBoss Seam component. 11

12 Production-ready code the first time with JBoss Seam test Agile teams value testing to ensure quality of their products. Agile developers utilize Test Driven Development (TDD) techniques to specify behavior, guide design, and validate correctness of code. TDD enables the developer to iteratively produce quality code, while at the same time increasing productivity. Refactoring can occur due to the safety net of a regression test suite. JBoss Seam supports the agile testing paradigm with SeamTest, a testing framework for JBoss Seam applications. JBoss Seam is a plain-old Java object (POJO)-based framework, which makes it ideal for unit testing. SeamTest includes support for unit testing with mocks, as well as integration testing for full functional validation of a system. Use case: Eliminate defects early with unit testing using SeamTest A consistently high number of defects is found during user testing. The cost of defects caught late in the development cycle is very high. The production release is delayed by new bugs introduced by last-minute fixes. This leads to production downtime. The development team aims to build a unit test suite to address this obvious quality issue. Unit testing, in conjuction with TDD, validates code incrementally and catches defects early in the process. When a bug is eliminated early, less cost is incurred. In order to make unit testing easy, JBoss Seam provides SeamTest, which is based on the TestNG framework. TestNG is a next-generation test framework inspired by JUnit. It contains a host of useful features such as support for all categories of testing (unit, functional, and integration), parallel test execution, and configuration-based grouping of tests. As JBoss Seam components are POJO-based and leverage bijection, testing is as simple as setting attribute values and invoking the method under test. In certain circumstantances creating a unit test requires mocking out class dependencies that are bijected. SeamTest provides the mock facilities to simulate bijection. In addition, developers can test database-dependent modules by mocking out the database. JBoss Seam comes bundled with HSQLDB, a hypersonic database often used to replace a production database in a testing environment. By configuring the persistence.xml to connect to HSQLDB, you can test out JBoss Seam components with a mock database. Use case: Validate the system with automated integration tests The business would like to reduce the drag of manual end-to-end testing prior to release. Repeating manual regression tests of existing features is time-intensive and high-cost. However, the risk of dropping this testing entirely is too high. The development team makes an effort to write automated integration tests to address this concern. Integration testing can pose technical challenges, as application components generally depend on container infrastructure. This infrastructure is only available when the application is deployed to the application server. Automated testing of deployed applications is achievable, but requires additional tools and overhead. SeamTest alleviates this hurdle by providing an embedded runtime environment that manages JBoss Seam components. The embedded environment provides the necessary container services to emulate the server environment. Developers can test JBoss Seam components, trusting that they'll behave just as they would when deployed to the application server. In order to exercise functional tests, execution can be started from the JSF layer. SeamTest is able to bind test data to JBoss Seam components via JSF EL expressions, as well as invoke component actions. The FacesRequest API allows you to manipulate the JSF lifecyle to simulate different scenarios. JBoss Seam can also mock out resources that are not available in the integration test environment with the annotation 12

13 @Install(precendence=MOCK). For example, the JBoss Seam identity component, which models a live user, can be mocked out in the test environment with a substitube mock class with annotation. With these tools at hand, a developer can create an integration test that closely resembles a JSF page, invokes JBoss Seam components, and executes all the way to completion. SeamTest provides the tools necessary to create a valuable regression test suite. Agile teams rely on testing to produce a quality product. JBoss Seam provides the infrastracture to make testing an everyday practice. Reduce front-end development effort with JBoss Seam User interface design and implementation plays a large role in enterprise web application development. The user interface provides the first impression of an application and is often linked to the success of a project. UI implementation techniques also affect success. Agile developers value simplicity, maintainability, and flexibility when choosing a front-end technology. Front-end freedom of choice JBoss Seam is UI-agnostic it allows you to choose the RIA technology that is the right fit for your project. JBoss Seam greatly simplifies JSF development, but also provides many front-end technologies to choose from. This gives developers maximum flexibility in user interface development. Use case: Interface must adapt to constantly changing client needs The business has basic application needs today, but anticipates that external applications will likely require complex desktop-like features, interface animation, and mobile device access sometime in the future. JBoss Seam is web 2.0-ready with a host of features that simplify front-end development regardless of what RIA technology the features necessitate. JBoss Seam POJO components remain independent of the view layer, allowing the interface to adapt to changing client needs. JBoss Seam comes packaged with RichFaces, a component library for JSF that makes it simple to incorporate AJAX-enabled components into your application. IceFaces, an alternative JSF component library, also enables simple AJAX out-of-the-box. JBoss Seam also includes various integration APIs that connect other view technologies. Flamingo can be used to glue Flex, JavaFX, Swing, J2ME, or Android to Seam. Seam also provides an integration layer for the Google Web Toolkit (GWT) that allows GWT widgets to interact directly with Seam components. DRY up your JSF with Facelets By default, JBoss Seam integrates with Facelets as its view technology. Facelets technology was designed to align with the JSF component model and lifecycle as opposed to JSP technology which places focus on generating dynamic content. Unlike JSPs, Facelets artifacts are not compiled into Servlets. Facelets are defined as.xhtml files and are directly transformed into elements of the JSF component tree. Facelets technology boasts a simple programming model, higher performance rendering, and better leverages JSF. The diagram below depicts how the core Facelets features of templating and composite components enable reuse across JSF pages. An application may have three separate pages, but each page shares a page template while two of the pages display a common component. 13

14 Figure 8 Template header <ui:insert> footer header header header View product <my:summary> Edit product Product sales <my:summary> footer footer footer The following use cases describe how these features enable rapid JSF development by adhering to the agile principal "don't repeat yourself" (DRY). Use case: Maintain a consistent look and feel across pages The business wants every page of the application to have a standard menu at the top and a footer at the bottom to maintain a consistent look and feel. Templating allows you to create pages that act as a base for other pages in an application. Using the ui:composition tag and the template attribute, developers can build a file that contains header and footer information and then create content pages that inherit their appearance from the template file. The template is specified with ui:insert tags, which identify where page content can vary. Templated pages then use ui:define tags to define exactly how the content should vary. This applies the Gang of Four (GoF) template method pattern to UI pages. Templating allows JBoss Seam developers to develop new pages rapidly with a consistent look and feel by reusing code. 14

15 Use case: Reduce UI code using composite components The business needs to display summary information of the common business data in various locations throughout the application. The summary information is composed of several JSF components, including a data table, chart, and tree. The brute force approach to solving the above use case would be to repeat the JSF tag code in every page of the application. However, this would result in a large amount of duplicated code and would violate the DRY principle. Adhering to DRY is critical to developing reusable and maintainable code. Facelets technology offers composite components. A composite component is one or more existing JSF components that are used together. Any markup within an.xhtml file can be used to create a composite component. Unlike a traditional JSF custom component, a composite component does not require the implementation of complicated JSF interfaces or custom rendering of objects. By extracting JSF component declarations into a.xhtml file, then passing the parameters to the page, a developer can create a custom component. This file can then be defined as a custom tag by simply referencing the file and giving it a name. The custom tag can now be easily imported and used across pages. Each page can pass specific parameters to customize the component according to business rules. This allows a single declaration of the JSF UI components, while enabling the content to vary per page. Rapid Ajax development with RichFaces RIA applications are often appealing because of their positive user experience. The UI is quick and responsive and the application feels more like a desktop application. A key component that facilitates this rich user experience is Ajax. With the arrival of web 2.0 applications, Ajax has moved into the spotlight. However, implementing Ajax capabilities has its consequences. Client-side scripting development is lengthy and code testing is arduous. Managing asynchronous requests and browser compatibility with scripting code are problematic issues. These concerns increase the development time for a team and can hinder the agility of a project. RichFaces is an Ajax-enabled framework that allows easy integration of Ajax capabilities into a web application. Developers can integrate Ajax capabilities and applications, without using JavaScript. Any RichFaces component can be Ajax-enabled, making development of an RIA application very easy. Use case: Enhance user experience with RichFaces components The business wants a web application that is slick, visually appealing, and demonstrates user interaction unlike the click and wait applications of the past. The development team wants to provide these capabilities without affecting project velocity. RichFaces is able to meet this need quickly and efficiently. The RichFaces component library comes with a large set of packaged components from which developers can choose. You can use components prefixed with rich: which are Ajax enabled out of the box or use a4j: components that add Ajax capabilities to standard JSF components. RichFaces also allows page-wide support so that portions of a page can be updated with Ajax requests, thus limiting form submission to the server. Ajax capabilities and concerns are taken care of by the RichFaces framework, greatly easing the burden to the developer. In addition, JBoss Seam simplifies the use of Ajax, making it the perfect pairing for RichFaces. The asyncronous requests Ajax introduces can create concurrency issues in stateful web applications. JBoss Seam automatically synchronizes the conversation, which ensures that even in the face of asynchronous requests, applications behave consistently. 15

16 Integration framework Enterprise applications often require a host of various technologies to fulfill complicated requirements. For example, an application may need to export a document as a PDF file or send a daily report to users by . A work-flow engine could be used to coordinate several different collaborating enterprise applications. JBoss Seam is a powerful framework that integrates various technologies so that developers can quickly meet business needs. JBoss Seam developers interact with simplified APIs and use a consistent declarative approach to leverage various technologies. Use case: Send a daily report to users The business would like a summary report of sales data delivered daily by . At a specific time of day, the application must assemble summary data in an and deliver it to the users' boxes. Sending from a web application is not complicated, but it is a messy task. The developer must navigate his way through the JavaMail API and embed data as string literals, while formatting the mail with HTML tags. The procedure is error-prone and painful. JBoss Seam simplifies generation with a template-based approach. The format and content is developed as an.xhtml file. JBoss Seam provides mail tags that can be placed directly into a page. For example, <m:from>, <m:to>, and <m:subject> mark the typical portions of an message. JBoss Seam components then use Renderer to send the template out as an . Because the message is developed as a Facelets page, the API is powerful and familiar to the developer, allowing complex messages to be created easily. In order to satisfy the requirement of delivering at a specific time of day, JBoss Seam utilizes Quartz Scheduler. Quartz is an open source implementation built to handle recurring tasks in applications. You can use annotations to mark a method that needs to execute periodically. annotation marks the periodic method, annotations delineate the timing aspects of the task. The declarative nature of annotations with Quartz provides a simplistic alternative to the conventional code-heavy timer APIs of Java Timer and EJBTimer. Use case: Orchestrate disparate applications into one business process The business has several existing applications that function separately, but together achieve a business goal. For example, an insurance agency has one application that files a claim, then another application that evaluates the claim, then yet another that processes the claim. The communication between these steps is done manually by employees. It would be beneficial if this business process was automated. JBoss Seam comes integrated with JBoss jbpm (Business Process Management). JBoss jbpm helps enterprises create and automate business processes that coordinate between people, applications, and services. jbpm offers workflow capabilities, process management, and state management that can be harnessed to define business flows in a fast and efficient manner, while reducing development time. Instead of manually coding coordination between systems, JBoss jpbm allows a declarative approach to define process in a centralized place. JBoss jpdl (Process Definition Language) uses declarative programming techniques and allows developers to simply structure processes. The JBoss visual jpdl IDE designer further eases process design, as the developer can define the process in a UML-like syntax. Furthermore, all the useful attributes of JBoss Seam, including stateful components, JSF, Ajax, and JBoss Hibernate, are fully available during JBoss jbpm development. 16

17 Using JBoss jpdl, a developer can integrate business process state definition with a UI pageflow sequence. JBoss jpbm integration removes much of the overhead encountered when developing automated business process management applications. The focus can remain on increasing the business value instead of technical hurdles. Use case: Use existing Spring beans in a JBoss Seam application The business has an older application that contains functionality now needed for the new flagship development project. The application was developed using the Spring framework, so the development team is looking to re-use existing Spring beans. This allows the team to focus on new feature development rather than recreating existing solutions. JBoss Seam makes it simple to utilize existing Spring beans within JBoss Seam components. By simply adding the Spring DelegatingVariableResolver to the faces-config.xml file, any Spring bean can be injected or accessed in an XHTML page via EL. If you are not using JSF or you would prefer your Spring beans to be JBoss Seam components, you can simply place the <seam:component> tag within the bean declaration. Wealth of supporting technologies itext PDF generation, Seam Mail, Quartz Scheduler, and JBoss jbpm are some of the more notable technologies that are smoothly integrated into JBoss Seam. Below is a table containing some of the integration technologies that JBoss Seam provides. Technology itext JBoss jbpm Seam Mail Quartz Scheduler Spring Framework ANTLR Drools Groovy TestNg Microsoft Excel Spreadsheet Application YARFRAW CAPTCHA Description PDF generation Enterprise business process management distribution Schedule recurring tasks Dependency injection framework Rich text and WYSIWYG output Business rules engine Dynamic language capabilities Unit testing framework Export of information into Excel files RSS feed integration Distinguish between human and automated interactions 17

18 Scaling on a dime with JBoss Seam Enterprise application scalability is critical in today's rapidly changing business environment. User bases grow quickly as new applications and websites gain popularity. The rapid pace of adoption is an exciting prospect, but even the best applications are rendered useless when their load capabilities are exceeded. The database is generally the primary performance bottleneck. The database is often shared across application instances in a clustered environment and even across different applications. Expensive and repeated calculations also hinder performance by utilizing precious CPU time. The multi-layer caching provided by JBoss Seam eliminates bottlenecks at the source and enhances performance with minimal impact to the underlying application logic. As shown in the diagram below, caching can be performed at the presentation layer, business layer, and ORM layer with JBoss Seam allowing you to address caching according to the specifics of a scenario. Figure 9 User View product info View sales trends Ship product JBoss Seam multi-layer caching Presentation layer <s:cache> Business layer CacheProvider ORM layer 2nd level cache Enabling multi-layer caching is easy. JBoss Seam supports three cache providers out-of-the-box: JBoss Cache, JBoss POJO Cache, and EHCache. Simply include the caching library along with its dependencies and configure the cache provider in the components.xml file. As each use case will demonstrate, multilayer caching allows the application to scale according to user needs without affecting the team's ability to deliver new features. Use case: Rendering static webpages The business has several product information pages that change rarely. These pages are rendered by querying the database, loading a hierarchy of entities, and then constructing the page from a component tree. If certain pages are used often and change rarely, the processing time and memory spent rendering these pages can be reclaimed. While this seems complex, JBoss Seam makes it simple. 18

19 The view caching provided by the multi-layer caching model addresses this issue. The <s:cache> component wraps a set of JSF components in an XHTML page. This instructs JBoss Seam to cache this region of HTML when rendered by JSF. Upon following page requests, JBoss Seam will then render the cached portion of the page from memory until the configured time of expiration. This bypasses any database calls, avoids reloading entities into memory, and saves processing time to re-render the page. Use case: Retrieving data that is heavily used and read-mostly The application regularly retrieves general product data for business functions. The data is read-only most of the time. Since the page is frequently used, the queries to retrieve the data are repeatedly issued. It is unnecessary to continually execute queries to retrieve this type of read-mostly data. With JBoss Hibernate as the default ORM, second-level caching can be leveraged. Data can be cached in-memory to avoid a database round-trip, which improves application performance and reduces database load. JBoss Hibernate can cache read-mostly data by configuring a second-level cache provider. Simply enable second-level caching, specify the cache provider, and annotate the entities that should be cached. When a configured entity instance is first retrieved, JBoss Hibernate will issue a database query. Once loaded, the entity data will be stored in-memory using the configured cache provider. On subsequent entity retrievals, JBoss Hibernate will load the instance from the in-memory cache, thus bypassing the database altogether. JBoss Hibernate will continue to use the cache until the configured expiration policy is exceeded. Use case: High-cost calculations that often yield the same result The application performs CPU-intensive trending calculations for last month's sales.the sales team accesses this information regularly to compare weekly sales figures and perform forecast analysis. As this information is calculated a month at a time, performing this calculation on every request uses excessive CPU cycles. To avoid this, calculations could be performed when first requested and the information cached for the remainder of the month. JBoss Seam provides direct access to the cache provider through the CacheProvider component. This component can be injected into any JBoss Seam component and then used to cache any Java object. In this case, the calculated results could be stored in a POJO and the object put into the cache. The object can then be retrieved from the CacheProvider on subsequent requests to avoid additional calculation until the first request of the next month. Agile RIA development framework JBoss Seam simplifies development and places focus back on implementing business needs. This enables agile teams to be successful in today's dynamic business environment. JBoss Seam provides the perfect technology fit for the agile development environment. 19

How To Write A Web Framework In Java

How To Write A Web Framework In Java Seam Framework Experience the Evolution of Java ЕЕ Second Edition Michael Juntao Yuan Jacob Orshalick Thomas Heute PRENTICE HALL Upper Saddle River, NJ Boston Indianapolis San Francisco New York Toronto

More information

Rapid Application Development. and Application Generation Tools. Walter Knesel

Rapid Application Development. and Application Generation Tools. Walter Knesel Rapid Application Development and Application Generation Tools Walter Knesel 5/2014 Java... A place where many, many ideas have been tried and discarded. A current problem is it's success: so many libraries,

More information

Credits: Some of the slides are based on material adapted from www.telerik.com/documents/telerik_and_ajax.pdf

Credits: Some of the slides are based on material adapted from www.telerik.com/documents/telerik_and_ajax.pdf 1 The Web, revisited WEB 2.0 marco.ronchetti@unitn.it Credits: Some of the slides are based on material adapted from www.telerik.com/documents/telerik_and_ajax.pdf 2 The old web: 1994 HTML pages (hyperlinks)

More information

Oracle Application Development Framework Overview

Oracle Application Development Framework Overview An Oracle White Paper June 2011 Oracle Application Development Framework Overview Introduction... 1 Oracle ADF Making Java EE Development Simpler... 2 THE ORACLE ADF ARCHITECTURE... 3 The Business Services

More information

CrownPeak Java Web Hosting. Version 0.20

CrownPeak Java Web Hosting. Version 0.20 CrownPeak Java Web Hosting Version 0.20 2014 CrownPeak Technology, Inc. All rights reserved. No part of this document may be reproduced or transmitted in any form or by any means, electronic or mechanical,

More information

Automating Rich Internet Application Development for Enterprise Web 2.0 and SOA

Automating Rich Internet Application Development for Enterprise Web 2.0 and SOA Automating Rich Internet Application Development for Enterprise Web 2.0 and SOA Enterprise Web 2.0 >>> FAST White Paper November 2006 Abstract Modern Rich Internet Applications for SOA have to cope with

More information

Enterprise Application Development In Java with AJAX and ORM

Enterprise Application Development In Java with AJAX and ORM Enterprise Application Development In Java with AJAX and ORM ACCU London March 2010 ACCU Conference April 2010 Paul Grenyer Head of Software Engineering p.grenyer@validus-ivc.co.uk http://paulgrenyer.blogspot.com

More information

OUR COURSES 19 November 2015. All prices are per person in Swedish Krona. Solid Beans AB Kungsgatan 32 411 19 Göteborg Sweden

OUR COURSES 19 November 2015. All prices are per person in Swedish Krona. Solid Beans AB Kungsgatan 32 411 19 Göteborg Sweden OUR COURSES 19 November 2015 Solid Beans AB Kungsgatan 32 411 19 Göteborg Sweden Java for beginners JavaEE EJB 3.1 JSF (Java Server Faces) PrimeFaces Spring Core Spring Advanced Maven One day intensive

More information

An introduction to creating JSF applications in Rational Application Developer Version 8.0

An introduction to creating JSF applications in Rational Application Developer Version 8.0 An introduction to creating JSF applications in Rational Application Developer Version 8.0 September 2010 Copyright IBM Corporation 2010. 1 Overview Although you can use several Web technologies to create

More information

Case Studies of Running the Platform. NetBeans UML Servlet JSP GlassFish EJB

Case Studies of Running the Platform. NetBeans UML Servlet JSP GlassFish EJB September Case Studies of Running the Platform NetBeans UML Servlet JSP GlassFish EJB In this project we display in the browser the Hello World, Everyone! message created in the session bean with servlets

More information

Web Application Development for the SOA Age Thinking in XML

Web Application Development for the SOA Age Thinking in XML Web Application Development for the SOA Age Thinking in XML Enterprise Web 2.0 >>> FAST White Paper August 2007 Abstract Whether you are building a complete SOA architecture or seeking to use SOA services

More information

White Paper: 1) Architecture Objectives: The primary objective of this architecture is to meet the. 2) Architecture Explanation

White Paper: 1) Architecture Objectives: The primary objective of this architecture is to meet the. 2) Architecture Explanation White Paper: 1) Architecture Objectives: The primary objective of this architecture is to meet the following requirements (SLAs). Scalability and High Availability Modularity and Maintainability Extensibility

More information

OpenText Information Hub (ihub) 3.1 and 3.1.1

OpenText Information Hub (ihub) 3.1 and 3.1.1 OpenText Information Hub (ihub) 3.1 and 3.1.1 OpenText Information Hub (ihub) 3.1.1 meets the growing demand for analytics-powered applications that deliver data and empower employees and customers to

More information

The Oracle Fusion Development Platform

The Oracle Fusion Development Platform The Oracle Fusion Development Platform Juan Camilo Ruiz Senior Product Manager Development Tools 1 The preceding is intended to outline our general product direction. It is intended for information purposes

More information

A Comparison of Open Source Application Development Frameworks for the Enterprise

A Comparison of Open Source Application Development Frameworks for the Enterprise A Comparison of Open Source Application Development Frameworks for the Enterprise Webinar on March 12, 2008 Presented by Kim Weins, Sr. VP of Marketing at OpenLogic and Kelby Zorgdrager, President of DevelopIntelligence

More information

MatchPoint Technical Features Tutorial 21.11.2013 Colygon AG Version 1.0

MatchPoint Technical Features Tutorial 21.11.2013 Colygon AG Version 1.0 MatchPoint Technical Features Tutorial 21.11.2013 Colygon AG Version 1.0 Disclaimer The complete content of this document is subject to the general terms and conditions of Colygon as of April 2011. The

More information

Web Frameworks. web development done right. Course of Web Technologies A.A. 2010/2011 Valerio Maggio, PhD Student Prof.

Web Frameworks. web development done right. Course of Web Technologies A.A. 2010/2011 Valerio Maggio, PhD Student Prof. Web Frameworks web development done right Course of Web Technologies A.A. 2010/2011 Valerio Maggio, PhD Student Prof.ssa Anna Corazza Outline 2 Web technologies evolution Web frameworks Design Principles

More information

MarkLogic Server. Reference Application Architecture Guide. MarkLogic 8 February, 2015. Copyright 2015 MarkLogic Corporation. All rights reserved.

MarkLogic Server. Reference Application Architecture Guide. MarkLogic 8 February, 2015. Copyright 2015 MarkLogic Corporation. All rights reserved. Reference Application Architecture Guide 1 MarkLogic 8 February, 2015 Last Revised: 8.0-1, February, 2015 Copyright 2015 MarkLogic Corporation. All rights reserved. Table of Contents Table of Contents

More information

Dynamic website development using the Grails Platform. Joshua Davis Senior Architect Cognizant Technology Solutions joshua.davis@cognizant.

Dynamic website development using the Grails Platform. Joshua Davis Senior Architect Cognizant Technology Solutions joshua.davis@cognizant. Dynamic website development using the Grails Platform Joshua Davis Senior Architect Cognizant Technology Solutions joshua.davis@cognizant.com Topics Covered What is Groovy? What is Grails? What are the

More information

zen Platform technical white paper

zen Platform technical white paper zen Platform technical white paper The zen Platform as Strategic Business Platform The increasing use of application servers as standard paradigm for the development of business critical applications meant

More information

SAP NetWeaver Opens SAP ERP world. Amedeo Prodi SAP Italia

SAP NetWeaver Opens SAP ERP world. Amedeo Prodi SAP Italia SAP NetWeaver Opens SAP ERP world Amedeo Prodi SAP Italia SAP NetWeaver is an Evolutionary Platform: From Infrastructure to Applistructure SAP NetWeaver becomes the business process platform Productivity

More information

Framework Adoption for Java Enterprise Application Development

Framework Adoption for Java Enterprise Application Development Framework Adoption for Java Enterprise Application Development Clarence Ho Independent Consultant, Author, Java EE Architect http://www.skywidesoft.com clarence@skywidesoft.com Presentation can be downloaded

More information

Introducing Apache Pivot. Greg Brown, Todd Volkert 6/10/2010

Introducing Apache Pivot. Greg Brown, Todd Volkert 6/10/2010 Introducing Apache Pivot Greg Brown, Todd Volkert 6/10/2010 Speaker Bios Greg Brown Senior Software Architect 15 years experience developing client and server applications in both services and R&D Apache

More information

Category: Business Process and Integration Solution for Small Business and the Enterprise

Category: Business Process and Integration Solution for Small Business and the Enterprise Home About us Contact us Careers Online Resources Site Map Products Demo Center Support Customers Resources News Download Article in PDF Version Download Diagrams in PDF Version Microsoft Partner Conference

More information

HPC Portal Development Platform with E-Business and HPC Portlets

HPC Portal Development Platform with E-Business and HPC Portlets HPC Portal Development Platform with E-Business and HPC Portlets CHIEN-HENG WU National Center for High-Performance Computing, Hsin-Chu, 300, Taiwan E-mail: garywu@nchc.org.tw Abstract HPC Portal Development

More information

Spring Security 3. rpafktl Pen source. intruders with this easy to follow practical guide. Secure your web applications against malicious

Spring Security 3. rpafktl Pen source. intruders with this easy to follow practical guide. Secure your web applications against malicious Spring Security 3 Secure your web applications against malicious intruders with this easy to follow practical guide Peter Mularien rpafktl Pen source cfb II nv.iv I I community experience distilled

More information

YouTrack MPS case study

YouTrack MPS case study YouTrack MPS case study A case study of JetBrains YouTrack use of MPS Valeria Adrianova, Maxim Mazin, Václav Pech What is YouTrack YouTrack is an innovative, web-based, keyboard-centric issue and project

More information

Design and Functional Specification

Design and Functional Specification 2010 Design and Functional Specification Corpus eready Solutions pvt. Ltd. 3/17/2010 1. Introduction 1.1 Purpose This document records functional specifications for Science Technology English Math (STEM)

More information

Enabling AJAX in ASP.NET with No Code

Enabling AJAX in ASP.NET with No Code Enabling AJAX in ASP.NET with No Code telerik s r.a.d.ajax enables AJAX by simply dropping a control on a Web page, without otherwise modifying the application or writing a single line of code By Don Kiely

More information

JBoss. choice without compromise

JBoss. choice without compromise JBoss Enterprise Middleware choice without compromise JBOSS ENTERPRISE APPLICATION PLATFORMS: CHOICE WITHOUT COMPROMISE The JBoss open choice strategy In today s dynamic business world, the need to quickly

More information

Customer Bank Account Management System Technical Specification Document

Customer Bank Account Management System Technical Specification Document Customer Bank Account Management System Technical Specification Document Technical Specification Document Page 1 of 15 Table of Contents Contents 1 Introduction 3 2 Design Overview 4 3 Topology Diagram.6

More information

<Insert Picture Here> Betting Big on JavaServer Faces: Components, Tools, and Tricks

<Insert Picture Here> Betting Big on JavaServer Faces: Components, Tools, and Tricks Betting Big on JavaServer Faces: Components, Tools, and Tricks Steve Muench Consulting Product Manager, JDeveloper/ADF Development Team Oracle Corporation Oracle's Betting Big on

More information

Copyright 2014 Jaspersoft Corporation. All rights reserved. Printed in the U.S.A. Jaspersoft, the Jaspersoft

Copyright 2014 Jaspersoft Corporation. All rights reserved. Printed in the U.S.A. Jaspersoft, the Jaspersoft 5.6 Copyright 2014 Jaspersoft Corporation. All rights reserved. Printed in the U.S.A. Jaspersoft, the Jaspersoft logo, Jaspersoft ireport Designer, JasperReports Library, JasperReports Server, Jaspersoft

More information

CincoSecurity Multitenant Module based on fine-grained roles

CincoSecurity Multitenant Module based on fine-grained roles CincoSecurity Multitenant Module based on fine-grained roles by: María Consuelo Franky Email: lfranky@javeriana.edu.co University Javeriana - Computer Science Engineering - Bogotá (Colombia) Fabián García

More information

NS DISCOVER 4.0 ADMINISTRATOR S GUIDE. July, 2015. Version 4.0

NS DISCOVER 4.0 ADMINISTRATOR S GUIDE. July, 2015. Version 4.0 NS DISCOVER 4.0 ADMINISTRATOR S GUIDE July, 2015 Version 4.0 TABLE OF CONTENTS 1 General Information... 4 1.1 Objective... 4 1.2 New 4.0 Features Improvements... 4 1.3 Migrating from 3.x to 4.x... 5 2

More information

How To Test Your Web Site On Wapt On A Pc Or Mac Or Mac (Or Mac) On A Mac Or Ipad Or Ipa (Or Ipa) On Pc Or Ipam (Or Pc Or Pc) On An Ip

How To Test Your Web Site On Wapt On A Pc Or Mac Or Mac (Or Mac) On A Mac Or Ipad Or Ipa (Or Ipa) On Pc Or Ipam (Or Pc Or Pc) On An Ip Load testing with WAPT: Quick Start Guide This document describes step by step how to create a simple typical test for a web application, execute it and interpret the results. A brief insight is provided

More information

Converting Java EE Applications into OSGi Applications

Converting Java EE Applications into OSGi Applications Converting Java EE Applications into OSGi Applications Author: Nichole Stewart Date: Jan 27, 2011 2010 IBM Corporation THE INFORMATION CONTAINED IN THIS REPORT IS PROVIDED FOR INFORMATIONAL PURPOSES ONLY.

More information

HPC PORTAL DEVELOPMENT PLATFORM

HPC PORTAL DEVELOPMENT PLATFORM HPC PORTAL DEVELOPMENT PLATFORM Chien-Heng Wu, National Center for High-Performance Computing, garywu@nchc.org.tw ABSTRACT In the world of information technology, enterprise applications must be designed,

More information

Java 7 Recipes. Freddy Guime. vk» (,\['«** g!p#« Carl Dea. Josh Juneau. John O'Conner

Java 7 Recipes. Freddy Guime. vk» (,\['«** g!p#« Carl Dea. Josh Juneau. John O'Conner 1 vk» Java 7 Recipes (,\['«** - < g!p#«josh Juneau Carl Dea Freddy Guime John O'Conner Contents J Contents at a Glance About the Authors About the Technical Reviewers Acknowledgments Introduction iv xvi

More information

Why HTML5 Tests the Limits of Automated Testing Solutions

Why HTML5 Tests the Limits of Automated Testing Solutions Why HTML5 Tests the Limits of Automated Testing Solutions Why HTML5 Tests the Limits of Automated Testing Solutions Contents Chapter 1 Chapter 2 Chapter 3 Chapter 4 As Testing Complexity Increases, So

More information

applications. JBoss Enterprise Application Platform

applications. JBoss Enterprise Application Platform JBoss Enterprise Application Platform What is it? JBoss Enterprise Application Platform is the industryleading platform for next-generation enterprise Java applications. It provides a stable, open source

More information

Web4thejob. About Web4thejob. ZK x Web4thejob

Web4thejob. About Web4thejob. ZK x Web4thejob 1 Web4thejob Web4thejob is a technology company that offers software vendors and developers a reliable and affordable strategy to port their applications to the web using FOSS and Cloud Computing technologies.

More information

Architecture Guide Jahia EE v6.1

Architecture Guide Jahia EE v6.1 Documentation Architecture Guide Jahia EE v6.1 Jahia delivers the first Web Content Integration Software by combining Enterprise Web Content Management with Document and Portal Management features. Jahia

More information

Complementing Your Web Services Strategy with Verastream Host Integrator

Complementing Your Web Services Strategy with Verastream Host Integrator Verastream Complementing Your Web Services Strategy with Verastream Host Integrator Complementing Your Web Services Strategy with Verastream Host Integrator Complementing Your Web Services Strategy with

More information

Advantage of Jquery: T his file is downloaded from

Advantage of Jquery: T his file is downloaded from What is JQuery JQuery is lightweight, client side JavaScript library file that supports all browsers. JQuery is a fast and concise JavaScript Library that simplifies HTML document traversing, event handling,

More information

IBM Rational Web Developer for WebSphere Software Version 6.0

IBM Rational Web Developer for WebSphere Software Version 6.0 Rapidly build, test and deploy Web, Web services and Java applications with an IDE that is easy to learn and use IBM Rational Web Developer for WebSphere Software Version 6.0 Highlights Accelerate Web,

More information

Business Application Services Testing

Business Application Services Testing Business Application Services Testing Curriculum Structure Course name Duration(days) Express 2 Testing Concept and methodologies 3 Introduction to Performance Testing 3 Web Testing 2 QTP 5 SQL 5 Load

More information

JBoss SOAP Web Services User Guide. Version: 3.3.0.M5

JBoss SOAP Web Services User Guide. Version: 3.3.0.M5 JBoss SOAP Web Services User Guide Version: 3.3.0.M5 1. JBoss SOAP Web Services Runtime and Tools support Overview... 1 1.1. Key Features of JBossWS... 1 2. Creating a Simple Web Service... 3 2.1. Generation...

More information

Integrating SharePoint Sites within WebSphere Portal

Integrating SharePoint Sites within WebSphere Portal Integrating SharePoint Sites within WebSphere Portal November 2007 Contents Executive Summary 2 Proliferation of SharePoint Sites 2 Silos of Information 2 Security and Compliance 3 Overview: Mainsoft SharePoint

More information

Understanding SharePoint Development Choices

Understanding SharePoint Development Choices Understanding SharePoint Development Choices SharePoint is an incredibly powerful platform that can support a wide variety of business scenarios. While many solutions can be configured using out of the

More information

Communiqué 4. Standardized Global Content Management. Designed for World s Leading Enterprises. Industry Leading Products & Platform

Communiqué 4. Standardized Global Content Management. Designed for World s Leading Enterprises. Industry Leading Products & Platform Communiqué 4 Standardized Communiqué 4 - fully implementing the JCR (JSR 170) Content Repository Standard, managing digital business information, applications and processes through the web. Communiqué

More information

How To Write An Ria Application

How To Write An Ria Application Document Reference TSL-SES-WP-0001 Date 4 January 2008 Issue 1 Revision 0 Status Final Document Change Log Version Pages Date Reason of Change 1.0 Draft 17 04/01/08 Initial version The Server Labs S.L

More information

Load testing with. WAPT Cloud. Quick Start Guide

Load testing with. WAPT Cloud. Quick Start Guide Load testing with WAPT Cloud Quick Start Guide This document describes step by step how to create a simple typical test for a web application, execute it and interpret the results. 2007-2015 SoftLogica

More information

2012 LABVANTAGE Solutions, Inc. All Rights Reserved.

2012 LABVANTAGE Solutions, Inc. All Rights Reserved. LABVANTAGE Architecture 2012 LABVANTAGE Solutions, Inc. All Rights Reserved. DOCUMENT PURPOSE AND SCOPE This document provides an overview of the LABVANTAGE hardware and software architecture. It is written

More information

Inside the Digital Commerce Engine. The architecture and deployment of the Elastic Path Digital Commerce Engine

Inside the Digital Commerce Engine. The architecture and deployment of the Elastic Path Digital Commerce Engine Inside the Digital Commerce Engine The architecture and deployment of the Elastic Path Digital Commerce Engine Contents Executive Summary... 3 Introduction... 4 What is the Digital Commerce Engine?...

More information

NetBeans IDE Field Guide

NetBeans IDE Field Guide NetBeans IDE Field Guide Copyright 2005 Sun Microsystems, Inc. All rights reserved. Table of Contents Introduction to J2EE Development in NetBeans IDE...1 Configuring the IDE for J2EE Development...2 Getting

More information

Sports Management Information Systems. Camilo Rostoker November 22, 2002

Sports Management Information Systems. Camilo Rostoker November 22, 2002 Sports Management Information Systems Camilo Rostoker November 22, 2002 Introduction We are in the information age The availability of technology has brought forth a new problem domain how do we manage

More information

A Guide To Evaluating a Bug Tracking System

A Guide To Evaluating a Bug Tracking System A Guide To Evaluating a Bug Tracking System White Paper By Stephen Blair, MetaQuest Software Published: October, 2004 Abstract Evaluating a bug tracking system requires that you understand how specific

More information

<Insert Picture Here> Building a Complex Web Application Using ADF and Siebel

<Insert Picture Here> Building a Complex Web Application Using ADF and Siebel Building a Complex Web Application Using ADF and Siebel Nishit Rao Group Product Manager Fusion Middleware Oracle Dhiraj Soni Technical Architect GIT Apps Engineering Oracle The following

More information

Document Management. Document Management for the Agile Enterprise. AuraTech Pte Ltd

Document Management. Document Management for the Agile Enterprise. AuraTech Pte Ltd Document Management Document Management for the Agile Enterprise AuraTech Pte Ltd 30 Robinson Road, #04-01B Robinson Towers, Singapore 048546 http://www.consultaura.com PH: 6224 9238 Try it! Call AuraTech

More information

OpenShift is FanPaaStic For Java EE. By Shekhar Gulati Promo Code JUDCON.IN

OpenShift is FanPaaStic For Java EE. By Shekhar Gulati Promo Code JUDCON.IN OpenShift is FanPaaStic For Java EE By Shekhar Gulati Promo Code JUDCON.IN About Me ~ Shekhar Gulati OpenShift Evangelist at Red Hat Hands on developer Speaker Writer and Blogger Twitter @ shekhargulati

More information

Why IBM WebSphere Application Server V8.0?

Why IBM WebSphere Application Server V8.0? Why IBM Application Server V8.0? Providing the right application foundation to meet your business needs Contents 1 Introduction 2 Speed the delivery of new applications and services 3 Improve operational

More information

Java EE 6 development with Eclipse, Netbeans, IntelliJ and GlassFish. Ludovic Champenois Oracle Corporation

Java EE 6 development with Eclipse, Netbeans, IntelliJ and GlassFish. Ludovic Champenois Oracle Corporation Java EE 6 development with Eclipse, Netbeans, IntelliJ and GlassFish Ludovic Champenois Oracle Corporation The following is intended to outline our general product direction. It is intended for information

More information

Test Run Analysis Interpretation (AI) Made Easy with OpenLoad

Test Run Analysis Interpretation (AI) Made Easy with OpenLoad Test Run Analysis Interpretation (AI) Made Easy with OpenLoad OpenDemand Systems, Inc. Abstract / Executive Summary As Web applications and services become more complex, it becomes increasingly difficult

More information

Ligero Content Delivery Server. Documentum Content Integration with

Ligero Content Delivery Server. Documentum Content Integration with Ligero Content Delivery Server Documentum Content Integration with Ligero Content Delivery Server Prepared By Lee Dallas Principal Consultant Armedia, LLC April, 2008 1 Summary Ligero Content Delivery

More information

Nexus Professional Whitepaper. Repository Management: Stages of Adoption

Nexus Professional Whitepaper. Repository Management: Stages of Adoption Sonatype Nexus Professional Whitepaper Repository Management: Stages of Adoption Adopting Repository Management Best Practices SONATYPE www.sonatype.com sales@sonatype.com +1 301-684-8080 12501 Prosperity

More information

How To Retire A Legacy System From Healthcare With A Flatirons Eas Application Retirement Solution

How To Retire A Legacy System From Healthcare With A Flatirons Eas Application Retirement Solution EAS Application Retirement Case Study: Health Insurance Introduction A major health insurance organization contracted with Flatirons Solutions to assist them in retiring a number of aged applications that

More information

SSC - Web development Model-View-Controller for Java web application development

SSC - Web development Model-View-Controller for Java web application development SSC - Web development Model-View-Controller for Java web application development Shan He School for Computational Science University of Birmingham Module 06-19321: SSC Outline Outline of Topics Java Server

More information

Automation and Virtualization, the pillars of Continuous Testing

Automation and Virtualization, the pillars of Continuous Testing HP Software: Apps meet Ops 2015 Automation and Virtualization, the pillars of Continuous Testing Jerry Saelemakers/ April 2 nd, 2015 Today s business initiatives demand a balance between velocity and quality

More information

Beginning POJOs. From Novice to Professional. Brian Sam-Bodden

Beginning POJOs. From Novice to Professional. Brian Sam-Bodden Beginning POJOs From Novice to Professional Brian Sam-Bodden Contents About the Author Acknowledgments Introduction.XIII xv XVII CHAPTER1 Introduction The Java EE Market Case Study: The TechConf Website...

More information

Google Web Toolkit (GWT) Architectural Impact on Enterprise Web Application

Google Web Toolkit (GWT) Architectural Impact on Enterprise Web Application Google Web Toolkit (GWT) Architectural Impact on Enterprise Web Application First Generation HTTP request (URL or Form posting) W HTTP response (HTML Document) W Client Tier Server Tier Data Tier Web CGI-Scripts

More information

http://msdn.microsoft.com/en-us/library/4w3ex9c2.aspx

http://msdn.microsoft.com/en-us/library/4w3ex9c2.aspx ASP.NET Overview.NET Framework 4 ASP.NET is a unified Web development model that includes the services necessary for you to build enterprise-class Web applications with a minimum of coding. ASP.NET is

More information

SOA, case Google. Faculty of technology management 07.12.2009 Information Technology Service Oriented Communications CT30A8901.

SOA, case Google. Faculty of technology management 07.12.2009 Information Technology Service Oriented Communications CT30A8901. Faculty of technology management 07.12.2009 Information Technology Service Oriented Communications CT30A8901 SOA, case Google Written by: Sampo Syrjäläinen, 0337918 Jukka Hilvonen, 0337840 1 Contents 1.

More information

JBOSS ENTERPRISE APPLICATION PLATFORM MIGRATION GUIDELINES

JBOSS ENTERPRISE APPLICATION PLATFORM MIGRATION GUIDELINES JBOSS ENTERPRISE APPLICATION PLATFORM MIGRATION GUIDELINES This document is intended to provide insight into the considerations and processes required to move an enterprise application from a JavaEE-based

More information

Microsoft Office System Tip Sheet

Microsoft Office System Tip Sheet The 2007 Microsoft Office System The 2007 Microsoft Office system is a complete set of desktop and server software that can help streamline the way you and your people do business. This latest release

More information

Data management by Autodesk

Data management by Autodesk Autodesk Vault Workgroup 2015 Data management by Autodesk Autodesk Vault helps design, engineering, and manufacturing workgroups manage Digital Prototyping information. In order to provide Autodesk Productstream

More information

This presentation is for informational purposes only and may not be incorporated into a contract or agreement.

This presentation is for informational purposes only and may not be incorporated into a contract or agreement. This presentation is for informational purposes only and may not be incorporated into a contract or agreement. This following is intended to outline our general product direction. It is intended for information

More information

Front-End Performance Testing and Optimization

Front-End Performance Testing and Optimization Front-End Performance Testing and Optimization Abstract Today, web user turnaround starts from more than 3 seconds of response time. This demands performance optimization on all application levels. Client

More information

Papermule Workflow. Workflow and Asset Management Software. Papermule Ltd

Papermule Workflow. Workflow and Asset Management Software. Papermule Ltd Papermule Workflow Papermule Workflow - the power to specify adaptive and responsive workflows that let the business manage production problems in a resilient way. Workflow and Asset Management Software

More information

Developing modular Java applications

Developing modular Java applications Developing modular Java applications Julien Dubois France Regional Director SpringSource Julien Dubois France Regional Director, SpringSource Book author :«Spring par la pratique» (Eyrolles, 2006) new

More information

Adding Panoramas to Google Maps Using Ajax

Adding Panoramas to Google Maps Using Ajax Adding Panoramas to Google Maps Using Ajax Derek Bradley Department of Computer Science University of British Columbia Abstract This project is an implementation of an Ajax web application. AJAX is a new

More information

Service Virtualization

Service Virtualization Service Virtualization A faster, more efficient and less costly way to develop and test enterprise-class applications As cloud and mobile computing gain rapid acceptance, IT departments are expected to

More information

What s New in IBM Web Experience Factory 8.5. 2014 IBM Corporation

What s New in IBM Web Experience Factory 8.5. 2014 IBM Corporation What s New in IBM Web Experience Factory 8.5 2014 IBM Corporation Recent history and roadmap Web Experience Factory 8.0 2012 Multi-channel Client-side mobile Aligned with Portal 8 Developer productivity

More information

Curl Building RIA Beyond AJAX

Curl Building RIA Beyond AJAX Rich Internet Applications for the Enterprise The Web has brought about an unprecedented level of connectivity and has put more data at our fingertips than ever before, transforming how we access information

More information

MANAGEMENT AND ORCHESTRATION WORKFLOW AUTOMATION FOR VBLOCK INFRASTRUCTURE PLATFORMS

MANAGEMENT AND ORCHESTRATION WORKFLOW AUTOMATION FOR VBLOCK INFRASTRUCTURE PLATFORMS VCE Word Template Table of Contents www.vce.com MANAGEMENT AND ORCHESTRATION WORKFLOW AUTOMATION FOR VBLOCK INFRASTRUCTURE PLATFORMS January 2012 VCE Authors: Changbin Gong: Lead Solution Architect Michael

More information

JBoss AS Administration Console User Guide. by Shelly McGowan and Ian Springer

JBoss AS Administration Console User Guide. by Shelly McGowan and Ian Springer JBoss AS Administration Console User Guide 1 by Shelly McGowan and Ian Springer Preface... v 1. We Need Feedback!... v 1. Overview... 1 2. Accessing the Console... 3 3. User Interface Overview... 5 4.

More information

J j enterpririse. Oracle Application Express 3. Develop Native Oracle database-centric web applications quickly and easily with Oracle APEX

J j enterpririse. Oracle Application Express 3. Develop Native Oracle database-centric web applications quickly and easily with Oracle APEX Oracle Application Express 3 The Essentials and More Develop Native Oracle database-centric web applications quickly and easily with Oracle APEX Arie Geller Matthew Lyon J j enterpririse PUBLISHING BIRMINGHAM

More information

Software Development In the Cloud Cloud management and ALM

Software Development In the Cloud Cloud management and ALM Software Development In the Cloud Cloud management and ALM First published in Dr. Dobb's Journal, February 2009: http://www.ddj.com/development-tools/212900736 Nick Gulrajani is a Senior Solutions Architect

More information

Workshop for WebLogic introduces new tools in support of Java EE 5.0 standards. The support for Java EE5 includes the following technologies:

Workshop for WebLogic introduces new tools in support of Java EE 5.0 standards. The support for Java EE5 includes the following technologies: Oracle Workshop for WebLogic 10g R3 Hands on Labs Workshop for WebLogic extends Eclipse and Web Tools Platform for development of Web Services, Java, JavaEE, Object Relational Mapping, Spring, Beehive,

More information

SOACertifiedProfessional.Braindumps.S90-03A.v2014-06-03.by.JANET.100q. Exam Code: S90-03A. Exam Name: SOA Design & Architecture

SOACertifiedProfessional.Braindumps.S90-03A.v2014-06-03.by.JANET.100q. Exam Code: S90-03A. Exam Name: SOA Design & Architecture SOACertifiedProfessional.Braindumps.S90-03A.v2014-06-03.by.JANET.100q Number: S90-03A Passing Score: 800 Time Limit: 120 min File Version: 14.5 http://www.gratisexam.com/ Exam Code: S90-03A Exam Name:

More information

MENDIX FOR MOBILE APP DEVELOPMENT WHITE PAPER

MENDIX FOR MOBILE APP DEVELOPMENT WHITE PAPER MENDIX FOR MOBILE APP DEVELOPMENT WHITE PAPER TABLE OF CONTENTS Market Demand for Enterprise Mobile Mobile App Development Approaches Native Apps Mobile Web Apps Hybrid Apps Mendix Vision for Mobile App

More information

SOA REFERENCE ARCHITECTURE: WEB TIER

SOA REFERENCE ARCHITECTURE: WEB TIER SOA REFERENCE ARCHITECTURE: WEB TIER SOA Blueprint A structured blog by Yogish Pai Web Application Tier The primary requirement for this tier is that all the business systems and solutions be accessible

More information

ORACLE MOBILE APPLICATION FRAMEWORK DATA SHEET

ORACLE MOBILE APPLICATION FRAMEWORK DATA SHEET ORACLE MOBILE APPLICATION FRAMEWORK DATA SHEET PRODUCTIVE ENTERPRISE MOBILE APPLICATIONS DEVELOPMENT KEY FEATURES Visual and declarative development Mobile optimized user experience Simplified access to

More information

Hands on Lab SEAM AND HIBERNATE

Hands on Lab SEAM AND HIBERNATE ! JBoss Developer Studio 4.0 Hands on Lab SEAM AND HIBERNATE 1 Table of Contents Introduction 5 Overview 5 Problem 5 Included Files 5 System Expectations 5 What is Expected of You 6 Database Schema 6 Lab

More information

Global Software Change Management for PVCS Version Manager

Global Software Change Management for PVCS Version Manager Global Software Change Management for PVCS Version Manager... www.ikanalm.com Summary PVCS Version Manager is considered as one of the leading versioning tools that offers complete versioning control.

More information

the first thing that comes to mind when you think about unit testing? If you re a Java developer, it s probably JUnit, since the

the first thing that comes to mind when you think about unit testing? If you re a Java developer, it s probably JUnit, since the By Matt Love W hat s the first thing that comes to mind when you think about unit testing? If you re a Java developer, it s probably JUnit, since the tool is generally recognized as the de facto standard

More information

Developing ASP.NET MVC 4 Web Applications MOC 20486

Developing ASP.NET MVC 4 Web Applications MOC 20486 Developing ASP.NET MVC 4 Web Applications MOC 20486 Course Outline Module 1: Exploring ASP.NET MVC 4 The goal of this module is to outline to the students the components of the Microsoft Web Technologies

More information

Understanding Business Process Management

Understanding Business Process Management Title Page Understanding Business Process Management Version 8.2 April 2012 Copyright This document applies to webmethods Product Suite Version 8.2 and to all subsequent releases. Specifications contained

More information

Developing ASP.NET MVC 4 Web Applications

Developing ASP.NET MVC 4 Web Applications Course M20486 5 Day(s) 30:00 Hours Developing ASP.NET MVC 4 Web Applications Introduction In this course, students will learn to develop advanced ASP.NET MVC applications using.net Framework 4.5 tools

More information