INTRODUCTION
Hospital management and business processes in hospitals have changed considerably over the previous years, as did the use of Information Technology (IT) in their daily works. It was found in our analysis that the use of IS in the hospitals did not develop according to the needs and developments in the hospital organizations over the past decade.
Health care in Bangladesh, as in many other countries, is confronted with a growing demand for medical treatments and services, due to factors such as, a ‘growing’ population, and higher individual standards for quality of life.
This work is focused on the development of a computer aided Hospital Management System and specifically on hospital information systems (IS). An interesting question is how organisational, managerial and IT developments take place in hospitals, and how these developments influence each other, in terms of impact, alignment, and reinforcement.
Modern hospitals nowadays supply professional services, in stead of products. Hospitals had a high cost technological infrastructure in order to sell medical services. This organisational type is now under pressure, due to the changes in society, politics and population. Hospitals can respond to these pressures by transforming into ‘functional specialization’. In this way the organisation tries to reduce costs and to improve the quality of specialized medical services.
A more recent response of hospitals is to move into ‘network management’. A networked hospital tries to improve it’s ‘input-output’ or ‘market’ relations with primary care physicians
In our study, hospital management people have indicated that technology can substantially influence hospital activities and services. It is also expected that health care costs will depend significantly on sophisticated patient management and diagnosis operations. The use of IT in diagnostics and treatment processes will add to the development of networks of clinical, hospital and health care processes. Until recently, in Bangladesh, the focus of IT in health care was on personnel, logistics, and finance. In our proposed solution, we focused on the care processes, including electronic medical files and quality management of patients. It is expected that the older information systems will become more integrated with the new one, the primary process oriented applications of IT.
Objectives
The general objective is designing a Computer Aided Hospital Management System, an integrated Hospital Information System which addresses all the major functional areas of modern multi-specialty hospitals. Our specific objectives of the project are as follows –
- To design a system for better patient care.
- To reduce hospital operating costs.
- To provide on demand MIS report to management for better decision making.
- To streamline activities for better co-ordination among the different departments.
- To provide top management a single point of control.
- To learn the process of developing an Information System.
- To explore new IS technologies and use them, if appropriate.
Methodology
We divided our tasks in eleven sections as following:
Task One: Collect data and information
Task Two: Analyse business processes
Task Three: Define business process
Task Four: Explore New Technology
Task Five: Draw data flow diagram
Task Six: Determine Entities
Task Seven: Determine Identifier for each entity
Task Eight: Draw E/R diagram
Task Nine: Derive relational schema from E/R diagram
Task Ten: Add anticipated attributes
Task Eleven: Create Data Dictionary
Data and its source
We have collected data from IBN-Sina Hospital, Bangladesh Medical College and Hospital, Central Hospital and Holy Family Hospital.
Review of the literature and justification for this project.
Some hospitals in our country are using software for their management information systems, but we found that they have some limitations, like patient history is not stored in database, no online facility for appointments, scalability of user access is limited, etc. We have tried to introduce a new technology of Web based Services which is the most exciting technology in today’s market and is the most current tool for enabling distributed computing. In Chapter 4, we have discussed the history of distributed computing, the concepts and protocols of web services, and the main applications for web services.
Hospital management systems constitute an excellent area for MIS development. There are couple of reasons to use the hospital management system. We tried to develop a computer-aided system that enables better patient care, patient safety and helps to reduced management costs. Our solution provides easy access to critical information, thereby enabling management to take better decisions on time and it provides benefits of streamlining of operations, enhanced administration and control, improved response, cost control and improved profitability.
Limitation
A typical hospital management system, which covers all functional areas, is large enough. In our short project period it was difficult to develop all system components. Thus we decided to reduce the size of our systems in the design phase. We have designed only operational activities of a typical computer aided hospital management systems.
Organizational Chart
The Difficulties System Integrations
System integration is always an issue for any system, especially for systems developed for the hospital business. In our case, the system of the Hospital needs to communicate with different systems from different module, to collect information about the schedules and investigation reports.
In most cases, system developers need to customize the proxies applied to each other system, which evolves tremendously efforts on programming. It also dramatically raises the cost of integrations while we integrate systems case by case.
Scalability, Security, and Transaction Management
Security is important issue while developing an enterprise application. Traditionally, developers have been able to maintain a relatively high level of control over the environment of both servers and clients. However, for scalable web-accessible applications, information assets are projected into less-protected environments, and it becomes increasingly important to maintain tight security over the most sensitive assets, while allowing seemingly unencumbered access to others.
Transactions management is also a complicate, but necessary issue for any enterprise system. To maintain the integrity and consistency of the data, a system need to ensures that each unit fully completes without interference from other processes. If the unit can be completed in its entirety, it is committed. Otherwise, the system completely rolls back.
The Solutions
Tier Client-Server Architecture
Our proposed system is based on 3-Tier Client-Server Architecture. In this architecture, the presentation, the application processing and the data management are logically separate processes. A 3-tier architecture does not necessarily mean that there are three computer systems connected to the network. A single server computer can run both the application processing and the application data management as separate, logical servers. However, if demand rise, it is relatively straightforward to separate the application processing and the data management and execute these on separate processes. The application processing is the most volatile part of the system and it can be easily updated because it is centrally located. Processing, in some cases, may be distributed between the application logic and the data management servers, thus leading to more rapid response to client requests.
Figure Tier client-server architecture
J2EE and .NET are both based on the concept of 3-Tier Architecture. The goal is that the construction and delivery of the user interface is separate from the construction of the business logic, which in turn is separate from the backend data or infrastructure being accessed. This type of architecture depends upon a middle tier container providing a number of services to enable scalability, reliability and availability. Depending on the implementation, the container typically offers a rich set of services for security, transactions and connectivity. Both J2EE and .NET architectures provide developers with this core infrastructure rather than requiring them to build it.
In our proposed systems we suggest to use .NET architecture with backend RDMBS Microsoft SQL Server. But alternate option J2EE can be used, we leave this choice to user.
Web Services for System Integrations
This is the era of distributing computing. Before designing any enterprise application, interoperability should be considered. There will be a time come, when a hospital require to communicate with various systems such as internal financial data, international health care organization, association of health care, potential customer etc. In that case we suggest to use Web Services. Web Services are module applications that adopting some language natural protocols, which can be published, located, and invoked through the Internet. One of the reasons that web service is a solution for system integration is the broad acceptance of this technology. Major vendors in the market including Microsoft, IBM, BEA, Sun Microsoft, Oracle…. all agree with web service protocols and implement them in their products.
Another major reason for adopting web services is the simplicity of these protocols. These XML based protocols are easy to use, and easy to attach on existing system that sometimes businesses don’t even need to change a line of code for the existing system.
[Detail web service in Chapter 4]
SYSTEM ANALYSIS AND IMPLEMENTATIONSYSTEM ANALYSIS AND IMPLEMENTATION
Hospital Management System
In our study, we tried to design a solution for hospital management which are capable to handling the activities of following major departments:
1. Outdoor patient’s Department
2. Indoor Patient’s Department
3. Investigative Labs
4. Billing
5. Medical Stores
6. Financial Accounting
7. Payroll
Hospital Management System – Patient Registration
The Patient Registration System, which captures complete and relevant patient information. The system automates the patient administration functions to have better and efficient patient care process.
- Patient Registration Details
- Inpatient and Outpatient Registration
- Medical Alerts Details
- Appointment Scheduling (Patient / Doctor wise)
- Doctor’s Schedule Summary
- Doctors Daily Schedule List
- Patient Visit History
- Appointments for Radiology tests and Operation Theatre
It provides for enquiries about the patient, the patient’s location, admission, and appointment scheduling and discharge details. Furthermore, this system even takes care of package deals for a patient for a fixed cost. Medical Record keeps an abstract of clinical data about patients. It allows easy retrieval of medical records on patients.
Hospital Management System – Billing
The Patient Billing module handles all types of billing for long-term care. This module facilitates cashier and billing operations for different categories of patients like Outpatient and Inpatient. It provides automatic posting of charges related to different services like bed charges, lab tests conducted, medicines issued, consultant’s fee, food, beverage and telephone charges etc. The system is tuned to capture room and bed charges along with ancillary charges based on the sponsorship category. The Billing Screens is used for In-patient and Outpatient Billing and invoicing. Further more the charges for various services rendered can be recorded through service module and this can be used for billing purposes.
- Payment Modes / Details
- Patient Billing Details
- Automatic Room and Board Charges
- Extensive Third-party Billing
The system supports multiple reports utilizing various print options with user-defined parameters.
Hospital Management System – Financial Accounting
The Financial Accounting Module deals with Cash/Bank, Receipt/Payments, Journal Voucher and General Ledger etc. Books like Cashbook, Bankbook and Ledger book can be generated. This module generates reports like Trail Balance, Balance Sheet and Profit and Loss statement. The Financial Accounting Screens describe about the Account Payable, Account Receivable and General Ledger. Also describe the activities related to IP, OP, Bank related activities and provision to clearing the Supplier Invoice and keep track of the Account Receivable and Revenue related activities. The services that are covered by the sponsor companies, Insurance Agencies, Family Accounts, Individual Accounts, sponsorship details of the patient, Health Card Insurance are recorded in the system. This module is not included in our current version
Hospital Management System – Payroll
The Payroll & Personnel module deals with Pay (and deduction) calculation, printing of salary slip, salary certificates, and PF statements, Gratuity Statement and provides a monthly analysis. It deals with the maintenance of employee bio-data, Attendance / Overtime details. It also reports on absenteeism, leave encasements etc. The Personnel & Payroll department is responsible Employee Related Activities like appointing the staff, maintaining the employee database, Fixing allowances and deductions, Leave entitlements, Leave sanctions, Loan, Termination Process, Maintenance of Hospital documents, Insurance details, Tenancy Contracts and Vehicle Registration etc. This module is not included in our current version.
Hospital Management System – Outpatient Management
The Outpatient module serves as an entry point to schedule an appointment with the Hospital Resident Doctor or Consultant Doctor for Medical Consultations and diagnosis. This module supports doctors to take better and timely consultation decisions by providing instant access to comprehensive patient information. Patient visits are divided into various status. This module also handles requests and results of laboratory tests and other examinations. External Doctors visit to in patients can be defined as “Call on”. Some patients may avail only the hospital facilities like Lab, Radiology, Nuclear Medicine, and Physiotherapy and so on.
- Medical Alerts Details
- Consultation Duty Roster
- Diagnosis Details
- Patient’s Appointments
- Daily / Weekly Schedule Summary
- Appointment Scheduling / Rescheduling Facility
- Outpatient Medical Observation Details
- Investigation / Treatment History
- Clinical Service Details
- Doctor’s Diagnosis Statistics
Further more, Confidentiality of Doctors Observation, Previous History of Patients Visit, Online Prescription, Online Request for Investigations and so on, are the special features in Doctors Observation screen. This system calculates the cost for the services rendered to the patient and reflects in the billing module appropriately resulting in smooth billing process.
Hospital Management System – Inpatient Management
The inpatient module is designed to take care of all the activities and functions pertaining to Inpatient Management. This module automates the day-to-day administrative actives and provides instant access to other modules, which leads to a better patient care. It provides comprehensive data pertaining to Admission of Patients & Ward Management: Availability of beds, Estimation, Agreement preparation, Collection of advance, Planned admission, Emergency admission and so on. The Inpatient module also deals with Ward Management: Shifting from one ward to the other, Bed availability, Surgery, Administration of drugs, nursing notes, charge slip and so on.
- Admission Cost Estimation
- Doctor Transfer Details
- Nursing Notes
- Medical Observation
- Pending Drug Request
- Surgery Scheduling Details
- Discharge Notification Summary
- Expected Date and Time of Discharge
The module tracks every visit made by the patient and caters to follow-up visits of patients, along with multiple appointments.
Hospital Management System – Pharmacy Management
Pharmacy module deals with the automation of general workflow and administration management process of a pharmacy. The pharmacy module is equipped with bar coding facility, which makes the delivery of medical items to the patient more efficient. This module deals with the activities such as:
- Enquiry
- Purchase order
- Pharmacy drug configuration
- Pharmacy stores configuration
- Drug issue to patients and billing
- Supplier information
- Maintenance of drug inventory
- Purchase Requisitions
- Return of items nearing expiry
- Destruction of expired items
- Physical stock verification and adjustment
- Goods receipt
- Stock Adjustment
- Stock in Hand reports
In addition the Online prescription facility assists and facilitates the physicians to track the patient’s prescription details and as well reflects the medication billing details in the Billing module.
Hospital Management System – Laboratory Management
The Laboratory module automates the investigation request and the process involved in delivering the results to the concerned department/doctor of the hospital. Laboratory module starts with receiving the online request from doctors and also allows laboratory personnel to generate requests. The Laboratory module supports to perform various tests under the following disciplines: Biochemistry, Cytology, Hematology, Microbiology, Serology, Neurology and Radiology. Tests are grouped under various sections and sample type (specimen). Based on the request the user can input the sample and generate the sample number. Results can be entered based on the sample type either to one test or multiple tests. If the test result requires approval, the supervisor has to approve the result and it is made available to concerned doctors.
- Sample Result Entry
- Test Report Entry
- Antibiotic Details
- Result Range for Test
- Investigation Request
- Sample Details
- Samples Received from External Laboratory
- Samples Dispatch to External Reference Laboratory
Test report can be made confidential. Tests can be performed only after the billing is done. This rule is exempted when the case is declared as Urgent. In addition, this module facilitates investigations for referral patients.
Hospital Management System – User Manager
The User Manager module basically deals with security through controlling the access to the information available in the application. Any user associated with a user group can access only those screens for which the user group has rights. It also deals with the System Related Activity like User Monitor, Creating User Group Master, User Master and view the User Group Lookup of employee database, Maintenance of company documents, User defined error message, Generating Daily Statistical Summary.
Data Dictionary
Table Data Dictionary of Entities
SL | Entity | Definitions |
1 | Patient | Patient comes hospital for treatment |
2 | User | Employee of hospital |
3 | Lab Test | There are different types of Laboratory Test performed in a hospital. Patient may use these services. |
4 | Radio/Image | There are different types of Radio/Image Test performed in a hospital. Patient may use these services. |
5 | Bed | There are different types of Bed available in a hospital to be provided to Patient. |
6 | Operation | There are different types of Operation performed in a hospital. Patient may use these services. |
7 | Doctor | Various specialist doctors work in a hospital. They visit patients. |
8 | Medicine | Medicines are available in drug store. |
9 | Supplier | Supplier of medicine |
10 | Payment | Patient pay for the services |
11 | Consultant | Outside consultant also visit patients. |
Table Data Dictionary of Relationship
SL | Relationships | Definitions |
1 | Bed_History | It represents relationship between Bed & Patient. A patient may occupy one or more bed. A bed may be provided to one or more patient. |
2 | OPS_History | It represents relationship between Operation and Patient. A patient may schedule one or more Operation. A operation may be scheduled to one or more patient. |
3 | Doctor_visit_history | It represents relationship between doctor visit & patient. A doctor may visit one or more patient. A patient may be visited by one or more doctor. |
4 | Consultant_History | It represents relationship between outside consultant & patient. A consultant may visit one or more patient. A patient may be visited by one or more consultant. |
5 | Lab_History | It represents relationship between patient and Laboratory test. A patient may schedule one or more Laboratory Test and A Test may be scheduled to one or more patient. |
6 | Radio_Image_History | It represents relationship between patient and Radiology & Imaging Test. A patient may schedule one or more Radio/Image Test and A Test may be scheduled to one or more patient. |
7 | Medicine_In | It represent stock in |
8 | Medicine_Out | It represent stock out |
9 | Appointment | Patient makes appointment with doctor. A patient may make appointment with one or more doctor. A doctor may visit one or more out patient. |
Table Data Dictionary of Attributes
SL | DATA ELEMENT | DESCRIPTION | DATA TYPE |
1 | U_ID | Unique ID number of user | Characterr |
2 | U_NAME | Name of user | Character |
3 | U_GROUP | Different user group are Administrator, Registration, Pharmacy, Lab, Accounts | Character |
4 | PASSWORD | Password of user | Character |
5 | PATIENT ID | A unique ID number of patient | Character |
6 | TITLE | Salutation of patient such Mr., Mrs., Ms, Dr etc. | Character |
7 | NAME | Name of patient | Character |
8 | ADDRESS | Address of patient | Character |
9 | EMERGENCY_CONTACT | Emergency contact telephone number of patient | Character |
10 | SEX | Gender of patient either Male or Female | Character |
11 | MARITAL_STATUS | Marital status of patient either Yes or No | Logical |
12 | BLOOD_GROUP | Blood group of patient | Character |
13 | DOB | Date of Birth of patient | Date |
14 | AGE | Age of patient | Numeric |
15 | PAYMENT_TYPE | Type of payment whether its Self or sponsor | Character |
16 | REF_BY | Patient is referenced by whom | Character |
17 | ENTRY_DATE | Date of entry | Date |
18 | ENTRY_TIME | Time of entry | Time |
19 | HISTORY | Medical history of patient | Character |
20 | DIS_DATE | Discharge date of patient | Date |
21 | DIS_TIME | Discharge time of patient | Time |
22 | DIS_COMMENTS | Discharge comments of patient | Character |
23 | ADVANCE | Patient’s Advance money | Numeric |
24 | MEDICINE_ALERT | Medicine alert of patient | Character |
25 | BED_ID | ID number of Bed | Character |
26 | BED_TYPE | Type of Bed | Character |
27 | BED_DESC | Description of Bed | Character |
28 | BED_CHARGE | Rate of particular Bed | Numeric |
29 | O_ID | ID number of Operation | Character |
30 | O_DESC | Description of Operation | Character |
31 | O_CHARGE | Charge of the particular operation | Numeric |
32 | D_ID | ID number of doctor | Character |
33 | D_NAME | Name of doctor | Character |
34 | D_QUALIFICATION | Qualification of doctor | Character |
35 | D_CONTACT | Contact telephone number of doctor | Character |
36 | C_ID | ID number of consultant | Character |
37 | C_NAME | Name of consultant | Character |
38 | C_QUALIFICATION | Qualification of consultant | Character |
39 | C_CHARGE | Charge of consultant | Numeric |
40 | C_CONTACT | Contact number of consultant | Character |
41 | L_TEST_ID | ID number of LAB test | Character |
42 | L_NAME | LAB test name | Character |
43 | L_CHARGE | Charge of particular LAB test | Numeric |
44 | L_TYPE | Category or type of LAB test. | Character |
45 | RI_TEST_ID | ID number of Radio/Image test | Character |
46 | RI_NAME | Name of Radio/Image test | Character |
47 | RI_CHARGE | Cost of particular Radio/Image test | Numeric |
48 | RI_TYPE | Type of Radio/Image test | Character |
49 | OTHER_ID | ID number of other services | Character |
50 | OTHER_NAME | Name of other services | Character |
51 | OTHER_CHARGE | Cost of particular other services | Numeric |
52 | MONEY_RECEIPT_NO | Money receipt Serial No. | Character |
53 | DATE | Date of a particular service rendered. | Date |
54 | NO_OF_DAY | No of day(s) stayed at hospital | Numeric |
55 | BED_TOTAL | Total Bed Charge | Numeric |
56 | PAID | Status of payment whether it is paid or not | Logical |
57 | VISIT_DATE | Doctor’s visit date | Date |
58 | VISIT_TIME | Doctor’s visit time | Time |
59 | PRESCRIPTION | Doctor’s prescription | Character |
60 | DEL_DATE | Date of delivery for Lab test | Date |
61 | P_AMOUNT | Amount paid by patient against a particular money receipt | Numeric |
62 | DISCOUNT | Discount on payment | Numeric |
63 | P_DATE | Date of payment | Date |
64 | A_ID | Doctors Appointment ID | Character |
65 | A_DATE | Date of Appointment | Date |
66 | SL_NO | Serial Number of appointment | Numeric |
67 | VISITED | A logical flag of visit. Whether doctors has visited patient or not. | Logical |
68 | MEDICINE_ID | ID number of a particular medicine | Character |
69 | MEDICINE_NAME | Name of medicine | Character |
70 | UNIT_ID | ID number of UNIT of medicine | Character |
71 | STOCK | Current stock of a particular medicine | Numeric |
72 | RATE | Selling Rate of a particular medicine | Numeric |
73 | MEDICINE_DESC | Description of a medicine | Character |
74 | SUPPLIER_ID | ID number of supplier | Character |
75 | UNIT | Number of unit receive from supplier | Numeric |
76 | QUANTITY | No of quantity sold to patient | Numeric |
77 | DATE_IN | Date of medicine added in the stock | Date |
78 | DATE_OUT | Date of medicine out in the stock | Date |
79 | BATCH_NO | Batch No. of medicine | Character |
80 | MFG_DATE | Date of Manufactured | Date |
81 | EXP_DATE | Date of Expired | Date |
82 | S_NAME | Name of Supplier | Character |
83 | S_ADDRESS | Address of Supplier | Character |
84 | S_TEL | Telephone nbr of supplier | Character |
85 | S_FAX | Fax nbr of supplier | Character |
86 | UNIT_DESC | Description of Unit ID | Character |
WEB SERVICES
Our proposed system is based on 3-Tier Client-Server Architecture [we discussed detailed in Chapter 2]. In this architecture, the presentation, the application processing and the data management are logically separate processes.
In our proposed systems we suggest to use .NET architecture with backend RDMBS Microsoft SQL Server. But alternate option J2EE can be used, we leave this choice to user.
This is the era of distributing computing. Before designing any enterprise application, interoperability should be considered. There will be a time come, when a hospital require to communicate with various systems such as internal financial data, international health care organization, association of health care, potential customer etc. In that case we suggest to use Web Services. Web Services are module applications that adopting some language natural protocols, which can be published, located, and invoked through the Internet. One of the reasons that web service is a solution for system integration is the broad acceptance of this technology. Major vendors in the market including Microsoft, IBM, BEA, Sun Microsoft, Oracle…. all agree with web service protocols and implement them in their products.
Another major reason for adopting web services is the simplicity of these protocols. These XML based protocols are easy to use, and easy to attach on existing system that sometimes businesses don’t even need to change a line of code for the existing system.
Web Service is one of the most exciting technologies in today’s market, which is the most current tool for enabling distributed computing. In this section, we’ll introduce the history of the distributed computing, the concepts and protocols of web services, and the mainly applications for web services.
History of Distributed Computing
Web Services are no more than agreements between different programmers while developing their applications, which is known as distributed computing. For two systems developing at the same time that both of the parties agree with some protocols for data exchanges, there is no pain to integrate them for developers.
However, system developers usually can not expect what systems they will communicate with, nor they have the ability to decide the implementation for the other party. Another problem in today’s software market is that systems are usually developed in some vendor specified platforms, which means most fundamental infrastructures are already built while companies start to develop their own systems. The benefit of adopting a platform to develop the system is remarkable that programmers can focus on programming the business rules. However, it also draws the interpretable problems since vendors usually allow their platforms communicate with their own products, or even with the same operation systems. For example, the DCOM from Microsoft could not communicate with a system developed in the Java environment.
Programmers were the losers in this kind of software battles between vendors. Each vendor has its own implementation on how to enable a distributed system, and programmers loose the ability to communicate with other systems or they need to write some application-specified programs for exchanging data in a case-by-case basis.
The web services then emerged in a rapid pace after the major players in today’s market declare their supports on those web services related protocols, especially on the SOAP. While there are still some drawbacks in the web services model such as security issue, the low cost and simplicity have made a promise for a success for web services. Today, most vendors already have their implementations on web services that their platforms can talk with each other with only little effort.
Before we dig into the web services protocols, we’ll review some of the important history that evolves this technology.
DCOM
The Microsoft developed Component Object Model (COM) in early 1990’s as a components development model for windows platform. Later on, it introduced the Distributed COM (DCOM) that crossed the machines boundaries. However, the DCOM is a Microsoft protocol that it only allows programs developed under windows platform to communicate. DCOM is very solid in security implementation but also very complicate.
CORBA
The Common Object Request Broker Architecture (CORBA) was also introduced in early 1990’s as a cross-vendor initiative by the Object Management Group (OMG). The CORBA works in a stateful programming model that the program implement CORBA protocols need to maintain the status of the connection between the client and the server. Protocols of CORBA need to works with encapsulate binary code that makes the CORBA extremely complicate.
RMI
Sun Microsoft introduced the Remote Methods Invocation (RMI) in the Java class library that is embedded in the standard APIs. RMI played as proxies in between the two Java Virtual Machines and enable one of the JVM to use the resource in another machine like in it’s own JVM. The RMI crosses the boundaries of operation systems, but both sides need to be running JVM.
XML-RPC
It is fair to say that the SOAP is a descent of XML-RPC (XML Remote Procedure Call). The XML-RPC allows us to call procedures on remote machines without worrying about the operation system and language environment as long as they are connected with HTTP protocol. The main shortcoming of XML-RMI is that it lacks good data typing. For example, the XML-RPC does not handle advanced data structure even arrays well that most vendors did not fully embrace it. However, the experience of XML-RPC was used in the design of SOAP.
EAI
As SOAP, the Enterprise Application Integration (EAI) is an XML based protocol to connect applications. However, the EAI tends to be more specific to a particular business process, such as connecting a specific human resource application to a specific financial application. EAI was adopted by many applications but its implementation is more expensive and less flexible compare to the SOAP.
Introducing Web Services
The web services contain three main blocks that are known as discovery, description, and invocation. As shown in the figure, to use a web service, a client program needs first to find the web service the services available. Next, the client needs to learn what the service does and what the service need from the description of the web service. Finally, the client consumes the web service by invoking the service and receives the result. Base on these main blocks, the Web Services architecture comprises the following components
The Service Provider
The provider is generally responsible for providing the business logic and generating the description of the interface. From a business perspective, this is the owner of the service. From an architectural perspective, it is the platform that provides access to the service.
The Service Requester
The service requester is the service client that needs to request the service. The service requester is looking for a service through the broker and finally invoking the service of the service provider to acquire meaning information for it’s own business purposes.
The Service Broker
A Web Service Broker, or directory, plays the optional role of matchmaker in the enterprise Web services architecture. The broker function, while not strictly required, is widely assumed to be a critical component to facilitate dynamic discovery of desired Web services much like the yellow pages of today. While this is certainly a necessary function for building enterprise-class Web services that scale to support a large number of external, public partners, it is also a critical component when deploying web services within an enterprise or for use with private trading communities.
In short, the broker is a searchable repository of service descriptions where service providers publish their Web Services descriptions and service requesters find and obtain binding information for Web Services.
Web Service Protocols
There are some important web service related protocols such as SOAP, WSDL, UDDI protocols, which are used to enable web services. Some other fundamental protocols such as HTTP, SMTP, FTP, XML are protocols other protocols build on. Other emerging protocols such as WSDL (from IBM) and XLANG (from Microsoft) are protocols for workflow global models that built on the web services.
Based on the specifications from W3C, SOAP is a lightweight protocol for exchange of information in a decentralized, distributed environment. It is an XML based protocol that consists of three parts: an envelope that defines a framework for describing what is in a message and how to process it, a set of encoding rules for expressing instances of application-defined data types, and a convention for representing remote procedure calls and responses. SOAP can potentially be used in combination with a variety of other protocols.
From a programming perspective, SOAP defines a messaging protocol between requestor and provider objects, such that the requesting objects can perform a remote method invocation on the providing objects in an object-oriented programming fashion.
The SOAP specification was co-authored by Microsoft, IBM, Lotus, UserLand, and DevelopMentor. The beauty of SOAP is that it is completely vendor-neutral, allowing for independent implementations relative to platform, operating system, object model, and programming language. Additionally, transport and language bindings as well as data-encoding preferences are all implementation dependent.
WSDL
The Web Services Description Language is an XML vocabulary that provides a standard way of describing service IDLs. It provides a simple way for service providers to describe the format of requests and response messages for remote method invocations, or remote procedure call. In general, WSDL provides an abstract language for defining the published operations of a service with their respective parameters and data types. The language also addresses the definition of the location and binding details of the service.
UDDI
The Universal Description, Discovery, and Integration specification provides a common set of SOAP APIs that enable the implementation of a service broker. The UDDI specification was outlined by IBM, Microsoft, and Ariba to help facilitate the creation, description, discovery, and integration of Web based services. The motivation behind UDDI.org, a partnership and cooperation between more than 70 industry and business leaders, is to define a standard for B2B interoperability.
WSFL/ XLANG4
The Web Services Flow Language is an XML language for the description of Web Services compositions proposed by IBM. The attempt of WSFL is to treat web services as components and put them into applications. From the perspective of workflow, the WSFL combine all web services as activities the business process need, and route the process based on these activities to different roles to accomplish the process.
WSFL considers two types of Web Services compositions:
The first type specifies the appropriate usage pattern of a collection of Web Services, in such a way that the resulting composition describes how to achieve a particular business goal; typically, the result is a description of a business process.
The second type specifies the interaction pattern of a collection of Web Services; in this case, the result is a description of the overall partner interactions
The same idea of WSFL can be applied to the XLANG. XLANG is an early implementation provided by Microsoft for automation of business processes based on web services. This specification provides details about the message exchange behavior among participating web services.
A workflow engine would have to be created to use XLANG or WSFL to actually track the state of process instances and help enforce protocol correctness in message flow. Both protocols can be implemented in any programming language and environment.
Applications of Web Services System Integration
Web services are highly suited to integration since they offer a platform and technology-agnostic vehicle for creating interoperability between systems that were never designed to work together simply by adding a SOAP interface. Web services are easy to learn and they are backed by a rapidly evolving and broadly accepted set of industry standards.
Usually, applications can locate web services using UDDI and determine the interface definition of the service using WSDL. In essence, Web services technology can be thought of as an evolution of function integration technology such as CORBA, as depicted in the following diagram:
A major advantage of Web services over CORBA is that Web services technology is much less complicate. For example, web services do not require integration of an ORB (Object Request Broker), a task that is not for the faint of heart. Also because the underlying transport protocol behind Web services is based on XML over HTTP, it is fully compatible with firewalls and the Internet.
With Web services, applications can be quickly and easily integrated into a portal or syndicated to a third-party business. However, as we can see from the figure, web services fall squarely in the function integration bucket. In order for Web services to be used for presentation layers integration, several extensions will needed to be made to the collection of Web services specifications.
J2EE and .NET
J2EE and .NET are the most common choices in today’s market for enterprise application development. We’ll have some discussions on both of these technologies.
J2EE
J2EE was the earliest platform designed for enterprise application development. The Sun Microsoft published the specifications for J2EE that vendors can implement them in their platforms, which are often called application servers.
The only absence among big players is Microsoft, which uses the .NET framework. Other vendors like IBM (Web Sphere), BEA (Web Logic), Oracle (9i Application Server), SONY, HP, IONA… all stick with the J2EE technology.
Based on the blueprint from Sun Microsoft, The J2EE platform is designed to provide server-side and client-side support for developing distributed, multi-tier applications. Such applications are typically con-figured as a client tier to provide the user interface, one or more middle-tier modules that provide client services and business logic for an application, and back-end enterprise information systems providing data management. The above figure illustrates the various components and services that make up a typical J2EE environment.
One of the most important components in the J2EE is the Enterprise Java Bean running in the EJB Container. We’ll discuss the EJB in the next session.
A Web component in the web container is an entity that provides a response to a request. A Web component typically generates the user interface for an application. The J2EE platform specifies two types of Web components: servlets and JavaServer Pages.
The EIS tier is the backbone for the J2EE application that connects to other systems or persistent data storage.
EJB
The Enterprise Java Beans architecture is a server-side technology for developing and deploying components containing the business logic of an enterprise application. Enterprise Java Beans components, also referred to as enterprise beans, are scalable, transactional, and multi-user secure. There are three types of enterprise beans: session beans, entity beans, and message-driven beans. Session and entity beans have two types of interfaces: a component interface and a home interface. The home interface defines methods to create, find, remove, and access metadata for the bean. The component interfaces define the bean’s business logic methods. Message-driven beans do not have component and home interfaces.
An enterprise bean’s component and home interfaces are required to be either local or remote. Remote interfaces are RMI interfaces provided to allow the clients of a bean to be location independent. Regardless of whether the client of a bean that implements a remote interface is located on the same VM or a different VM, the client uses the same API to access the bean’s methods. Arguments and return results are passed by value between a client and a remote enterprise bean, and thus there is a serialization overhead.
A client of an enterprise bean that implements a local interface must be located in the same VM as the bean. Because object arguments and return results are passed by reference between a client and a local enterprise bean, there is no serialization overhead.
Based on the blueprint from Sun Microsoft, The J2EE platform is designed to provide server-side and client-side support for developing distributed, multi-tier applications. Such applications are typically con-figured as a client tier to provide the user interface, one or more middle-tier modules that provide client services and business logic for an application, and back-end enterprise information systems providing data management. The above figure illustrates the various components and services that make up a typical J2EE environment.
One of the most important components in the J2EE is the Enterprise Java Bean running in the EJB Container. We’ll discuss the EJB in the next session.
A Web component in the web container is an entity that provides a response to a request. A Web component typically generates the user interface for an application. The J2EE platform specifies two types of Web components: servlets and JavaServer Pages.
The EIS tier is the backbone for the J2EE application that connects to other systems or persistent data storage.
EJB
The Enterprise Java Beans architecture is a server-side technology for developing and deploying components containing the business logic of an enterprise application. Enterprise Java Beans components, also referred to as enterprise beans, are scalable, transactional, and multi-user secure. There are three types of enterprise beans: session beans, entity beans, and message-driven beans. Session and entity beans have two types of interfaces: a component interface and a home interface. The home interface defines methods to create, find, remove, and access metadata for the bean. The component interfaces define the bean’s business logic methods. Message-driven beans do not have component and home interfaces.
An enterprise bean’s component and home interfaces are required to be either local or remote. Remote interfaces are RMI interfaces provided to allow the clients of a bean to be location independent. Regardless of whether the client of a bean that implements a remote interface is located on the same VM or a different VM, the client uses the same API to access the bean’s methods. Arguments and return results are passed by value between a client and a remote enterprise bean, and thus there is a serialization overhead.
A client of an enterprise bean that implements a local interface must be located in the same VM as the bean. Because object arguments and return results are passed by reference between a client and a local enterprise bean, there is no serialization overhead.