eSoftHead is a Vietnamese IT company that offers outsourcing, consulting and customized software services using their Engroup product. Engroup is an open source groupware solution that provides features like chat, wiki, forums and modules for CRM, HRM and project management. It has a modular architecture and is developed using technologies like Java, Flex, Spring and supports integration with other systems through REST APIs.
2. eSoftHead profile
• A Vietnamese IT company set up since 8/2008.
• eSoftHead offers the following services:
– Outsourcing and Offshoring.
– Technical consultant.
– Customized services from eSoftHead products.
• Contact information:
– Service request: info@esofthead.com
– Address: 15/20/12 Truong Quoc Dung street, Ho Chi
Minh city, Viet Nam.
– Telephone: (+84) 091 8734 068
http://www.esofthead.com
3. eSoftHead Competences
• Methodology: CMM, RUP, Scrum, XP.
• Technology: Web Service, SOA, REST, RIA.
• Programming Languages: Java, Flex, .NET.
• Frameworks and Libraries: Spring (core and all
extensions), Hibernate, iBatis, Ehcache, Cxf,
Grails, Cairgorm.
• Softwares: LDAP, Maven, Ant, CVS, SVN.
• Database: MySQL, Oracle, MSSQL Server
http://www.esofthead.com
4. eSoftHead Solutions
• Rich Internet Application: Flex/Ajax base.
• Content Management: JCR 170 – Jackrabbit
implementation.
• Groupware service: Calendar, Chat, Note,
Contact, News, Forum, Wiki, Project Management
• Enterprise architecture: ESB, JMS, Osgi.
• Software best practices: TDD, Unit test, API
Design, OO Principles.
http://www.esofthead.com
5. Enterprise Groupware (Engroup)
• Introduction
• Features
• Roadmap
• Technical Requirements
• Engroup Architecture
• Development Status
http://www.esofthead.com
6. Engroup introduction
• Engroup is an open
source groupware
under GPL license.
• Engroup powers the
cooperation among
company staff by
providing the Chat,
Wiki, Forum, etc.
modules.
http://www.esofthead.com
7. Engroup introduction (cont.)
• In addition, Engroup
provides the modules
for company
operations such as
HRM, CRM,
Document
Management, Project
Management
• Engroup has been
developed since
4/2008.
http://www.esofthead.com
8. Features
• Dashboard: News
• Connections: Private Message and User List.
• Profile: User account, picture and other personal
information.
• Administrator: system and security
configuration.
• Human Resource Management: company and
employee information.
• Customer Relationship Management: basic
customer contacts, lead, campaign information.
http://www.esofthead.com
9. Features (cont.)
• Document Management
• Project Management.
• Forum: message board.
• Wiki: knowledge management.
• Mail: only IMAP is supported.
• Chat: any XMPP server is connectable.
• To-do: task management.
• News: all versions of RSS and Atom are
supported.
http://www.esofthead.com
10. Roadmap
• Engroup 1.5: Document Management, Project
Management and Timesheet modules are added
and integrated with existing modules are CRM,
HRM. Simple Reporting System is developed
that can display charts.
• Engroup 1.6: Advanced Reporting System, Bug
Tracking, Timesheet
• Engroup 2.0: enable System Administrator to
configure various options of clustering as well as
caching level in enterprise environment.
http://www.esofthead.com
11. Roadmap (cont.)
• Many modules such as social networking,
finance etc could be added later.
http://www.esofthead.com
12. Technical Requirements
• Performance and Scalability: services must be
able to serve an unlimited number of users 24/7.
Engroup must be designed to be able to run in
clustering environment effectively.
• Extensibility: components are designed with
loose coupling and high cohesion. Cost of
upgrading and extending must be minimal.
http://www.esofthead.com
13. Technical Requirements (cont.)
• Modularity: Each module code base is
independent of the others. One module can be
changed without impacting any other one.
• Security: User access is restricted based on
method level of service class.
• Testability: The system is designed to make it
easy for writing unit test, integration test.
http://www.esofthead.com
14. High Level Architecture
• Communication
method between
Client and Server are
AMF, HTTP
protocols.
• Engroup server
modules could be
integrated with other
clients via REST.
http://www.esofthead.com
15. Engroup Client Platform
• Platform is developed
based on eSoftHead
framework including
an extension of
Adobe Cairngorm
framework.
• Module architecture
follows MVC pattern.
http://www.esofthead.com
16. Engroup Client Platform (cont.)
• Platform manages
Module life cycle.
• Platform routes
messages sent from
one module to
appropriate client
channel that then
dispatches events to
listening modules. It
helps the module
loose coupling with
each others.
• http://www.esofthead.com
17. Engroup Client Platform (cont.)
• Platform and common
API are independent of
AIR library.
• Factory pattern is used
to separate logic code
between platform and
specific AIR API →
Engroup client can run
on both desktop and
web environment.
http://www.esofthead.com
18. Engroup Server Platform
• Platform is developed based on Spring
framework and Osgi platform (Equinox) as well.
• Platform packages many third-party Java
libraries as Osgi bundles:
– Apache libraries.
– Chat.
– Logging.
– XML processing etc.
http://www.esofthead.com
19. Engroup Server Platform (cont.)
• Forum, Wiki, Mail products are incorporated into
Engroup server by:
– Changing the legacy code base (Limit usage).
– Data integration (for example: LDAP).
– API - using Enterprise Integration Framework Spring
Integration to implement publish-subscribe pattern to
dispatch messages to appropriate channels.
http://www.esofthead.com
20. Engroup Server Platform (cont.)
• Each Engroup
module follows OO
principles:
– Each layer has single
and clear
responsibility.
– Extensibility.
– No cycle dependency.
– Separating interface
and implementation
into different
packages.
http://www.esofthead.com
21. Development Status
• There are more than
20 Flex projects and
nearly 30 Java
projects in Engroup
workspace.
• eSoftHead automates
Engroup build
process using
Hudson – a Java CI
server.
http://www.esofthead.com
22. Development Status (cont.)
• Main features are
tested by using unit
test or integration test
approach.
• eSoftHead developed
its test framework
library for Osgi
platform, LDAP, Mail,
Database.
http://www.esofthead.com