Tin tức và phân tích của tất cả các thiết bị di động

COBOL là gì và tại sao rất nhiều tổ chức dựa vào nó?

Thống đốc New Jersey gần đây đã đề cập đến COBOL, một ngôn ngữ lập trình 60 tuổi. Nó thực sự là gì? Và tại sao nó vẫn là một trụ cột của thế giới tài chính mặc dù vẫn còn rất ít người biết cách sử dụng nó?

Nguồn gốc của COBOL

Grace Hopper là một hiện tượng. Cô lấy bằng tiến sĩ toán học tại Yale, là giáo sư tại Vassar và rời Hải quân Hoa Kỳ với cấp bậc chuẩn đô đốc. Đóng góp của cô ấy cho lĩnh vực khoa học máy tính có thể được đánh giá bằng số lượng cơ sở và chương trình đã được tạo ra trong ký ức của cô ấy. Trung tâm Điện toán Quốc gia về Nghiên cứu Năng lượng đã đặt tên cho siêu máy tính Cray XE6 của họ theo tên bà. Hải quân cũng đặt tên cho tàu khu trục tên lửa dẫn đường của nó là USS Hopper. Phương châm của con tàu “Aude et Effice” (“Dám làm”) có thể đã được nghĩ ra với Hopper.

Với mục tiêu tạo ra một ngôn ngữ lập trình gần với tiếng Anh hơn là mã máy mà máy tính hiểu được, Hopper đã phát triển trình biên dịch đầu tiên. Điều này đã mở ra cánh cửa cho các ngôn ngữ được biên dịch đầu tiên như FLOW-MATIC. Điều này khiến cô trở thành thành viên của Hội nghị/Ủy ban Ngôn ngữ của Hệ thống Dữ liệu (CODASYL) năm 1959.

Nó cũng đóng một vai trò quan trọng trong việc đặc tả và phát triển Ngôn ngữ kinh doanh chung (COBOL). Cuộc họp đầu tiên được tổ chức vào ngày 23 tháng 6 năm 1959, báo cáo và đặc điểm kỹ thuật của ngôn ngữ COBOL được tổ chức vào tháng 4 năm 1960.

COBOL là cấp tiến

COBOL chứa một số khái niệm đột phá. Có lẽ điều quan trọng nhất trong số đó là khả năng chạy trên các thiết bị được sản xuất bởi các nhà sản xuất khác nhau, điều chưa từng có vào thời điểm đó.

Ngôn ngữ đã được đánh bóng và cung cấp cho các nhà phát triển vốn từ vựng gần như tiếng Anh. Nó được thiết kế để xử lý lượng dữ liệu khổng lồ và cực kỳ chính xác về mặt toán học.

Từ điển của anh ấy về các từ dành riêng (các từ tạo nên một ngôn ngữ) có gần 400 từ. Lập trình viên xâu chuỗi các từ dành riêng này lại với nhau để tạo ý nghĩa cú pháp và tạo ra một chương trình.

Bất kỳ lập trình viên nào biết các ngôn ngữ khác sẽ nói với bạn rằng 400 là một số từ dành riêng đáng kinh ngạc. Để so sánh, C có 32 và Python có 33.

Một điều khó hiểu khác của COBOL là yêu cầu nghiêm ngặt rằng các dòng chương trình nhất định bắt đầu trong các cột nhất định. Đây là một nôn nao từ những ngày của thẻ đục lỗ. Giờ đây, các lập trình viên có nhiều tự do hơn khi định dạng COBOL và không còn phải gõ mọi thứ bằng chữ hoa. Điều này làm cho nó ít quy định hơn và không an toàn khi làm việc, nhưng phần lớn nó vẫn là một công việc của riêng nó, như được hiển thị bên dưới:

IDENTIFICATION DIVISION.
      PROGRAM-ID. Hello-World.
      DATA DIVISION.
      FILE SECTION.
      WORKING-STORAGE SECTION.
      PROCEDURE DIVISION.
      MAIN-PROCEDURE.
           DISPLAY "Hello world, from newsblog.pl!"
           STOP RUN.
      END PROGRAM Hello-World.

