Automated Product Ratings and Review dashboardBalaji Katakam
• Created a Google Form to collect feedback and ratings from customers and store in Google Sheets
• Developed a Python code to fetch feedback and perform sentiment analysis using NLTK in Python and push data to AWS RDS MySQL
• Designed a Dashboard using Power BI that fetches data from AWS RDS MySQL to monitor sales, ratings, sentiment scores, perform sales forecasts of various products and product categories with drill down features
• Developed an efficient IT Strategy for USPS to reduce costs, increase profits and improve customer outreach
• Introduced technological advancements that can improve the time efficiency and increase productivity of the business
-Enrichment - Unlocking the value of data for digital transformation - Big Da...webwinkelvakdag
As pressure for digital transformation increases, companies must harness big data more effectively. But the well-known V’s of data—volume, variety, velocity—represent both opportunities and challenges. Data enrichment enables organizations to take full advantage of the benefits while addressing these typical problems. In this session, we look at what an enrichment workflow might look like and how it enhances data’s value across different use cases.
$12.44 Billion is the estimated global spending on IIOT platforms by 2024. Manufacturers have started combining the physical production processes with digital technologies like Robotics, AI, Cloud Computing, and BigData. These advancements help factories to run autonomously, coupled with the capability to self-correct.
Being an essential outcome of Industry 4.0, Smart factories are the future of manufacturing that is still in its nascent stage.
If you want to monetize this opportunity and move past the complexities of disparate systems, then connect with Rapidops!
Sage MAS Intelligence offers powerful and easy-to-use graphical financial reporting capabilities to address your needs. Learn how Sage MAS Intelligence can help you gain access to your entire business data, reduce month-end close time, run real-time reports and much more.
The last 18+ months have proven to be like no other time in modern history, and it has had a profound effect on the supply chain in the manufacturing industry. This disruption has meant many restless nights worrying about supply chains, workforce agility, capacity planning, resource allocation, and much more for manufacturers. Manufacturers have realized that better planning and preparedness are crucial to adapting to the rapid changes in demand seen in today's current climate.
In this webinar, you will learn how to address these challenges head-on as we discuss how your organization can become more agile and scale to your specific business requirements and how Cloud ERP systems can support better planning and preparedness for what's next.
________________________________________
About The Presenter
Steve Canter - Director of Global Service Delivery
Steve Canter has over 25 years of experience in the information technology industry. Steve has been responsible for delivering solutions to many medium-sized and large companies in a variety of industries as a consultant and project manager. Steve also brings a unique perspective to SmartERP, having spent over ten years as the CIO for a manufacturing and distribution company. During that period, he also helped shape product and customer service strategy at Microsoft and Oracle as a member of several customer advisory boards.
Automated Product Ratings and Review dashboardBalaji Katakam
• Created a Google Form to collect feedback and ratings from customers and store in Google Sheets
• Developed a Python code to fetch feedback and perform sentiment analysis using NLTK in Python and push data to AWS RDS MySQL
• Designed a Dashboard using Power BI that fetches data from AWS RDS MySQL to monitor sales, ratings, sentiment scores, perform sales forecasts of various products and product categories with drill down features
• Developed an efficient IT Strategy for USPS to reduce costs, increase profits and improve customer outreach
• Introduced technological advancements that can improve the time efficiency and increase productivity of the business
-Enrichment - Unlocking the value of data for digital transformation - Big Da...webwinkelvakdag
As pressure for digital transformation increases, companies must harness big data more effectively. But the well-known V’s of data—volume, variety, velocity—represent both opportunities and challenges. Data enrichment enables organizations to take full advantage of the benefits while addressing these typical problems. In this session, we look at what an enrichment workflow might look like and how it enhances data’s value across different use cases.
$12.44 Billion is the estimated global spending on IIOT platforms by 2024. Manufacturers have started combining the physical production processes with digital technologies like Robotics, AI, Cloud Computing, and BigData. These advancements help factories to run autonomously, coupled with the capability to self-correct.
Being an essential outcome of Industry 4.0, Smart factories are the future of manufacturing that is still in its nascent stage.
If you want to monetize this opportunity and move past the complexities of disparate systems, then connect with Rapidops!
Sage MAS Intelligence offers powerful and easy-to-use graphical financial reporting capabilities to address your needs. Learn how Sage MAS Intelligence can help you gain access to your entire business data, reduce month-end close time, run real-time reports and much more.
The last 18+ months have proven to be like no other time in modern history, and it has had a profound effect on the supply chain in the manufacturing industry. This disruption has meant many restless nights worrying about supply chains, workforce agility, capacity planning, resource allocation, and much more for manufacturers. Manufacturers have realized that better planning and preparedness are crucial to adapting to the rapid changes in demand seen in today's current climate.
In this webinar, you will learn how to address these challenges head-on as we discuss how your organization can become more agile and scale to your specific business requirements and how Cloud ERP systems can support better planning and preparedness for what's next.
________________________________________
About The Presenter
Steve Canter - Director of Global Service Delivery
Steve Canter has over 25 years of experience in the information technology industry. Steve has been responsible for delivering solutions to many medium-sized and large companies in a variety of industries as a consultant and project manager. Steve also brings a unique perspective to SmartERP, having spent over ten years as the CIO for a manufacturing and distribution company. During that period, he also helped shape product and customer service strategy at Microsoft and Oracle as a member of several customer advisory boards.
The fast-emerging distributed-ledger technology known as blockchain holds great promise. Blockchain provides controlled, secure access to sensitive data enabling traditionally independent organizations to work together to streamline and integrate processes. Business leaders are still trying to figure out how to put the technology to work. Yet most agree: Blockchain can unlock the vast value trapped in their business operations.
In this webinar series we will present an overview of how SAP Cloud for Energy can improve your Utilities Landscape. We will also reveal never before seen previews of how your transformed landscape could look like.
Join us to discuss:
- SAP's Investment Focus Topics for Utilities
- SaaS Portfolio as an alternative for S/4HANA for Utilities on Premise
- The SAP Cloud for Energy Solution
- Demo: Mock-up of UI for Meter Data Specialist
Accenture is leading the next evolution of Regulatory by applying leading edge solutions across the drug and device lifecycle that unify innovative technologies with compliance-focused processes. Visit https://accntu.re/2YqL18r to learn more.
IOT IN MANUFACTURING , ndustrial Internet of Things (IIoT) is going full throttle – increasing connectivity, generating data, and unlocking potential like never before. Now it’s time to capitalize on the full power of this data. Altair knows how to take full advantage of data to fuel innovation, drive new opportunities, and accelerate your smart manufacturing transformation.
Using Adaptive Scrum to Tame Process Reverse Engineering in Data Analytics Pr...Cognizant
Organizations rely on analytics to make intelligent decisions and improve business performance, which sometimes requires reproducing business processes from a legacy application to a digital-native state to reduce the functional, technical and operational debts. Adaptive Scrum can reduce the complexity of the reproduction process iteratively as well as provide transparency in data analytics porojects.
Digital Transformation is one of the most important business trends of our time. A lot of research has already been done on this topic. Most research has examined Digital Transformation within organisations, or between organisations
and their customers.
But in today’s globalised and outsourced world, an organisation’s success is no longer dependent on its own efforts alone. Today, the success of an organisation depends largely on how effectively it can orchestrate a vast, global network of supply chain partners to deliver goods and services that meet the needs of individual consumers.
This presentation [which was presented today to mark European Supply Chain Day in Ireland] highlights how the utilisation of digital technologies and processes enable supply chains to be more effectively and efficiently managed, creating business networks and increasing the overall supply chain visibility within the network.
Data-Driven Operating Models Enabled by Process MiningCelonis
Why is a data-driven operating model so important? In this session, you’ll explore the factors driving current operating structures, the impact of technology on those factors and how process mining supports the process approach that’s critical for true transformation. Whether your goal is efficiency, cost reduction, automation or some combination of these and more, you’ll learn what you need to take your operations to the next level.
Presenter:
Theodor Schabicki, Partner, Digital & Strategy, Bearing Point
Mars Presentation at the Supply Chain Insights Global Summit 2018Lora Cecere
Mars Franklin committed in 2017 to build a program to improve customer service and become demand driven. In this presentation, John Wisniewski, program manager for digital transformation, share candid insights on the implementation.
Decode Digitalization for Your Discrete Manufacturing CompanyCapgemini
Realize tangible benefits in your discrete manufacturing business using digital technologies, and learn where best to apply these solutions. Hear an expert panel from Capgemini and SAP demystify key concepts and explain how to make digital digestible with the Fast Digital 4 Discrete Industries initiative by SAP and Capgemini.
[AI Webinar Series P1] - How Advanced Text Analytics Can Increase the Operati...JK Tech
Digitization is considered as the next step-change that will have a bigger impact on businesses than even the internet. To win in the digital journey, companies must act now, or be left behind wondering what happened!
In this webinar series, JKT Smart Analytics demonstrates how they empower their customers to create maximum business value out of this eminent Digital data explosion through digital business empowerment by leveraging the digitization to increase their top-line revenue – customer experience, optimize the bottom-line costs – operational efficiency, enhancing the safety factor and reinventing the business process in line with the changing world.
This webinar is focused on how our AI-based text analytics solutions – First, JKT Social Media Radar; a SaaS-based AI NLP Platform, helping organizations to gain insights on market and customer perceptions on their brands, products & services. Secondly, Sales Promotion Recommendation Engine helps customers to enhance their top-line growth and streamline the bottom-line costs.
KEY TAKEAWAYS:
1) How should a business plan their journey through the Digital data revolution?
2) How can a company make use of digital data to create effective data strategies for the increased outcome(s)?
3) How IT practitioners can catalyst the digital data mining journey and attract business adoption?
4) JKT Social Media Radar solution – What, Why, Supporting Business applications, and more.
5) How can companies reduce operational costs by automating human effort-intensive tasks using cognitive Analytics?
RealtyTrac Vice President Daren Blomquist walks through the basics of foreclosure, from how the process works to the three foreclosure-buying opportunities and the five steps to buying a foreclosure.
He also goes through a live demo of the RealtyTrac subscription website, showing off some of the powerful functionality and tools available to RealtyTrac members.
The fast-emerging distributed-ledger technology known as blockchain holds great promise. Blockchain provides controlled, secure access to sensitive data enabling traditionally independent organizations to work together to streamline and integrate processes. Business leaders are still trying to figure out how to put the technology to work. Yet most agree: Blockchain can unlock the vast value trapped in their business operations.
In this webinar series we will present an overview of how SAP Cloud for Energy can improve your Utilities Landscape. We will also reveal never before seen previews of how your transformed landscape could look like.
Join us to discuss:
- SAP's Investment Focus Topics for Utilities
- SaaS Portfolio as an alternative for S/4HANA for Utilities on Premise
- The SAP Cloud for Energy Solution
- Demo: Mock-up of UI for Meter Data Specialist
Accenture is leading the next evolution of Regulatory by applying leading edge solutions across the drug and device lifecycle that unify innovative technologies with compliance-focused processes. Visit https://accntu.re/2YqL18r to learn more.
IOT IN MANUFACTURING , ndustrial Internet of Things (IIoT) is going full throttle – increasing connectivity, generating data, and unlocking potential like never before. Now it’s time to capitalize on the full power of this data. Altair knows how to take full advantage of data to fuel innovation, drive new opportunities, and accelerate your smart manufacturing transformation.
Using Adaptive Scrum to Tame Process Reverse Engineering in Data Analytics Pr...Cognizant
Organizations rely on analytics to make intelligent decisions and improve business performance, which sometimes requires reproducing business processes from a legacy application to a digital-native state to reduce the functional, technical and operational debts. Adaptive Scrum can reduce the complexity of the reproduction process iteratively as well as provide transparency in data analytics porojects.
Digital Transformation is one of the most important business trends of our time. A lot of research has already been done on this topic. Most research has examined Digital Transformation within organisations, or between organisations
and their customers.
But in today’s globalised and outsourced world, an organisation’s success is no longer dependent on its own efforts alone. Today, the success of an organisation depends largely on how effectively it can orchestrate a vast, global network of supply chain partners to deliver goods and services that meet the needs of individual consumers.
This presentation [which was presented today to mark European Supply Chain Day in Ireland] highlights how the utilisation of digital technologies and processes enable supply chains to be more effectively and efficiently managed, creating business networks and increasing the overall supply chain visibility within the network.
Data-Driven Operating Models Enabled by Process MiningCelonis
Why is a data-driven operating model so important? In this session, you’ll explore the factors driving current operating structures, the impact of technology on those factors and how process mining supports the process approach that’s critical for true transformation. Whether your goal is efficiency, cost reduction, automation or some combination of these and more, you’ll learn what you need to take your operations to the next level.
Presenter:
Theodor Schabicki, Partner, Digital & Strategy, Bearing Point
Mars Presentation at the Supply Chain Insights Global Summit 2018Lora Cecere
Mars Franklin committed in 2017 to build a program to improve customer service and become demand driven. In this presentation, John Wisniewski, program manager for digital transformation, share candid insights on the implementation.
Decode Digitalization for Your Discrete Manufacturing CompanyCapgemini
Realize tangible benefits in your discrete manufacturing business using digital technologies, and learn where best to apply these solutions. Hear an expert panel from Capgemini and SAP demystify key concepts and explain how to make digital digestible with the Fast Digital 4 Discrete Industries initiative by SAP and Capgemini.
[AI Webinar Series P1] - How Advanced Text Analytics Can Increase the Operati...JK Tech
Digitization is considered as the next step-change that will have a bigger impact on businesses than even the internet. To win in the digital journey, companies must act now, or be left behind wondering what happened!
In this webinar series, JKT Smart Analytics demonstrates how they empower their customers to create maximum business value out of this eminent Digital data explosion through digital business empowerment by leveraging the digitization to increase their top-line revenue – customer experience, optimize the bottom-line costs – operational efficiency, enhancing the safety factor and reinventing the business process in line with the changing world.
This webinar is focused on how our AI-based text analytics solutions – First, JKT Social Media Radar; a SaaS-based AI NLP Platform, helping organizations to gain insights on market and customer perceptions on their brands, products & services. Secondly, Sales Promotion Recommendation Engine helps customers to enhance their top-line growth and streamline the bottom-line costs.
KEY TAKEAWAYS:
1) How should a business plan their journey through the Digital data revolution?
2) How can a company make use of digital data to create effective data strategies for the increased outcome(s)?
3) How IT practitioners can catalyst the digital data mining journey and attract business adoption?
4) JKT Social Media Radar solution – What, Why, Supporting Business applications, and more.
5) How can companies reduce operational costs by automating human effort-intensive tasks using cognitive Analytics?
RealtyTrac Vice President Daren Blomquist walks through the basics of foreclosure, from how the process works to the three foreclosure-buying opportunities and the five steps to buying a foreclosure.
He also goes through a live demo of the RealtyTrac subscription website, showing off some of the powerful functionality and tools available to RealtyTrac members.
Pres Upgrade MCSA/ MCSE 2003 TO MCTS / MCITP 2008MIT Institute
Microsoft Certified Systems Administrator (MCSA)
Microsoft Certified Systems Engineer (MCSE)
Microsoft Certified Technology Specialist (MCTS)
Microsoft Certified IT Professional (MCITP)
Microsoft Certified Trainer (MCT)
201309 LOMA Policyowner Service and Contact Center WorkshopSteven Callahan
Presentation to insurance service leaders on service and contact center opportunities to provide competitive differentiation as well as summary results of a recent short survey on contact center challenges.
Do you want to discover the mysteries behind your audit and help your auditors find what they are looking for? Join E-Business Suite Security and Controls expert Jeffrey T. Hare, CPA CISA CIA, from ERP Risk Advisors, to hear the latest about what auditors are scrutinizing. Two of the topics covered will be Sensitive Administration Page and profile options. This webinar will help you stay two steps ahead of your audit firm!
Learning Objectives: After completion of this program you will be able to:
Objective 1: Discover the mysteries behind your audit, and help your auditor find what he or she is looking for.
Objective 2: Understand the impact of profile options on EBS security and controls.
Objective 3: Learn about how the Sensitive Administration Page manages segregation of duties (SoD) in E-Business Suite.
View the full webinar recording: http://www.eprentise.com/event/stay-two-steps-ahead-of-your-auditor/
Website: www.eprentise.com
Twitter: @eprentise - twitter.com/eprentise
LinkedIn: linkedin.com/company/eprentise
Google+: https://plus.google.com/+eprentise
Facebook: https://www.facebook.com/eprentise
Ensure your data is Complete, Consistent, and Correct by using eprentise software to transform your Oracle® E-Business Suite.
How .NET Framework Supports Cost-Effective Application DevelopmentSara Suarez
At present, organizations across the world are looking for the right framework to build sophisticated applications for their business processes. .NET is the right choice for businesses. It allows users to build solutions rapidly with reduced costs. Businesses can outsource .NET development projects to recognized service providers. The developers help reduce the coding complications by following strict testing and quality standards. Using the latest framework version, developers enable better third-party integration and improve app capabilities.
Content source - https://theomnibuzz.com/what-makes-net-a-user-friendly-framework-for-developers/
Connect with us - https://www.damcogroup.com/dot-net-development-company.html
.NET for Enterprise Apps - Pros and Cons.pdfJamesEddie2
.NET is a popular framework for building enterprise applications, but is it the right choice for your business? Explore the pros and cons of using .NET for enterprise apps, including its scalability, security, and development flexibility. Learn how to make an informed decision for your organization's software needs.
Dairy management system project report..pdfKamal Acharya
ASP.NET is the next version of Active Server Pages (ASP); it is a unified Web development platform that provides the services necessary for developers to build enterprise-class Web applications. While ASP.NET is largely syntax compatible, it also provides a new programming model and infrastructure for more secure, scalable, and stable applications. ASP.NET is a compiled, NET-based environment, we can author applications in any .NET compatible language, including Visual Basic .NET, C#, and JScript .NET. Additionally, the entire .NET Framework is available to any ASP.NET application. Developers can easily access the benefits of these technologies, which include the managed common language runtime environment (CLR), type safety, inheritance, and so on. ASP.NET has been designed to work seamlessly with WYSIWYG HTML editors and other programming tools, including Microsoft Visual Studio .NET. Not only does this make Web development easier, but it also provides all the benefits that these tools have to offer, including a GUI that developers can use to drop server controls onto a Web page and fully integrated debugging support.
Top 8 Reasons ASP.NET Core is the Best Framework for Web Application Developm...WDP Technologies
The time is right to design and build outstanding web applications that can give your business a competitive edge. As a prominent .NET development company, WDP Technologies, we have command and expertise over the language and have tried to address any possible questions you can have regarding .NET Core and why to prefer it. If you have any questions, you can get in touch with us. Our experts are waiting to bring the best of ASP.NET Core for you.
Navigating the Hype and Realities of Web Development FrameworksSeasiaInfotech2
Seasia Infotech offers cutting-edge web development framework services for web solutions. We help to build and manage web applications, services, and websites seamlessly. Visit our website right now to learn more.
The advantages and disadvantages of .net framework programmingSameerShaik43
.NET Framework is a software platform released by the Microsoft company in 2002. It was built to ensure the compatibility of software products written in different programming languages. In such a way thanks to the .NET Framework programs on your computer can interact with the necessary operating system components.
https://www.tycoonstory.com/technology/the-advantages-and-disadvantages-of-net-framework-programming/
Atmel - Next-Generation IDE: Maximizing IP Reuse [WHITE PAPER]Atmel Corporation
Atmel® Studio 6 is the integrated development platform (IDP) for developing and debugging Atmel ARM® Cortex™-M and Atmel AVR® microcontroller- (MCU-) based applications. The Atmel Studio 6 IDP gives you a seamless and easy-to-use environment to write, build and debug your applications written in C/C++ or assembly code.
Atmel Studio 6 is free of charge and is integrated with the Atmel Software Framework (ASF)—a large library of free source code with 1,600 ARM and AVR project examples. ASF strengthens the IDP by providing, in the same environment, access to ready-to-use code that minimizes much of the low-level design required for projects. Use the IDP for our wide variety of AVR and ARM Cortex-M processor-based MCUs, including our broadened portfolio of Atmel SAM3 ARM Cortex-M3 and M4 Flash devices.
With the introduction of Atmel Gallery and Atmel Spaces, Atmel Studio 6 further simplifies embedded MCU designs to reduce development time and cost. Atmel Gallery is an online apps store for development tools and embedded software. Atmel Spaces is a cloud-based collaborative development workspace allowing you to host software and hardware projects targeting Atmel MCUs.
For more information, please visit http://www.atmel.com/Microsite/atmel_studio6.
Follow along on Twitter at http://www.twitter.com/Atmel and 'Like' Atmel on Facebook at http://www.facebook.com/atmelcorporation.
.NET development receives constant updates to enable better app development. Here are the new features in .NET 6.0 that .NET developers need to know.
Learn More: https://www.botreetechnologies.com/blog/top-things-know-about-net-6/
In Chapter 1, “Introduction”, you will get to know overview, history, overall architecture, building blocks, and features of the spring framework in detail.
Full book is available as blog entry in www.javacodebook.com.
It is essential to have a backend framework to make an application with which end-users can communicate and perform some actions. The front-end experience depends on the backend, including business logic, user request processing, database interactions, and performance. Most companies are reaping the benefits of robust back-end frameworks to deliver a high-quality application with an excellent user experience.
Given the prominence of backend frameworks of 2024, there is no surprise that you need to choose the best backend framework from a broad range of options out there.
When dealing with front-end development, we all begin with the browser and its benefits. However, backend development is a mystical field. The backend programs execute the functions of your sites with a database, which runs on your server. According to YouTube’s analysis and data visualization project, “Statistics & Data,” in 2024, Laravel has 76,304 repository stars from users and Django has 76,109 and Flask is third with 66,999.
Looking for the best backend frameworks for web development? Discover the top 5 options in our informative .pptx presentation. From robust features to seamless integration, streamline your development process with Silverclouding and stay ahead in the digital era.
Are you an App developer or a business owner who wants to build an app? This blog is for you. Here, we share the best Node.js frameworks for app development that help you make the right decision.
These were some of the most important reasons why big business enterprises prefer ASP.NET development. Teaming up with the right software development company helps you optimize the platform and use it to build powerful business applications according to your business needs. Look for ASP.NET developers who understand your customers, your project, and your goals before you start building your business applications.
App modernization projects are hard. Enterprises are looking to cloud-native platforms like Pivotal Cloud Foundry to run their applications, but they’re worried about the risks inherent to any replatforming effort.
Fortunately, several repeatable patterns of successful incremental migration have emerged.
In this webcast, Google Cloud’s Prithpal Bhogill and Pivotal’s Shaun Anderson will discuss best practices for app modernization and securely and seamlessly routing traffic between legacy stacks and Pivotal Cloud Foundry.
Similar to Developing apps with techstack wp-dm (20)
http://www.actian.com/
Watch Glen Rabie, CEO of Yellowfin, and Fred Gallahger, GM of Actian Vectorwise take you through 7 of the Best Practices for Big Data and BI.
1. Notice that none of the tables have statistics listed. Th ese tables all need to be optimized with the command
“optimizedb –zk–zr200 –zu200” to collect the statistics that will hopefully be the best possible.
→ It appears that there could be duplicate rows
of data returned for a fully qualifi ed keyed
Number of pages: 157480 select.Th is could cause singleton select errors.
You will see these again!
D19728 C6160 Disk I/O count is high.
RED FLAG! Caused by a disjoint query.
Heap In this case it is the ‘dates’ table
Pages 3 Tups 111 only contains a single row of data.
Actian Corporation (formerly Ingres Corp.) is the first to unveil a Cloud Action Platform
for building Action Apps. Action Apps are lightweight consumer-style applications that
automate business actions triggered by real-time changes in data. Actian products
incite action at more than 10,000 customers worldwide by driving their mission critical
workloads and providing rapid action insights to their data. Actian is headquartered in
Redwood City, California with offices in New York, London, Paris, Frankfurt, Amsterdam,
and Melbourne.
Actian formerly Ingres Corporation is a leading provider of open source database management software and support services. Ingres powers customer success with the
flexibility, cost savings, and innovation that are hallmarks of an open source deployment. Ingres supports its customers with a vibrant community and world
class support, globally. based in redwood city, california, Ingres has major development, sales, and support centers throughout the world, and more than
10,000 customers in the united states and internationally. for more information, visit http://www.actian.com/
Ingres now Actian Corporation, is the leading open source database management company. We are the world’s second largest open source company and the pioneer of The New
Economics of IT, providing business-critical open source solutions at dramatically reduced cost than proprietary software vendors. As a leader in The New
Economics of IT, Ingres delivers low cost and accelerated innovation to its more than 10,000 customers worldwide.
http://www.actian.com/
Actian’s strategy is to enable companies to develop Action Apps. Action Apps are lightweight
consumer-style applications that automate business actions triggered by real-time changes in data.
Action Apps will unleash the next level of business innovation and competitive advantage currently locked in the endless streams of data flowing through organizations and the industry. Action Apps are easy to build, require no training and provide value far beyond traditional business intelligence applications. Action Apps will be developed, managed
and shared on the world’s first Cloud Action PlatformTM from Actian.
It is Time For Action Apps
Over the past decade, most innovation in software has been in the consumer market.
Think about the way you use technology in your personal life today. We all enjoy small, light-weight, big-value apps on the smartphones and tablets we love. These consumer
apps help us do practical things like pay bills, book flights and taxis, and do fun things
like connect and share with friends. It’s never been more effective and fun.
Compare this to the experiences we have at work, where we are forced to use monolithic, hard-to-use, and harder-to-manage enterprise software. Actian’s mission is to enable users, developers, and Enterprise IT organizations to embrace and build consumer style apps to unleash a new level of enterprise productivity.
Whether it’s monitoring a particular company’s stock prices, keeping tabs on your competition’s
sales data, or watching your prospects’ credit ratings rise and fall, every Action App
is customized to meet the information needs of your particular job or workflow.
Action Apps are designed to constantly scan and probe a wide variety of disparate data sources, from highly structured corporate CRM and ERP systems to software-as-a-service offerings like salesforce.com, and even unpredicted unstructured twitter feeds, LinkedIn updates and Facebook posts. When the Action Apps data probes uncover important
information, they fire triggers which signal the appropriate business user and either
communicate, or cause an action to be taken as a result.
Kseniya Leshchenko: Shared development support service model as the way to ma...Lviv Startup Club
Kseniya Leshchenko: Shared development support service model as the way to make small projects with small budgets profitable for the company (UA)
Kyiv PMDay 2024 Summer
Website – www.pmday.org
Youtube – https://www.youtube.com/startuplviv
FB – https://www.facebook.com/pmdayconference
What are the main advantages of using HR recruiter services.pdfHumanResourceDimensi1
HR recruiter services offer top talents to companies according to their specific needs. They handle all recruitment tasks from job posting to onboarding and help companies concentrate on their business growth. With their expertise and years of experience, they streamline the hiring process and save time and resources for the company.
Discover the innovative and creative projects that highlight my journey throu...dylandmeas
Discover the innovative and creative projects that highlight my journey through Full Sail University. Below, you’ll find a collection of my work showcasing my skills and expertise in digital marketing, event planning, and media production.
Implicitly or explicitly all competing businesses employ a strategy to select a mix
of marketing resources. Formulating such competitive strategies fundamentally
involves recognizing relationships between elements of the marketing mix (e.g.,
price and product quality), as well as assessing competitive and market conditions
(i.e., industry structure in the language of economics).
The world of search engine optimization (SEO) is buzzing with discussions after Google confirmed that around 2,500 leaked internal documents related to its Search feature are indeed authentic. The revelation has sparked significant concerns within the SEO community. The leaked documents were initially reported by SEO experts Rand Fishkin and Mike King, igniting widespread analysis and discourse. For More Info:- https://news.arihantwebtech.com/search-disrupted-googles-leaked-documents-rock-the-seo-world/
Premium MEAN Stack Development Solutions for Modern BusinessesSynapseIndia
Stay ahead of the curve with our premium MEAN Stack Development Solutions. Our expert developers utilize MongoDB, Express.js, AngularJS, and Node.js to create modern and responsive web applications. Trust us for cutting-edge solutions that drive your business growth and success.
Know more: https://www.synapseindia.com/technology/mean-stack-development-company.html
"𝑩𝑬𝑮𝑼𝑵 𝑾𝑰𝑻𝑯 𝑻𝑱 𝑰𝑺 𝑯𝑨𝑳𝑭 𝑫𝑶𝑵𝑬"
𝐓𝐉 𝐂𝐨𝐦𝐬 (𝐓𝐉 𝐂𝐨𝐦𝐦𝐮𝐧𝐢𝐜𝐚𝐭𝐢𝐨𝐧𝐬) is a professional event agency that includes experts in the event-organizing market in Vietnam, Korea, and ASEAN countries. We provide unlimited types of events from Music concerts, Fan meetings, and Culture festivals to Corporate events, Internal company events, Golf tournaments, MICE events, and Exhibitions.
𝐓𝐉 𝐂𝐨𝐦𝐬 provides unlimited package services including such as Event organizing, Event planning, Event production, Manpower, PR marketing, Design 2D/3D, VIP protocols, Interpreter agency, etc.
Sports events - Golf competitions/billiards competitions/company sports events: dynamic and challenging
⭐ 𝐅𝐞𝐚𝐭𝐮𝐫𝐞𝐝 𝐩𝐫𝐨𝐣𝐞𝐜𝐭𝐬:
➢ 2024 BAEKHYUN [Lonsdaleite] IN HO CHI MINH
➢ SUPER JUNIOR-L.S.S. THE SHOW : Th3ee Guys in HO CHI MINH
➢FreenBecky 1st Fan Meeting in Vietnam
➢CHILDREN ART EXHIBITION 2024: BEYOND BARRIERS
➢ WOW K-Music Festival 2023
➢ Winner [CROSS] Tour in HCM
➢ Super Show 9 in HCM with Super Junior
➢ HCMC - Gyeongsangbuk-do Culture and Tourism Festival
➢ Korean Vietnam Partnership - Fair with LG
➢ Korean President visits Samsung Electronics R&D Center
➢ Vietnam Food Expo with Lotte Wellfood
"𝐄𝐯𝐞𝐫𝐲 𝐞𝐯𝐞𝐧𝐭 𝐢𝐬 𝐚 𝐬𝐭𝐨𝐫𝐲, 𝐚 𝐬𝐩𝐞𝐜𝐢𝐚𝐥 𝐣𝐨𝐮𝐫𝐧𝐞𝐲. 𝐖𝐞 𝐚𝐥𝐰𝐚𝐲𝐬 𝐛𝐞𝐥𝐢𝐞𝐯𝐞 𝐭𝐡𝐚𝐭 𝐬𝐡𝐨𝐫𝐭𝐥𝐲 𝐲𝐨𝐮 𝐰𝐢𝐥𝐥 𝐛𝐞 𝐚 𝐩𝐚𝐫𝐭 𝐨𝐟 𝐨𝐮𝐫 𝐬𝐭𝐨𝐫𝐢𝐞𝐬."
Putting the SPARK into Virtual Training.pptxCynthia Clay
This 60-minute webinar, sponsored by Adobe, was delivered for the Training Mag Network. It explored the five elements of SPARK: Storytelling, Purpose, Action, Relationships, and Kudos. Knowing how to tell a well-structured story is key to building long-term memory. Stating a clear purpose that doesn't take away from the discovery learning process is critical. Ensuring that people move from theory to practical application is imperative. Creating strong social learning is the key to commitment and engagement. Validating and affirming participants' comments is the way to create a positive learning environment.
Unveiling the Secrets How Does Generative AI Work.pdfSam H
At its core, generative artificial intelligence relies on the concept of generative models, which serve as engines that churn out entirely new data resembling their training data. It is like a sculptor who has studied so many forms found in nature and then uses this knowledge to create sculptures from his imagination that have never been seen before anywhere else. If taken to cyberspace, gans work almost the same way.
1. WHITEPAPER
Developing ApplicAtions
Using An open soUrce
technology stAck
by Domenic mangano
ingres corporation
2. tAble of contents:
3 1. introduction – Why open standards?
4 1.1 advantages of an integrated stack
5 1.2 background to products Used Within the stack
5 2. prerequisites
6 3. tutorial
8 3.1 system architecture
9 3.2 create the database
10 3.3 register the database with the eclipse Data source explorer
11 3.4 create a new seam project
13 3.5 seam perspective Features
13 3.5.1 Jboss tools palette
13 3.5.2 Jboss server View
13 3.5.3 seam components
14 3.6 creating seam components
15 3.6.1 creating the entity classes
15 3.6.2 adding Jpa / Hibernate Validator annotations
20 3.6.3 generate the seam artefacts
21 3.6.4 Verify the generated code
23 3.7 running the application
24 3.8 summary
25 Appendix A Domain Model source
32 Appendix b configuring eclipse
36 Appendix c resources
table of contents ::
3. 1 introDUction – Why open stAnDArDs?
Today, there is a wide array of technologies and tools available to software developers that can
be used to develop web based applications. When selecting products and tools to build and
support their IT systems, enterprises need to rely on a proven foundation to be assured that their
applications can be built in accordance with good architectural principles and goals.
Technologies built upon open standards typically encompass good architectural traits as they,
by definition, need to promote interoperability. Building applications upon open standards
provides a level of insurance to enterprises that means they need not be locked into a specific
vendor’s product and that the investment in an application need not be lost should the enterprise
decide to change some part of their infrastructure (e.g. an application server or database server).
In order to achieve the maximum benefit of developing applications to open standards, some
design discipline must be applied. For a decade or more, building applications using a layered
architecture has become a ubiquitous principle, because it encourages a clear separation of
responsibility between the components in an application, such as locating business logic in
a dedicated layer and not spread throughout the application. This approach is beneficial in
decoupling the core of an application from the User Interface (UI) and data storage technologies
used by the application. This, in turn, makes the application more flexible to change than would
otherwise be possible, which is a key trait for enterprise applications.
Best practice now recommends that application developers should use standards-based
interfaces, because this both increases the portability of an application and lowers the cost of
maintenance through the availability of developers with more generalised skills. A common
example of where this discipline is not applied is where enterprises put most of their business
logic into stored procedures rather than application code. This makes both maintenance (scaling
the application becomes expensive because application servers are cheaper than database
servers, per CPU) and portability (because stored procedures are always proprietary) more
costly than necessary. On occasion it may make sense for specific application functions to use
proprietary features of a particular product (e.g. where there is a definite performance benefit),
but such instances should be the exception rather than the rule.
In recent times enterprises have come to realise the benefits that Open Source software can offer.
Widely used Open Source products, such as Red Hat Enterprise Linux and Ingres, have allayed
prejudices about reliability and security flaws which might have resulted from the Open Source
development model. Best of breed products that are developed under an Open Source license
can be every bit as reliable, secure and scalable as their commercial counterparts.
Developing Applications Using open source technology :: 3
4. 1.1 Advantages of an integrated stack
As with the commercial software market there is a bewildering choice of competing products in
the Open Source software market. Deciding on a combination of Open Source products that can
be used to form an enterprise-capable software stack can be a formidable task and not without
risk, for example how can enterprises know that the selected products will work well when
combined? In answer to this problem, some Open Source product vendors partner to offer a
complete application platform that is already integrated and tested, thus reducing this risk.
When enterprises select an application platform that is based on pre-integrated Open
Source software, they gain the benefits of enhanced productivity and predictability. Open
Source products have frequently been used by enterprises during the development of
their applications - even if the application will eventually run on commercial products in
a different production environment - because this reduces some of the drain of software
license costs. With enterprises looking to lower the overall cost of their IT systems, the up-
front license costs associated with commercial software products are one source of cost that
offers no business benefit for an enterprise, as additional fees still need to be paid to receive
support from the product vendor. For this reason, many enterprises are today looking to
replace commercial products with Open Source alternatives for production use as well as in
development.
In addition to these cost related arguments, Open Source software has also proven itself in
terms of supportability, security, resilience, performance, high availability and other attributes
needed to qualify as being enterprise class. This means that it is now being used much more
frequently as the basis of true enterprise class application infrastructure.
Using a pre-integrated software stack in this scenario delivers productivity gains partly
because developers and system administrators need to spend less time installing and
configuring disparate products, and partly because using the same products from
development through production reduces the effort associated with testing and configuring
the application for the different environments. By using a supported stack, enterprises looking
to replace their software infrastructure with Open Source software will see the additional
benefit of predictability. Using the same application platform in development, pre-production
and production environments reduces the possibility of differences between the application
server and database products introducing unforeseen problems.
This white paper is a short tutorial that outlines how to set up and develop a simple layered
application using the JBoss open source application technology platform based on the Java
Enterprise Edition platform (JEE), and using the Ingres RDBMS for persistent data storage.
This tutorial application will run on JBoss middleware and make use of the JBoss Seam
framework.
Both Ingres and JBoss middleware are used by enterprises in mission and business critical
applications so can be considered as mature and proven technologies and consequently a good
foundation upon which applications can be developed and run in production environments.
Developing Applications Using open source technology ::
5. 1.2 background to products Used Within the stack
The JBoss Server project has been active since 1999. Over that time JBoss Application Server
(JBoss AS) has become the most widely used Java Enterprise server, and has moved with
the times with the objective of supporting the most current JEE specifications. At the time
of publication the most current version of JBoss AS is 5.0, which complies with the JEE 5
specifications.
The Ingres RDBMS dates back to the inception of relational database technology. Based on
code originally developed as part of a research project at University of California, Berkeley, the
database product continued to be developed as a commercial entity until it was open sourced
by Computer Associates in 2004. Over its lifetime, the core database has maintained a strong
adherence to industry standards such as SQL and provides a wide range of connectivity options
including JDBC, ODBC, Python, Perl, PHP and Ruby.
The JBoss Seam framework is comparatively new, and primarily exists to enhance the JEE
programming model by providing additional features to support more complex use cases that
can arise with fully featured Rich Internet Applications (RIA). The Seam framework integrates
AJAX, Java Server Faces (JSF), Facelets, Enterprise Java Beans, Java Persistence API (JPA),
Java Portlets and Business Process Management to provide a fully featured web development
framework.
Seam builds upon core JEE technologies but incorporates additional technologies to offer a
unified programming model and more flexibility targeted at web applications. Seam treats
JSF as a first class citizen and enhances the JSF approach to provide useful features not yet
covered by the JSF specification. Additional features include contextual state management,
support for RESTful URLs, an enhanced exception handling mechanism and a convention
over configuration approach that alleviates most of the burden associated with creating and
maintaining XML configuration files.
2 prereqUisites
The practical elements of the tutorial assume the reader has basic experience of the following:
• Developing Java applications with Eclipse and the Web Tools plugin
• Familiarity with JEE, primarily web components (JSF, Servlets, JSP), EJB and JPA entities and
JEE deployment modules
• Familiarity with Facelets
The following software components are used in the tutorial - please refer to the Resources
section for information on downloading the software:
• Java Development Kit (1.5 or above)
• Ingres RDBMS 9.2.0
• JBoss AS 5.0.0 GA
Developing Applications Using open source technology ::
6. • JBoss Seam 2.1.0 SP1
• Eclipse Ganymede JEE Build
• JBoss Tools 3 CR1 (an Eclipse plugin)
It is suggested that the software be installed in the order presented in the list above, however
with the exception of the JBoss Tools Eclipse plugin which requires that Eclipse is installed and
running, there is no strict order in which the software must be installed. The Eclipse IDE comes
bundled with an embedded Java Runtime so the IDE will run without an external Java Runtime
or Development Kit. Note that the last four components are also packaged together within the
commercially available JBoss Developer Studio.
Source code for the domain entity classes and a pre-built EAR module with the complete
example application, along with deployment instructions, can be found at:
http://community.ingres.com/wiki/JBossToolsSeamExample
3 tUtoriAl
This section includes a step-by-step guide to creating a skeleton Seam application using the
Eclipse IDE which can serve as a starting point for developing a fully featured web application.
The application allows a user to view and edit products and orders via list and detail web
pages.
The home page is a simple default page that outlines features offered by Seam. The hyperlinks
at the top of the page are used to navigate to the screens we will create.
17%
21%
Developing Applications Using open source technology ::
7. The detail page can be used to add new entities to the system or editing existing entities.
Developing Applications Using open source technology ::
8. 3.1 system Architecture
The following diagram outlines the core architectural components of a Seam application. A
subset of the components will be used for the sample application (the components coloured
blue).
The role of each architectural component can be described as:
• Facelets – Assembles the JSF UI components to form the view to be presented in response to a
client request;
• JSF – Provides the UI components used to construct the user interface;
• Seam – The Seam framework provides functionality that can straddle each layer of the
application. A primary function of Seam is the management of requests from the client
(browser), directing requests to an appropriate controller and ensuring that the controller is
in an appropriate state to service a request (e.g. component dependencies are satisfied). The
dependency and state management functionality provided by Seam should be viewed as an
infrastructure function as these features might be used in other layers of the application;
• Hibernate – Manages the ORM mapping layer, allowing the application to use an object
interface and interact with the database;
• JBoss AS – The application server is an infrastructure component that provides services
to hosted applications. The application server is a host for the Seam application providing
additional services such as transaction management and security;
• Ingres – Persistent storage of the application data.
Developing Applications Using open source technology ::
9. 3.2 create the database
The first step is to create the database to be used for the tutorial. The database is to be called
seamapp.
Database creation on Ingres can be achieved in one of two ways, using either the Visual DBA
tool or the createdb utility.
If using Visual DBA, connect to the server by selecting the database server in the Nodes explorer
and using the Node - Connect menu. This will display the object browser for the database
server. Right-click the ‘Databases’ node in the database objects browser. Complete the relevant
details in the wizard and click OK.
If using the createdb command-line utility, the following command is used to create the
database:
createdb seamapp
Developing Applications Using open source technology ::
10. 3.3 register the database with the eclipse Data source explorer
The Eclipse Data Tools plugin provides the capability to explore and interact with JDBC compli-
ant databases from within the IDE. It provides a subset of features offered by the Ingres Visual
DBA tool but with the convenience of being able to access these directly within the IDE.
The Ingres JDBC driver must be registered with Eclipse to allow the Data Source Explorer to
display the database. This can be done prior to registering the database as outlined in Appendix
B of this document but can also be done at the same time a new Connection Profile is created.
The following steps assume that the Ingres JDBC driver is already registered.
Ensuring that the ‘Data Source Explorer’ view is currently visible, right click the Databases node
and select the ‘New…’ option to create a new Connection profile.
Select Generic JDBC from the list and change the name to something suitable such as ‘Ingres
DB’. Progress through the wizard and complete the details as appropriate. The user login details
required are those of an operating system user with Ingres access permissions, on the machine
hosting the database server, and by default you should enter the details of the user who installed
Ingres. The connection can be tested using the ‘Test Connection’ button available on the second
page of the wizard.
The Data Source Explorer can be used to examine database table structures and any data
contained within the tables.
Developing Applications Using open source technology :: 10
11. 3. create a new seam project
The Seam Web Project wizard, included with the JBoss Tools plugin, is to be used to create the
skeleton application structure. An alternative approach would be to use the ‘seam-gen utility’
that is included as part of the Seam installation.
First ensure that the Seam Perspective is enabled. This can be done via the Window - Open
Perspective - Other dialog and selecting Seam from the listing. With the Seam perspective
enabled, the Seam Web Project wizard can be accessed from the File - New menu.
The application will be named ‘seamexample’. Complete the wizard details as required, being
sure to provide a name for the project and that the selected ‘Configuration’ option is a ‘Dynamic
Web Project with Seam 2.0’. The default choices should be acceptable provided a JBoss runtime
and server have been previously configured as outlined in Appendix B.
Proceed through the next two wizard pages, accepting the default options.
Proceed to the final page of the wizard and complete the remaining details. For the General
options, select the Seam runtime (note that the CR release of the JBoss Tools plugin did
not recognise a previously installed instance so a new one had to be created). Complete the
remaining details enabling the ‘EAR deploy’ option, and for the database options select the
Connection profile created earlier.
Developing Applications Using open source technology :: 11
12. At this point it is worth reviewing what has been created by the project generation wizard.
Seam JBoss
Projects Tools Palette
Seam JBoss
Components Server View
Developing Applications Using open source technology :: 12
13. Firstly examining what can be seen in the Package Explorer view.
The Seam Web Project wizard has created 4 separate Eclipse projects artefacts.
• The seamexample project is created as a WTP Dynamic Web Project configured to include the
Seam facet. Building this project will create a WAR archive. Components that will be included
in this project include the Facelets view templates and Seam configuration files.
• The seamexample-ejb project is created as a WTP EJB project. Building the project will create
a Jar file. Components that will be included in this project include Session EJBs and any JPA
Entities.
• The seamexample-test project is a standard Java project that will include all of the TestNG test
cases.
• The seamexample-ear has created a WTP EAR archive project that will build the JEE
enterprise archive to be deployed to the server. The Ear archive will include the build artefacts
from the Web and EJB projects.
3. seam perspective features
With the Seam perspective enabled it should be possible to see a couple of design aids provided
by the JBoss Tools plugin, as highlighted on the screenshot above.
3.5.1 JBoss Tools Palette
This view is a palette of UI components that can be used during the design of the JSF UI. JBoss
Tools provides a visual designer for building JSF UIs, where the palette components can be
dragged onto a form designer to build up the UI.
3.5.2 JBoss Server View
This view is an extension of the WTP plugin’s Server view. It facilitates control of server
instances registered with the IDE and provides the capability to:
• Start and stop the server;
• Start the server in debug mode;
• Change the startup configuration for the server, and;
• View applications deployed in the server.
The JBoss Server view allows the server configuration file (jboss-service.xml) to be edited from
within the IDE.
3.5.3 Seam Components
This view displays the contents of the components.xml file included in any Seam projects,
supporting the visual editing of this file.
As will be shown in the next section, the Seam perspective offers handy wizards for creatingnew
Seam artefacts to be included in the application. When non-Seam components are required,
switching to the Java EE perspective can be useful to get access to context sensitive content
creation wizards, for example EJB creation wizards for EJB projects or Servlet or Filter creation
wizards for Web projects. Otherwise, these wizards can be accessed using the ‘Other’ option that
should be visible from the ‘New’ context menu.
Developing Applications Using open source technology :: 13
14. 3. creating seam components
It is now time to create the components for the application. Like ‘seam-gen’, JBoss Tools provides
the ability to generate most of the artefacts needed for a simple data maintenance function.
Artefacts can be generated from a set of existing JPA entities or an existing database schema.
The tutorial will focus on using the first approach, of first creating the application domain
model, annotating the model classes and then using JBoss Tools to generate the UI templates
from the domain classes. The code generation is a one-off process so it is better to spend some
time getting the domain model as near as possible to what will be required for the application.
The domain model to be used is detailed by the following UML class diagram.
The database Entity-Relationship model is detailed in the following diagram.
The process to be used to create the entity classes for the application will be:
• Create a new Java class for the entity
• Add JPA annotations
• Add Hibernate Validator annotations
Developing Applications Using open source technology :: 1
15. The full source code for the domain classes can be found in the appendix. In the following
section, code snippets are included to highlight the use of JPA and Hibernate Validator
annotations.
3.6.1 Creating the Entity classes
Create a new class using the Eclipse class wizard. Note that the CR version of the JBoss Tools
wizard did not create the empty com.ingres.seamexample.entity package, so this can be either
be created prior to the creation of the new class or can be created by the New Java Class wizard
providing the package field is first populated with the package name.
If the package exists, right-clicking against the package in the ‘Package Explorer’ view and
selecting New-Class will initialise the New Java Class wizard with the current package
information.
Create new classes for the Item, Order and OrderLine entities and also for an OrderLineId class,
which is not contained within the UML class model but which will be used as the OrderLine
identifier and will contain the compound primary key values that form the OrderLine primary
key. Note that the classes should also implement the java.io.Serializable interface.
3.6.2 Adding JPA / Hibernate Validator Annotations
In this section annotated code fragments from the entity classes will be included with a
description of the annotations that have been added to create the Object-Relational Mapping
(ORM) and data validation constraints.
Developing Applications Using open source technology :: 1
16. First up is the Address class. This, in fact, is not modelled as an entity class at all, but instead it
has been mapped as value type that will be associated with an Order entity.
@Embeddable
public class Address implements Serializable {
private static final long serialVersionUID = 1L;
@Column(name = “address_line1”, length = 40)
@NotEmpty
private String line1;
@Column(name=”address_line2”, length = 40)
private String line2;
@Column(length = 30)
@NotEmpty
private String city;
@Column(length = 30)
@NotEmpty
private String country;
@Column(length = 9)
@NotEmpty
@Pattern(regex = “[A-Z]{1,2}[0-9]{1,2}? [0-9]{1,2}[A-Z]{1,2}”)
private String postcode;
… get/set methods
}
The Address class is marked with an @Embeddable annotation. Embeddable classes are
sometimes referred to as component or value types because the values for an Address object are
to be persisted but the object does not have a unique identity within the system.
The Item class is presented next.
@Entity
public class Item implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue
private Integer code;
@Column(name = “manufacturer_code”, length = 20)
private String manufacturerCode;
@Column(length = 50)
@NotEmpty
@Length(max = 50)
private String description;
@Version
private Timestamp version;
… get/set methods
}
Developing Applications Using open source technology :: 1
17. The @Entity annotation marks this as a persisted object that requires a unique identifier within
the system.
The @Id annotation marks this field as the identifying property of the entity. The @
GeneratedValue annotation specifies that the identity value is to be provided by some other
component the first time the entity is persisted. JPA supports a number of key generation
strategies, and sticking with the default generation strategy (GeneratorType.AUTO) will result in
the default generation type specified by the dialect for the target database. In the case of Ingres,
sequences will be used as the generation mechanism.
The @Column annotation specifies the field mapping between properties of the class and
columns of the related database table, which will default to be named ‘item’ (as no @Table
annotation to override the default table name mapping has been included). The @Column
annotation allows various aspects of the column mapping to be specified (e.g. column length,
nullability) and these become relevant when the database schema is created from the mapping
metadata.
The @NotEmpty is a Hibernate Validator feature that specifies the property value can be neither
null nor an empty value.
The @Length annotation is a Hibernate Validator feature that can be used to specify minimum
and maximum length of a String.
The @Pattern annotation is a Hibernate Validator feature that in this instance uses an example
regular expression to validate the postal code according to UK rules (provided just as an
example).
The @Version annotation specifies that an optimistic locking strategy is to be used to control
concurrent updates of the entity. The mapped property is typically an integer number or
timestamp.
The code for the Order class is next.
Developing Applications Using open source technology :: 1
18. @Entity
public class Order implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue
private Integer reference;
@Column(name=”created_date”)
@Temporal(TemporalType.DATE)
@NotNull
private Date createdDate;
@Embedded
@NotNull
private Address deliveryAddress;
@OneToMany(mappedBy = “order”, cascade = CascadeType.REMOVE)
private CollectionOrderLine orderLines;
@Version
private Timestamp version;
public Order() {
this.setDeliveryAddress(new Address());
this.setOrderLines(new ArrayListOrderLine());
}
… get/set methods
}
The Order class contains a number of new annotations.
The @Temporal annotation is used to specify the mapping of a date and time value. The range
of possible values originates from the TemporalType enumeration and can be a date, time or
timestamp value.
The @NotNull annotation is a Hibernate Validator feature that requires the property to have a
value.
The @Embedded annotation is used to identify the class as a value type whose mapped fields are
to be persisted as part of the entity so in this case the mapped fields from the address object will
be persisted within the order table.
The @OneToMany is a collection type mapping, linking an Order to many OrderLine instances.
The ‘mappedBy’ attribute identifies the property on the OrderLine class that this entity is
mapped to and the ‘cascade’ attribute specifies what is to happen to the child dependency when
the Order entity is modified.
The OrderLine class has been modelled as an Association Class. The association between Order
and Item could have potentially been mapped as a bi-directional many-to-many association but
as the association includes additional attributes (e.g. quantity) then a separate entity is preferred.
Developing Applications Using open source technology :: 1
19. @Entity
@Table(name = “order_line”)
public class OrderLine implements Serializable {
private static final long serialVersionUID = 1L;
@EmbeddedId
@NotNull
private OrderLineId id;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = “item_code”,
nullable = false,
insertable = false,
updatable = false)
@NotNull
private Item item;
@Column(nullable = false)
@Min(1)
private int quantity;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = “order_reference”,
nullable = false,
insertable = false,
updatable = false)
private Order order;
@Version
private Timestamp version;
… get/set methods
}
The @Table annotation illustrates how to override the default table name mapping.
Use of the @EmbeddedId annotation is described further on.
The @ManyToOne identifies the property as the many end of a many-to-one association. The
identity value could be inferred from the associated property type but the database mapping
has been altered to use more intuitive column names for the database table. The @JoinColumn
annotation is used to describe the mapping. Setting the nullable, insertable and updatable
attributes to false ensures the entity cannot be directly persisted to the database but must first be
associated with valid Order and Item entities before it may be persisted.
The @Min annotation is a Hibernate Validator feature used to ensure the quantity ordered for a
specific item is one or more.
A composite identifier is required for the OrderLine entity, so the @EmbeddedId is used to
specify a separate class is to be used as the entity identifier. In the case of the OrderLine class
the identity value is derived from the associated Item code and Order reference values. This is
represented in the database by the order_line table requiring a compound primary key mapping
based on foreign key references to records in the order and item tables. There are a couple of
Developing Applications Using open source technology :: 1
20. ways to specify a compound key mapping with JPA, but in this case a separate class OrderLineId
(the code for which is provided below) has been created to model the identity. The class is
marked as @Embeddable and must adequately override the equals and hashCode methods from
the java.lang.Object class.
@Embeddable
public class OrderLineId implements Serializable {
private static final long serialVersionUID = 1L;
@Column(name = “order_reference”, nullable = false)
private Integer orderReference;
@Column(name = “item_code”, nullable = false)
private Integer itemCode;
… get/set methods
}
This completes the creation of the domain model. As a general point it should be remembered
that where possible good object-oriented design principles such as encapsulation should be
followed as closely as possible. It is a good practice to only expose as much of the entity class
as necessary to client code, for example, the version property is only of interest to the ORM
tool and should never be set directly by front-end code so this property should use the most
restrictive access level which in the case of JPA is the protected access level. Similarly, if the
ORM tool is exclusively responsible for assigning new entity identities then make the mutator
(set) method as restrictive as possible.
3.6.3 Generate the Seam artefacts
The code generation features provided by the ‘seam-gen’ utility and JBoss Tools are a great way
to quickly produce a prototype for an application. The code generation procedure will use the
JPA mapping and Hibernate Validator annotations present in the entity classes to influence the
generation process. For example, JPA Collection type associations will be displayed as tabular
entries in the page of the parent entity and front-end validation constraints will be derived from
the validation annotations.
To generate Seam artefacts using JBoss Tools, start the ‘Seam Generate Entities’ wizard.
Assuming the Seam perspective is enabled, this can be displayed by selecting the Seam project
in the Package Explorer view, right-click to display the New menu and select the Seam Generate
Entities option.
Developing Applications Using open source technology :: 20
21. In the resulting wizard, select ‘Use existing entities’ and click Finish, leaving the remaining
options at their defaults. As the Seam project was configured to be an EAR project, JBoss Tools
will expect the entity classes to be located in the seamexample-ejb project.
At this point it is worth examining the artefacts produced by the code generation process.
In the seamexample-ejb project, look in the com.ingres.seamexample.service package. The
package will contain a Home and List class for each entity. These extend classes provided by the
Seam Application Framework to provide data maintenance (CRUD) capabilities for the entities.
The accompanying UI artefacts will be located in the WebContent directory of the seamexample
project. The generation process will have created Edit and List Facelets view templates (.xhtml
files) for each entity class and also a Seam pages.xml file which can be used to define fine-
grained rules to dictate the flow between pages. A menu entry will also have been added to the
WebContent/layout/menu.xhtml template.
3.6.4 Verify the generated code
The generated code will only serve as a starting point for an application. It is probable that the
code will need to be checked and possibly modified to get the application behaving as required.
For example, the generated pages may need amending to display fields in a preferred order or
layout, and the generated classes will need to be checked for compilation errors that may occur if
the class or property names result in conflicts.
Developing Applications Using open source technology :: 21
22. In the case of the domain model used in the tutorial some code modifications will be necessary.
The OrderLineHome and OrderLineList classes in the com.ingres.seamexample.service package
will need to be modified, because the generated classes include a call to OrderLine’s setId
method and the OrderLine class restricts access to this method so this results in a compilation
failure. As the default constructor of the OrderLine class ensures that the id property is
instantiated, the assignment of an empty id value by the OrderLineHome and OrderLineList
classes is redundant and so should be removed.
The use of Order as a class name causes a conflict in the OrderList class with the inherited
getOrder method of EntityQuery (which is a Seam Application Framework class). The getOrder
method in OrderList needs to be renamed to something else (e.g. getOrderInstance) to resolve
the conflict. Any action bindings in the generated UI templates (OrderList.xhtml) will also need
to be updated to call the renamed method.
Developing Applications Using open source technology :: 22
23. 3. running the application
The JBoss Tools plugin will deploy the EAR module to the JBoss server identified during the
project creation step. The server can be started in the JBoss Server View by selecting the server
instance and using the context menu options or the icons at the top right-hand side of the view.
Once the application server has started the home page for the application can be accessed using
the URL:
http://localhost:8080/seamexample
Developing Applications Using open source technology :: 23
24. 3. summary
This tutorial has demonstrated that with appropriate technology choices and tools, it is possible
to undertake rapid application development without sacrificing important enterprise features
that ensure that mission critical applications can run reliably, securely and scale to meet user
demand.
The Seam framework is a fully featured web application framework that is an Open Source
product that builds upon open standards. This allows the application to be deployed to any
number of JEE application servers, either lightweight containers such as Tomcat or fully
fledged application servers like JBoss that offer distributed transaction management, messaging
capabilities and clustering features for fault-tolerance and scalability. The abstraction offered by
JPA on JDBC prevents lock-in to a specific persistent storage mechanism, allowing the database
server to be swapped for another JPA capable solution with little or no code changes, hence
delivering the benefit of avoiding vendor lock-in at both application server and database levels.
Developing Applications Using open source technology :: 2
25. AppenDix A DoMAin MoDel soUrce
Address.java
package com.ingres.seamexample.entity;
import java.io.Serializable;
import javax.persistence.Column;
import javax.persistence.Embeddable;
import org.hibernate.validator.NotEmpty;
import org.hibernate.validator.Pattern;
/**
* Represents a UK property address.
*/
@Embeddable
public class Address implements Serializable {
private static final long serialVersionUID = 1L;
@Column(name = “address_line1”, length = 40)
@NotEmpty
private String line1;
@Column(name=”address_line2”, length = 40)
private String line2;
@Column(length = 30)
@NotEmpty
private String city;
@Column(length = 30)
@NotEmpty
private String country;
@Column(length = 9)
@NotEmpty
@Pattern(regex = “[A-Z]{1,2}[0-9]{1,2}? [0-9]{1,2}[A-Z]{1,2}”)
private String postcode;
public String getLine1() {
return line1;
}
public void setLine1(String line1) {
this.line1 = line1;
}
public String getLine2() {
return line2;
}
public void setLine2(String line2) {
this.line2 = line2;
}
public String getCity() {
return city;
}
public void setCity(String city) {
this.city = city;
}
public String getCountry() {
return country;
}
Developing Applications Using open source technology :: 2
26. public void setCountry(String country) {
this.country = country;
}
public String getPostcode() {
return postcode;
}
Item.java
package com.ingres.seamexample.entity;
import java.io.Serializable;
import java.sql.Timestamp;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Version;
import org.hibernate.validator.Length;
import org.hibernate.validator.NotEmpty;
/**
* Represents a product offered for sale.
*/
@Entity
public class Item implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue
private Integer code;
@Column(name = “manufacturer_code”, length = 20)
private String manufacturerCode;
@Column(length = 50)
@NotEmpty
@Length(max = 50)
private String description;
@Version
private Timestamp version;
public String getManufacturerCode() {
return manufacturerCode;
}
public void setManufacturerCode(String manufacturerCode) {
this.manufacturerCode = manufacturerCode;
}
public String getDescription() {
return description;
}
Developing Applications Using open source technology :: 2
29. OrderLineId.java
package com.ingres.seamexample.entity;
import java.io.Serializable;
import javax.persistence.Column;
import javax.persistence.Embeddable;
/**
* OrderLine Identifier. Composite identifier joining an item to an order.
*/
@Embeddable
public class OrderLineId implements Serializable {
private static final long serialVersionUID = 1L;
@Column(name = “order_reference”, nullable = false)
private Integer orderReference;
@Column(name = “item_code”, nullable = false)
private Integer itemCode;
public OrderLineId() {
}
public OrderLineId(Integer orderReference, Integer itemCode) {
this.setOrderReference(orderReference);
this.setItemCode(itemCode);
}
public Integer getOrderReference() {
return orderReference;
}
public void setOrderReference(Integer orderReference) {
this.orderReference = orderReference;
}
public Integer getItemCode() {
return itemCode;
}
public void setItemCode(Integer itemCode) {
this.itemCode = itemCode;
}
@Override
public boolean equals(Object obj) {
if (this == obj) {
return true;
}
if (obj == null) {
return false;
}
if (!(obj instanceof OrderLineId)) {
return false;
}
OrderLineId other = (OrderLineId)obj;
return (this.getOrderReference() == other.getOrderReference())
(this.getItemCode() == other.getItemCode());
Developing Applications Using open source technology :: 2
30. }
@Override
public int hashCode() {
int code = 17;
code *= 43;
code += this.orderReference == null ? 0 : this.orderReference
hashCode();
code += this.itemCode == null ? 0 : this.itemCode.hashCode();
return code;
}
}
OrderLine.java
package com.ingres.seamexample.entity;
import java.io.Serializable;
import java.sql.Timestamp;
import javax.persistence.AttributeOverride;
import javax.persistence.AttributeOverrides;
import javax.persistence.Column;
import javax.persistence.EmbeddedId;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;
import javax.persistence.Version;
import org.hibernate.validator.Min;
import org.hibernate.validator.NotNull;
/**
* Represents an element of an order for a specific item. Detailing the
quantity required.
*/
@Entity
@Table(name = “order_line”)
public class OrderLine implements Serializable {
private static final long serialVersionUID = 1L;
@EmbeddedId
@AttributeOverrides( {
@AttributeOverride(name = “orderReference”, column = @Column(name
= “order_reference”, nullable = false)),
@AttributeOverride(name = “itemCode”, column = @Column(name =
“item_code”, nullable = false))
})
@NotNull
private OrderLineId id;
@ManyToOne(fetch=FetchType.LAZY)
@JoinColumn(name = “item_code”, nullable = false, insertable = false,
updatable = false)
@NotNull
private Item item;
Developing Applications Using open source technology :: 30
31. @Column(nullable = false)
@Min(1)
private int quantity;
@ManyToOne(fetch=FetchType.LAZY)
@JoinColumn(name = “order_reference”, nullable = false, insertable =
false, updatable = false)
private Order order;
@Version
private Timestamp version;
public OrderLine() {
this.id = new OrderLineId();
}
public OrderLine(Order order, Item item, int quantity) {
this();
if (order == null || item == null) {
throw new IllegalArgumentException(“Null value not
allowed for mandatory parameters order/item”);
}
this.setOrder(order);
this.id.setOrderReference(order.getReference());
this.setItem(item);
this.id.setItemCode(item.getCode());
this.setQuantity(quantity);
}
public Item getItem() {
return item;
}
public void setItem(Item item) {
this.item = item;
}
public int getQuantity() {
return quantity;
}
public void setQuantity(int quantity) {
this.quantity = quantity;
}
public Order getOrder() {
return order;
}
public void setOrder(Order order) {
this.order = order;
}
public OrderLineId getId() {
return id;
}
protected Timestamp getVersion() {
return version;
}
protected void setVersion(Timestamp version) {
this.version = version;
}
protected void setId(OrderLineId id) {
this.id = id;
}
}
Developing Applications Using open source technology :: 31
32. AppenDix b configUring eclipse
• Installing JBoss Tools
The following Wiki page details how to install JBoss Tools into an Eclipse installation:
http://jboss.org/community/docs/DOC-10044
• Registering the Ingres JDBC Driver
To add a new JDBC driver definition:
- Open the Eclipse Preferences dialog, accessed via the Window - Preferences option.
- Navigate to the Data Management - Driver Definitions option.
- Click the Add button to add a new driver definition.
- Select ‘Generic JDBC Driver’ from the driver templates list. Change the driver name to
something meaningful such as Ingres JDBC Driver.
Developing Applications Using open source technology :: 32
33. - Click in the Jar List tab and add the Ingres JDBC driver Jar file (iijdbc.jar). The default location
for the Jar file is in the ingres/lib directory of the Ingres installation.
- Click on the properties tab and complete the template details.
Connection URL: jdbc:ingres://localhost:II7
Driver Class: com.ingres.jdbc.IngresDriver
Note: II7 denotes the TCP/IP listen port of the Ingres Data Access Server. II7 is the value used
for a default installation, where II denotes the Ingres installation identifier. The listen port value
can be verified using the ‘Ingres Configuration Manager’ utility or the ‘Configure-By-Forms’ (cbf)
command line utility. The listen port information is found in the Data Access Servers node.
Developing Applications Using open source technology :: 33
34. • Registering the JBoss Server
To register a JBoss server instance with Eclipse:
- Open the Eclipse Preferences dialog, accessed via the Window-Preferences option.
- Navigate to the Server - Runtime Environments option.
- Add a new JBoss server runtime, by clicking the Add button and selecting the JBoss 5.0
Runtime option available under the JBoss, a division of Red Hat branch. Be sure to check the
‘Create a new local server’ option.
- Complete the remaining steps of the wizard by clicking Next and editing the wizard options
as required. The ‘default’ option for the server configuration is fine.
Developing Applications Using open source technology :: 3
35. • Registering a Seam installation
To register a Seam installation with Eclipse:
- Open the Eclipse Preferences dialog, accessed via the Window-Preferences option.
- Navigate to the JBoss Tools - Web - Seam option.
- Click the Add button to add a new Seam instance.
- Complete the details as required.
Developing Applications Using open source technology :: 3
36. AppenDix c resoUrces
Links are provided to sites that provide for further information about downloading and using
the technologies and tools used in this tutorial.
Ingres: http://www.ingres.com
JBoss AS, JBoss Seam Framework, JBoss Tools: http://www.jboss.org
Eclipse Ganymede: http://www.eclipse.org/ganymede
Sun Java Development Kit: http://java.sun.com
Developing Applications Using open source technology :: 3
37. notes
Developing Applications Using open source technology :: 3
38. notes
Developing Applications Using open source technology :: 3
39. notes
Developing Applications Using open source technology :: 3