COBOL LÀ MỘT HIT

Hầu hết các giao dịch ATM vẫn sử dụng COBOL.

Nghe có vẻ kỳ cục nhưng COBOL đã là một cuộc cách mạng khi nó được giới thiệu ra thị trường. Nó đã nhận được sự ưu ái trong lĩnh vực tài chính, chính phủ liên bang, các tập đoàn và tổ chức lớn. Điều này là do khả năng mở rộng, xử lý hàng loạt và độ chính xác toán học của nó. Nó đã được cài đặt trong các máy tính lớn trên khắp thế giới, bén rễ và phát triển mạnh mẽ. Giống như một loại cỏ dại cứng đầu, nó sẽ không chết.

Sự phụ thuộc của chúng ta vào các hệ thống vẫn chạy COBOL thật đáng kinh ngạc. Một báo cáo của Reuters năm 2017 đã chia sẻ số liệu thống kê đáng kinh ngạc sau:

Có 220 tỷ dòng mã COBOL được sử dụng ngày nay.
COBOL là cơ sở của 43 phần trăm của tất cả các hệ thống ngân hàng.
Các hệ thống được cung cấp bởi COBOL xử lý giao dịch giá trị hàng ngày 3 nghìn tỷ USD.
COBOL xử lý 95 phần trăm của tất cả các hoạt động thẻ ATM.
COBOL cho phép 80% tất cả các giao dịch thẻ tín dụng cá nhân.

Như bạn có thể thấy, thật khó để vượt qua một ngày mà không sử dụng hệ thống dựa trên COBOL. Tài khoản ngân hàng và dịch vụ thanh toán séc, cũng như cơ sở hạ tầng công cộng như máy ATM và đèn giao thông, vẫn chạy trên mã này được viết từ nhiều thập kỷ trước.

COBOL là một vấn đề

Các lập trình viên biết COBOL hoặc đã nghỉ hưu, đang nghĩ đến việc nghỉ hưu hoặc đã chết. Chúng tôi liên tục mất đi những người có kỹ năng để duy trì hoạt động của các hệ thống quan trọng này. Các lập trình viên mới, trẻ hơn không biết COBOL. Hầu hết cũng không muốn làm việc trên các hệ thống mà bạn phải duy trì mã cũ hoặc viết mã mới.

Đây là một vấn đề mà cựu chiến binh COBOL Bill Hinshaw buộc phải nghỉ hưu để bắt đầu COBOL Cowboys. Công ty tư vấn tư nhân này phục vụ các khách hàng doanh nghiệp tuyệt vọng, những người không thể tìm thấy lập trình viên COBOL ở bất cứ đâu. “Tuổi trẻ” trong COBOL Cowboys (có phương châm là “Không phải Rodeo đầu tiên của chúng tôi”) đều ở độ tuổi ngũ tuần. Họ tin rằng 90% hệ thống kinh doanh trong danh sách Fortune 500 chạy bằng COBOL.

Tất nhiên, các công ty tư nhân, tập đoàn và ngân hàng không phải là những người duy nhất cần thu thập lượng dữ liệu tài chính khổng lồ. Các dịch vụ của chính quyền liên bang, tỉnh và địa phương có các yêu cầu giống nhau. Giống như những người khác, họ sử dụng máy tính lớn và COBOL cho việc này.

Tác động khủng khiếp của đại dịch vi-rút corona đã dẫn đến đau lòng, tử vong và bất ổn kinh tế cho các chủ doanh nghiệp, người lao động và những người tự kinh doanh. Số lượng lớn các vụ sa thải ở New Jersey đã khiến thống đốc phải kêu gọi các nhà phát triển COBOL có kinh nghiệm hỗ trợ các hệ thống phụ trợ cũ kỹ. Đây là những khó khăn để đối phó với 326.000 đăng ký mới.

Open Project Mainframe chạy một sáng kiến ​​viện trợ dựa trên tình nguyện viên. Nếu bạn nghĩ rằng bạn sẽ có thể giúp đỡ, họ rất muốn nghe từ bạn.

New Jersey không đơn độc trong tình huống này. Hơn 10 triệu người đã đăng ký thất nghiệp và con số này đang tăng lên. Connecticut đang vật lộn để xử lý một phần tư triệu đăng ký mới trên các hệ thống nhà nước 40 năm tuổi.

Đây là một vấn đề phổ biến và có nguồn gốc sâu xa. Báo cáo của Văn phòng Trách nhiệm giải trình Chính phủ năm 2016 đã liệt kê các hệ thống COBOL chạy trên các máy tính lớn hơn 53 năm tuổi. Chúng bao gồm các hệ thống được sử dụng để xử lý dữ liệu liên quan đến Bộ Cựu chiến binh, Bộ Tư pháp và Cơ quan An sinh Xã hội.

Tại sao không di chuyển và cập nhật như ngày hôm qua?

Việc cập nhật các hệ thống cũ hơn này không hề dễ dàng. Các hệ thống là điểm tựa then chốt, 24/7 mà thế giới tài chính, chính phủ và doanh nghiệp xoay quanh. Mã cũ, nhiều lớp và thường kém hoặc hoàn toàn không có giấy tờ. Nó cũng phải làm việc mọi lúc. Viễn cảnh được ví như việc tháo cánh quạt ra khỏi máy bay và cố gắng trang bị động cơ phản lực cho nó – trong chuyến bay.

Rủi ro sang một bên, trường hợp kinh tế để chuyển sang các hệ thống hiện đại cũng rất khó khăn. Số tiền đã được bơm vào để duy trì hoạt động của các máy tính lớn này và các ứng dụng COBOL thật đáng kinh ngạc. Các chế có nên vứt bỏ tất cả và làm lại từ đầu trong khi mã COBOL này vẫn đang chạy và chạy không? Đó là một công việc khó khăn đối với một hội đồng có lẽ không đặc biệt thiên về kỹ thuật. Di chuyển COBOL sẽ không rẻ hoặc nhanh chóng.

Hinshaw nói: “Tôi vừa chuyển đổi từ COBOL sang Java. “Họ đã mất bốn năm và nó vẫn chưa hoàn thành. “

Khi Ngân hàng Commonwealth của Úc thay thế nền tảng COBOL cốt lõi của mình vào năm 2012, phải mất 5 năm, với chi phí cuối cùng là 749 bảng Anh,9 triệu USD (1 tỷ USD tại Úc).

Và sau đó mọi thứ diễn ra theo đúng kế hoạch. Ngân hàng TSB của Vương quốc Anh đã buộc phải di chuyển khỏi hệ thống dựa trên COBOL vào năm 2018 do mua lại. Nó đã không diễn ra tốt đẹp. Với việc ngân hàng không thể giao dịch trong nhiều ngày, chi phí di chuyển là 330 triệu bảng Anh. Đây là phần bổ sung cho chi phí kỹ thuật theo kế hoạch liên quan đến việc di chuyển thực tế. TSB cũng mất 49,1 triệu bảng do gian lận tài chính trong khi hệ thống của nó đang tan chảy.

Khiếu nại của khách hàng vượt quá 125 triệu bảng và ngân hàng đã phải chi 122 triệu bảng để thuê nhân viên mới để giải quyết 204.000 khiếu nại của khách hàng. Giám đốc điều hành đã từ chức và công ty tiếp tục thu dọn thiệt hại hai năm sau sự kiện này.

Câu đố COBOL

Mọi thứ không thể giữ nguyên như hiện tại, nhưng triển vọng làm điều gì đó về nó không hấp dẫn. Tuy nhiên, cách duy nhất để cải thiện tình hình là chuyển đổi cẩn thận, có kiểm soát sang phần mềm và phần cứng hiện đại.

Để đạt được điều này một cách liền mạch, việc mất dữ liệu và thời gian ngừng hoạt động sẽ đòi hỏi chuyên môn tiên tiến và tiền bạc, chiếm 50% phương trình. Nửa còn lại là kiến ​​thức và thời gian của COBOL. Thật không may, đây là hai thành phần mà chúng tôi gần như cạn kiệt.

Có lẽ một giống cao bồi COBOL mới sẽ đến thị trấn.